Springboot AWS 배포하기(4)

2023. 7. 4. 04:31배포

 

https://brilliantdevelop.tistory.com/170에 이어 Travis CI, S3에 CodeDeploy까지 연동하는걸 목표로,

Travis CI, S3, CodeDeploy가 서로 연동 될 수 있도록 설정을 하겠습니다.

 

 

EC2에 IAM 역할 추가하기

EC2가 CodeDeploy를 연동 받을 수 있게 IAM역할을 추가합니다.

 

이전 글에서 만든 IAM의 사용자와 지금부터 만들IAM의 역할은 다음과 같은 차이가 있다.

 

사용자

  • AWS 서비스 외에 사용할 수 있는 권한
  • 로컬PC,IDC 서버 등

역할

  • AWS 서비스에서만 할당할 수 있는 권한
  • EC2, CodeDeploy,SQS 등

지금 만들 권한은 EC2에서 사용할 것이기 때문에 역할로 처리합니다.

 

 

검색창에 IAM 검색 - 역할 - 역할만들기  순으로 진행합니다.

 

 

AWS서비스의 EC2를 선택합니다

 

 

다음 권한 정책에선 EC2RoleForAWS를 검색해 AmazonEc2RoleForAWS-codeDeploy를 선택합니다.

 

 

역할의 이름을 추가하고 태그도 추가합니다. (태그의 이름은 역시 ch로 합니다.)

 

 

 

 

이렇게 역할을 만들었으면 이 역할을 EC2에 추가해줍니다.

EC2의 인스턴스 목록에서 내 인스턴스 우클릭-보안-IAM 역할 수정 탭을 클릭합니다.

 

 

방금 IAM에서 만든 역할을 선택한 후 업데이트 버튼을 클릭합니다.

 

이후 인스턴스를 재부팅 해줍니다.

 

 

이렇게 해서 내  EC2 인스턴스에 

AmazonEc2RoleForAWS-CodeDeploy 정책이 선택된 역할이 추가가 되었습니다.

이로써 EC2는 CodeDeploy를 연동 받을 수 있는 역할을 얻게 되었습니다. 

 

 

 

 

EC2에 CodeDeploy Agent설치

EC2에서 CodeDeploy의 요청(연동)을  받을 수 있게 Agent를 설치합니다.

Ec2에 접속해 다음 명령어를 입력합니다.

aws s3 cp s3://aws-codedeploy-ap-northeast-2/latest/install . --region ap-northeast-2

chmod +x ./install

sudo yum install ruby

sudo ./install auto

 

 

설치가 끝나고 Agent가  정상적으로 실행되고 있는지 상태 검사를 합니다.

sudo service codedeploy-agent status

 

다음과 같이 running as PID xxxx 메시지가 뜨면 정상입니다.

 

 

EC2설정에서  CodeDeploy를 연동받을 수 있게 설정했고, 

실제 EC2에 CodeDeploy를 설치함으로서 EC2에서의 준비는 끝났습니다.

이제 CodeDeploy를 준비합시다.

 

 

CodeDeploy를 위한 권한생성

EC2가 CodeDeploy를 연동받을 수 있는 권한설정(IAM역할)을 했던것처럼

CodeDeploy 또한  EC2에 접근할 수 있는 권한설정을 해야됩니다.

CodeDeploy도 AWS의 서비스이니 IAM 역할을 생성합니다.

 

검색창에 IAM 검색 - 역할 - 역할만들기  순으로 진행합니다.

 

 

 

다음과 같이 AWS 서비스- CodeDeploy를 차례로 선택합니다.

CodeDeploy에서는 권한이 1개뿐임으로 바로 다음으로 넘어갑니다.

 

 

 

다음과 같이 이름과 태그를 추가합니다. (태그 key 값은 ch)

 

 

 

 

이렇게 역할을 만들면 목록에 다음과 같이 있는 걸 확인할 수 있습니다. 

(이번에 만든건 chcodedeploy-role,   위에서 만든게 chec2-codedeploy-role) 

 

 

 

이제 IAM에서의 역할을 만들었으니 이 역할을 사용할 codeDeploy를 만들겠습니다.

 

CodeDeploy 생성

서비스를 배포하는데 필요한 3가지 요소는 다음과 같습니다.

  • 프로젝트 저장소
  • 빌드 툴
  • 배포 

프로젝트 저장소는 Github,  빌드 툴은 Travis CI이고 배포를 바로 이 CodeDeploy가 합니다.

CodeDeploy를 생성해 보겠습니다.

 

 

 

CodeDeploy를 검색한 후 애플리케이션 탭- 애플리케이션 생성을 클릭합니다.

 

 

 

이름은 ch,  컴퓨팅플랫폼은 EC2/온프레미스를 선택합니다. 

 

 

애플리케이션 생성 후 배포그룹을 생성합니다.

 

 

 

배포그룹의 이름을 정하고,

서비스 역할을 선택합니다. 아까 IAM에서 만든 chcodeDeploy-role을 선택합니다.

배포 유형은 현재위치를 선택합니다.  만약 배포할 서비스가 2대 이상이라면 블루/그린을 선택합니다.

 

 

 

환경구성은 Amazon EC2 인스턴스를선택하고 태그도 ch로 만듭니다. 

 

 

배포 설정의 배포구성은 AllAtOnce를 선택합니다.

배포할 서버가 여러대라면 1대씩 배포할지, 30% 씩 동시에 배포할지 등등을 선택합니다만,

현재는 서버가 1대이기 때문에 AllAtOnce를 선택합니다.

로드밸런스는 체크해제합니다.

 

 

 

배포그룹까지 생성했다면 CodeDeploy 설정은 끝입니다. 

이제 Travis CI, S3, CodeDeploy를 연동만 하면 됩니다.