코딩기록
6. AWS 엘라스틱빈스톡 사용해보기 본문
전 포스트에서 배포 장소였던 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(데이터베이스)
- 준비
엘라스틱빈스톡 환경종료 - 엘라스틱빈스톡 생성
이름 aws-v4-beanstalk
사전 설정 -> 단일 인스턴스:EC2 하나만 가지고 함 - 환경구성(프로젝트(웹 서버)에 전달) (우분투에서 설정한 환경변수와 다름, 그것은 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
키페어 등록 - 구성정리
- RDS 생성
이름: aws-v4-rds
vpc id 확인
퍼블릭 엑세스 : 예(로컬 컴퓨터에서만 외부에 접근 가능하도록 할 것임)
보안그룹 : 만들어진걸로 잡기 -> 하나의 보안그룹에 포함시켜 접근 가능하게
엔드포인트: aws-v4-rds.cza8ywk6w952.ap-northeast-2.rds.amazonaws.com
포트 : 3306
보안규칙에서 3306 인바운드 규칙 2개 추가 해주어야 함
첫번째: IP는 일단 내 ip로 지정
두번째: 소스를 현재 보안 그룹으로 지정 - HeidiSQL 다운로드
호스트명에 RDS 엔드포인트 작성
데이터베이스 'metadb' 생성까지 진행 - 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시간 무료)
'인프라 > 리눅스, AWS' 카테고리의 다른 글
8. GithubAction, 로드밸런서를 통한 최종 배포 환경설정 (1) | 2023.12.31 |
---|---|
7. CI/CD의 개념 / AWS 로드밸런서 및 IAM의 이해 (0) | 2023.12.31 |
<리눅스 if 문 조건 정리> (0) | 2023.12.27 |
4. cron을 통한 지속적 배포 직접 구축하기 (1) | 2023.12.27 |
3. 우분투 서버에 깃허브 클론 및 설정 세팅 (1) | 2023.12.27 |