코딩기록
8. GithubAction, 로드밸런서를 통한 최종 배포 환경설정 본문
지난 포스트에 작성된 과정에서 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 앞단에 연결하여 사용 필요
'인프라 > 리눅스, AWS' 카테고리의 다른 글
5. EC2 우분투 최초 배포 or 지속적 배포 자동 프로세스 스크립트 최종 구축 (0) | 2024.01.27 |
---|---|
9. Github Action을 통한 최종 배포 진행 (3) | 2024.01.02 |
7. CI/CD의 개념 / AWS 로드밸런서 및 IAM의 이해 (0) | 2023.12.31 |
6. AWS 엘라스틱빈스톡 사용해보기 (0) | 2023.12.28 |
<리눅스 if 문 조건 정리> (0) | 2023.12.27 |