티스토리 뷰
이전 글에서는 하나의 EC2에 CodeDeploy를 통해 node 프로젝트를 자동으로 배포하였습니다. 하지만 이후 로드 밸런서를 추가하면서 EC2가 다른 가용영역에 하나 더 생성되었기 때문에 두개의 EC2에 같은 소스를 자동으로 배포하는 방법을 알아보겠습니다.
먼저 기존 EC2에는 자동 배포 설정이 되어 있다고 가정하고 그 이후부터 설명하겠습니다. 하나의 EC2에 자동 배포하는 방법은 아래 글을 참고하시기 바랍니다.
https://developerbee.tistory.com/211
1. 새로 만든 EC2에 IAM 역할 수정
CodePipeline을 사용하는 경우 CodeCommit의 소스 아티팩트나 CodeBuild의 빌드 아티팩트를 S3에 저장하고 CodeDeploy 실행 시 EC2에서 해당 S3에 접근하여 아티팩트를 사용합니다. 따라서 기존 EC2에 적용된 S3에 접근할 수 있는 역할을 새로 생성한 EC2에도 적용해줍니다. (IAM 역할 생성 또한 위 링크를 참고하세요.)
2. EC2 내 codedeploy-agent 확인
현재 새로 생성된 EC2의 경우 기존 EC2를 이미지화 하여 똑같이 생성한 것입니다. 따라서 이미 codedeploy-agent가 설치되어 있을 것입니다. 새로 생성된 EC2에 ssh로 접속하여 아래 명령어를 통해 codedeploy-agent가 제대로 동작하고 있는지 확인합니다.
$ sudo service codedeploy-agent status
만약 이미지를 통해 생성한 EC2가 아니라 codedeploy-agent가 설치되지 않았다면 아래 명령어를 통해 codedeploy를 설치하고 실행합니다.
$ sudo yum update
$ sudo yum install ruby
$ wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install
$ chmod +x ./install
$ sudo ./install auto
3. CodeDeploy 배포 그룹 수정
"CodeDeploy > 애플리케이션"에서 해당 애플리케이션을 찾아 배포 그룹을 선택하고 편집을 누릅니다. 이후 환경 구성에서 새로운 EC2의 Name 태그를 추가합니다.
만약 기존 EC2와 새로운 EC2의 Name 태그를 동일하게 맞추었다면 위 부분을 수정할 필요 없이 기존 Name 태그만 그대로 유지하면 됩니다.
다음으로 하단 로드 밸런서를 활성화 시키고 두 EC2를 포함하고 있는 대상 그룹을 선택합니다. 로드 밸런서를 활성화하면 배포가 진행되는 동안 트래픽을 차단했다가 배포 후 트래픽을 허용하도록 할 수 있습니다.
위와 같은 작업을 한 뒤, api 소스의 CodePipeline을 실행하면 두 개의 EC2에 정상적으로 변경된 소스가 배포되는 것을 확인할 수 있습니다.
배포가 성공한 뒤 각 EC2에 ssh로 접속하여 아래 명령어를 통해 node 서버가 잘 실행되고 있는지 확인합니다.
$ netstat -lntp | grep 9090
브라우저에서 http://CloudFront_배포_도메인_이름/index.html 로 접속하면 기존에 정상적으로 작동하던 웹 서비스를 확인할 수 있습니다.
지금까지 내용을 구조화하여 살펴보면 다음과 같습니다.
'AWS' 카테고리의 다른 글
[AWS Subnet] 서버 Private Subnet으로 옮기기(1) (0) | 2021.11.15 |
---|---|
[AWS Lambda] CloudFront Invalid Cache 자동화 (0) | 2021.11.12 |
[AWS ELB] 로드밸런서를 이용한 분산 서비스 (0) | 2021.11.11 |
[AWS RDS] RDS를 private subnet으로 옮기기 (0) | 2021.11.11 |
[AWS Code###] CodePipeline으로 Node + express 프로젝트 배포 (0) | 2021.11.10 |
- Total
- Today
- Yesterday
- ECR
- DFS
- spring
- 에라토스테네스의 체
- Algorithm
- CodeCommit
- 소수
- CodePipeline
- 순열
- BFS
- map
- AWS
- EC2
- cloudfront
- Combination
- Baekjoon
- permutation
- java
- programmers
- CodeDeploy
- SWIFT
- Dynamic Programming
- ionic
- 수학
- 조합
- sort
- 프로그래머스
- string
- search
- array
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |