CodeDeploy 에서 일반 배포가 아닌 Blue/Green으로 배포하는 방법이다.
시작템플릿 생성하기
Auto Scaling에서 사용할 시작 템플릿을 만든다.
EC2에 접속해 왼쪽 사이드 바에 인스턴스 아래에 시작 템플릿 이라고 있다.
시작 템플릿 생성하기를 클릭해준다.
AMI의 경우 나는 만들어 둔 것으로 대체했다.
본인이 개발하고자 하는 환경에 맞게끔
인스턴스 유형과 키 페어를 선택해준다.
네트워크에는 생성되어 있는 보안그룹을 선택해준다.
고급 세부 정보를 클릭해 IAM 설정과
제일 아래로 내리면 사용자 데이터 부분에
인스턴스를 실행할 때 실행하고자 하는 명령어를 적어주면 된다.
#!/bin/bash 를 제일 상단에 적어주어야하며 디폴트로 root로 실행된다.
Auto Scaling IAM
Auto Scaling 을 사용하기 위해선 CodeDeploy 에서 사용하는 IAM역할에 다음과 같은 인라인 정책을 추가해 주어야 한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "0",
"Effect": "Allow",
"Action": [
"iam:PassRole",
"ec2:CreateTags",
"ec2:RunInstances"
],
"Resource": "*"
}
]
}
역할 생성을 하지 않았을 때 에러가 생겼었고 아래 내용을 참고해 해결할 수 있었다.
https://h2ik.co/2019/02/28/aws-codedeploy-blue-green/
Auto Scaling 그룹 생성하기
CodeDeploy에서 Blue/Green 으로 배포 유형을 사용하고자 한다.
Amazon EC2 Auto Scaling 그룹 자동 복사를 사용하기 위해선 Auto Scaling이 필요하다.
EC2에서 왼쪽 사이드 바에서 제일 하단에 Auto Scaling 그룹으로 접속한다.
시작 템플릿에는 방금 만든 템플릿을 설정해준다.
만약 시작 구성에서 사용하고 싶다면 시작 구성으로 전환을 클릭해 사용하면 된다.
네트워크에서 사용하고자 하는 서브넷을 선택해준다.
로그 밸런싱의 경우 이전에 생성해 두었던 로드 밸런서를 연결해서 사용하기로 한다.
상태 확인 유예 시간의 경우 내가 사용하는 서비스는 상태가 healthy가 되기까지 시간이 오래 걸려서 300초보다 길게 잡아 주었다.
여기에서 상태가 Unhealthy이면 Auto Scaling 은 healthy가 될때까지 새로운 인스턴스를 계속 만들어낼것이다.
그룹의 크기의 경우 원하는 용량을 선택해주면 된다.
지금은 테스트 용이라 1개만 생성해서 사용했다.
정상 작동 확인하기
제대로 사용되고 있는지를 확인하기 위해선 먼저
로드밸런서에 연결한 인스턴스가 healthy한 상태를 가지고 있는지 확인한다.
Auto Scaling에 접속해 활동으로 들어가서 작업이 Successful 이 되어 있는지 확인한다.
정상적으로 잘 만들어 졌으면 인스턴스가 원하는 용량만큼 있는것을 확인할 수 있다.