[AWS] springboot+ AutoScaling + CodeDeploy 배포 자동화 1 본문

AWS

[AWS] springboot+ AutoScaling + CodeDeploy 배포 자동화 1

giron 2021. 8. 15. 19:52
728x90

프로젝트를 하다보면 배포 자동화는 필수가 되었다. 그래서 연습좀 해보려고 한다!

여러 블로그 보고 공부하면서 느끼지만 글로 주절 주절 보다는 그림이 이해하기도 쉽고 직관적이어서 최대한 글을 안쓸계획이다!

다음을 눌러준다. 태그는 건너뛰고 다음처럼 만들어 준다.

옆에 정책을 들어가서 정책을 만듭니다. 인라인 정책 추가하면 안됩니다..(제 삽질한 시간을 생각해서라도..)

다음과 같이 정책을 입력해줍니다. 설명은 입력 안해도 되는데 하려면 영어로만 가능합니다.

본인이 원하는 정책으로 커스텀해서 역할을 만들고 싶을 때 아래와 같이 S3에 접근할 수 있도록 정책을 하나 만들 수 있습니다.

 

정책이 잘 들어갔는지 확인되면 역할 만들기를 눌러줍니다.

만들어진 해당 역할은 Auto-Scaling과 CodeDeploy로 배포하는 과정에서 통해 각 EC2가 S3 버켓에 파일들을 읽어올 수 있도록 부여하는 역할입니다.

인스턴스 프로파일 ARN: EC2 인스턴스를 생성 할 때, 역할을 부여하기 위해 필요합니다.

 

[시작 템플릿 만들기]

 

EC2에 들어가면 왼쪽에 시작 템플릿이 있을텐데 들어가주면 된다.

템플릿 생성을 눌러주고 

이름을 설정해 준다.  이 글은 자동배포 관련이므로 AMI는 여기에 링크를 남기겠다.

 

키페어가 없으면 새로 생성하고 진행해준다.

시작 템플릿에서 인스턴스 프로파일을 설정해주어야 템플릿으로 생성된 인스턴스들은 [Auto-Scaling-giron-Role] 역할을 갖고 시작될 것입니다. (그래야 배포에 성공할 수 있기 때문에 꼭 잘 설정을 해주어야 합니다.) 즉 해당 역할은 EC2에 설치되어 있는 CodeAgent가 S3 버켓을 잘 읽어올 수 있도록 하기 위해서 설정하는 것입니다.

 

[AutoScaling group 설정]

위와 같이 설정 후, 다음으로 넘어갑니다.

평균 CPU사용량이 50을 넘겼을 때, Auto-Scaling을 합니다.

2개의 인스턴스가 정상적으로 생겼다면, 이제 진짜 배포로 가봅시다.

 

 

CodeDeploy-Role을 적용시켜줍니다.

인스턴스 이름을 넣어준다.

Code Deploy에 권한을 부여해 Load-Balancer에 연결된 Auto-Scaling 그룹에 배포를 할 수 있도록 해줍니다.

blue/green방법은 다음에 해보겠습니다. 요금부담으로 인해..

위와 같이 하고 배포그룹을 만들어줍니다.

  • CodeDeployDefault.OneAtTime: 한 번에 하나씩 배포
  • CodeDeployDefault.HalfAtTime: 절반씩 배포
  • CodeDeployDefault.AllAtOnce: 한꺼번에 배포

ec2에 IAM역할을 넣어 준다.

 

이후 부터는 다음 글을 읽도록 해주세요!

 

******************정리********************

역할, 정책이 너무 많아서 정리한다!

이 중 맨 아래 정책을 봐보면

사용자 정책

이 정도 넣어주면 될 것 같다.

728x90

'AWS' 카테고리의 다른 글

[AWS]Docker & CodeDeploy & Jenkins 배포 자동화2  (0) 2021.08.13
[AWS] springboot+gradle + S3를 이용해 이미지 올리기  (0) 2021.08.09
AWS - EC2, S3, IAM 등 간단 요약  (0) 2021.05.16
AWS 스터디 - 3  (0) 2021.05.13
AWS 스터디 - 2  (0) 2021.05.10
Comments