코딩기록

6. AWS 엘라스틱빈스톡 사용해보기 본문

인프라/리눅스, AWS

6. AWS 엘라스틱빈스톡 사용해보기

빌럽스 2023. 12. 28. 23:18

전 포스트에서 배포 장소였던 EC2는 Issa로서, 해당 인스턴스에 직접 OS 및 스프링 프로젝트를 설치하여야 했다. 한편 엘라스틱 빈스톡은 PaaS로서, OS, jdk 등이 미리 설치된 소프트웨어로 편하게 사용이 가능하다.

이번에는 엘라스틱 빈스톡을 이용하여 스프링 프로젝트 배포를 진행해 보았다.



엘라스틱 빈스톡

  • OS 설치가 필요없음
  • jdk 설치가 필요없음
  • 오토스케일링, 각종 소프트웨어 구성, 로드밸런서, 모니터링, 업데이트 버전관리

 

<로드밸런서>

최앞단에서 클라이언트 요청 받음, 외부오픈, 80포트
(기존 ec2는 ec2가 다이렉트로 클라이언트에게 요청을 받는 구조)


↓ 요청:80

<EC2>
nginx 서버(프록시) 80포트

 

↓ 내부적으로 호출:5000


jdk(샘플코드 동작) 5000포트

 

NGinx 서버 -> 외부 IP 요청 거부
-> 같은 보안 그룹(로드밸런서: 80포트)으로 묶인 친구의 요청만 받음
-> 즉, 로드밸런서만 접근 가능

 

 

따라서 우리가 java서버를 배포하려면 5000 포트로 동작시켜야 함

 

elasticbeanstock 메뉴 -> 환경 -> 업로드 및 배포 -> build/libs 에 있는 aws-v3-0.0.1.jar 파일 업로드

 

mobaXterm SSH 접속 시 username = ec2-user

 

/etc/nginx/conf.d/elasticbeanstalk/00_application.conf 파일

proxy_pass           http://127.0.0.1:5000

엔진엑스가 내부의 5000 포트로 요청을 한다는 말

 

127.0.0.1: 루프백 IP, 자기 자신을 가리키기 위한 목적으로 쓰기 위해 예약된 IP 주소



앨라스틱빈스톡 + RDS(데이터베이스)

  1. 준비
    엘라스틱빈스톡 환경종료

  2. 엘라스틱빈스톡 생성
    이름 aws-v4-beanstalk

    사전 설정 -> 단일 인스턴스:EC2 하나만 가지고 함

  3. 환경구성(프로젝트(웹 서버)에 전달) (우분투에서 설정한 환경변수와 다름, 그것은 os 안에서 동작하는 것)
    플랫폼 Corretto 11 running on 64bit Amazon Linux 2/3.6.2

    5단계 업데이트, 모니터링 및 로깅 구성 -> 플랫폼 소프트웨어
    추가 -> 추후 YML에서 사용됨
    이름 RDS_HOSTNAME 값  IP (추후 RDS 엔드포인트로 변경해야 함)
    RDS_DB_NAME mariadb
    RDS_PORT 3306
    RDS_USERNAME metacoding
    RDS_PASSWORD metacoding1234

    키페어 등록

  4. 구성정리
  5. RDS 생성
    이름: aws-v4-rds
    vpc id 확인
    퍼블릭 엑세스 : 예(로컬 컴퓨터에서만 외부에 접근 가능하도록 할 것임)
    보안그룹 : 만들어진걸로 잡기 -> 하나의 보안그룹에 포함시켜 접근 가능하게
    엔드포인트: aws-v4-rds.cza8ywk6w952.ap-northeast-2.rds.amazonaws.com
    포트 : 3306

    보안규칙에서 3306 인바운드 규칙 2개 추가 해주어야 함
    첫번째: IP는 일단 내 ip로 지정
    두번째: 소스를 현재 보안 그룹으로 지정

  6. HeidiSQL 다운로드
    호스트명에 RDS 엔드포인트 작성
    데이터베이스 'metadb' 생성까지 진행

  7. RDS 파라미터 설정 timezone Asia/Seoul로 변경하는 파라미터 그룹 생성 및 “DB 파라미터 그룹” 적용




비용관련

엘라스틱빈스톡

  • EC2 2대를 사용할 예정  (750시간 무료, 한대를 켜두면 24*31=744시간 )
    실습이 끝나면 종료
  • S3 (파일저장소. 5gb GET 요청 20,000건 PUT 요청 2,000건)
  • RDS (데이터베이스, 750시간 무료, 한대를 켜두면 24*31=744시간) 
  • 로드밸런서 2대를 사용할 예정 (750시간 무료)