코딩기록

8. GithubAction, 로드밸런서를 통한 최종 배포 환경설정 본문

인프라/리눅스, AWS

8. GithubAction, 로드밸런서를 통한 최종 배포 환경설정

빌럽스 2023. 12. 31. 00:23

지난 포스트에 작성된 과정에서 CI/CD의 개념을 이해하였으며, 이제부터 본격적으로 GithubAction, 로드밸런서를 통한 최종 배포를 진행해볼 예정이다.

이를 위한 환경설정을 진행하며, 해당 내용을 기록했다.

 

 

깃허브 포크하기: 남의 레포지토리에서 프로젝트 복제해오기

 

1. 보안그룹 생성

보안그룹 

(1)security-group-aws-v5

80. 22

3306(내 IP, 같은 시큐리티 그룹이면 다 들어올 수 있게)

(RDS 포함)

 

(2)sg-078a86f18b5522c06(ec2가 가지고 있는 시큐리티 그룹)

 

vpc

vpc-0efdde57da278439d

(RDS 포함)

 

rds

aws-v5-mariadb.cza8ywk6w952.ap-northeast-2.rds.amazonaws.com

rds 타임존 변경하는 법

파라미터 그룹 생성 time_zone 값을 Asia/Seoul로 지정

만든 파라미터 그룹을 rds에 적용

적용되려면 인스턴스 재부팅 필요



2. 엘라스틱 빈스톡 생성

사전설정 -> 사용자 지정 구성(단일 인스턴스 x / ec2 2개 생성 예정)

오토 스케일링

최소2 최대4

로드 밸런서 유형 -> 애플리케이션 로드밸런서

리스너 로드밸런서가 80포트로 들어오는 것을 받겠다

프로세스 로드밸런서가 80포트로 받는 것을 라우팅하겠다. 상태확인경로 “/”로 되어 있으면 naver.com:8080/ 에서 상태검사를 하겠다는 이야기

http 요청의 기본 포트는 80(그냥 약속, well known port)

 

 

- 엘라스틱빈스톡 생성 메뉴 5단계 "롤링 업데이트 및 배포" 메뉴 - 배포 정책

1. 한번에 모두 : 구동중인 EC2 서버를 잠깐 중지 후 빌드하여 다시 실행

2. 추가 배치 : 무중단 배포, 하나 신규 ec2 배포하고 하나 중지하고 업데이트 하고, 그후 마지막거 중지, 중간에 배포 에러나면 정상으로 배포된 것도 롤백해야 함

3. 변경불가능 : 미리 새로운 EC2 만들어 놓고, 순간적으로 변경 / 롤백이 쉬움 / 단점 자원이 많이 든다. 배포 시간동안만 잠깐 4대가 돈다.

 

 

 

EC2 서버 2개 -> 왜 다이렉트로 접속이 안되는가?

 

EC2 생성되면 보안그룹 자동으로 생김

ec2 보안그룹 sg-078a86f18b5522c06 / awseb-e-d3zpmqmsjs-stack-AWSEBSecurityGroup-18XNO7NYJ4PSK -> RDS가 이 시큐리티 그룹 요청을 받을 수 있게 인바운드규칙 변경 필요

 

위 EC2의 자동 생성된 보안그룹 인바운드규칙 보면, 22포트는 누구나 접속가능, 80 포트는 로드밸런서의 시큐리티 그룹만 접근가능하도록 설정되어 있음 => ec2는 로드밸런스 통해서만 들어와야 하니까 보안그룹에서 설정해준 것임



NLB 및 ALB

ALB는 DNS 주소가 있고, IP는 주기적으로 변경됨

ALB ip 43.200.250.188

dns 주소로 들어가서 get 요청 header에 remote address에 ip 확인 가능 (단, 이 ip는 주기적으로 변경됨)

따라서 ALB로는 실제 서비스하기 어려움

따라서 고정 IP가 있는 NLB를 ALB 앞단에 연결하여 사용 필요