Skip to content

Build CICD pipeline with Github Action ‐2 : AWS settings (EC2,S3,IAM,codeDeploy)

HaileyKim edited this page Aug 13, 2023 · 3 revisions

Build CICD pipeline with Github Action -2 : AWS settings (EC2,S3,IAM,codeDeploy)

Written by Dayeon Kim

전체적인 흐름

cicdprocess

앞장에서는 그림만 넣어두었다면 이번 위키에서는 약간의 설명을 덧붙여놓겠음

  1. main branch에 pull 발생
  2. Github Action의 deploy.yml 코드 빌드
  3. AWS code deploy 실행
  4. 프로젝트 빌드 후 압축하여 s3에 push
  5. code deploy 실행
  6. ec2에 배포 명령 appspec.yml파일 참조
  7. s3에서 파일 가져와 쉘 스크립트 실행

🚀 1. EC2 Setting

스크린샷 2023-08-12 오후 10 13 44

1-1. 탄력적 IP 추가

AWS EC2 인스턴스는 서버를 중지하고 다시 실행시키면 퍼블릭 IP 가 변경되기 때문에 클라이언트가 사용할 수 있는 변하지 않는 IP 가 필요
탄력적 IP란 외부에서 인스턴스에 접근 가능한 고정 IP

1-2. 호스트 등록해서 간편하게 접속하기

ssh mykeyhost 으로 바로 접속 가능하도록 config 파일 세팅

1-3. 보안그룹 설정

인바운드 : 외부 → ec2 인스턴스 내부 허용
아웃바운드 : ec2 인스턴스 내부 → 외부 허용

인바운드 규칙 추가 - 로컬 PC에서 서버에 접속 가능하도록 ssh 추가하고 소스를 내 IP로 설정


1-4. ec2에 springboot 서버 띄우기 test

자동화말고 일단 그냥 뜨는지부터 확인

컴파일러 버전 에러가 떳지만 나머지는 문제 없으므로 바로 CICD로 넘어갔음


1-5. Tag 추가

Code Deploy에서 인스턴스를 연결해주기 위해서 tag 등록


🚀 2. IAM Setting

  • AmazonS3FullAccess EC2에서 S3에 접근할 수 있도록 권한 만들고 인스턴스에 연결해준다

🚀 3. CodeDeploy Setting

EC2 인스턴스 열고 공식문서 링크를 따라치면 됨. 공식문서 굿


3-1. CodeDeploy를 사용하기 위한 IAM 설정

사용사례에서 codeDeploy를 선택하고 그대로 만들면 됨


3-2. CodeDeploy application 생성

ec2/온프레미스 옵션으로 선택


3-3. CodeDeploy 배포그룹 생성

방금 만든 application에서 배포그룹 생성
3-1에서 만든 IAM 선택해주고, 아까 Ec2에 달아준 tag와도 연결시켜주면 끝


🚀 4. S3 Setting

버킷 생성


🚀 5. IAM 사용자 추가

앞에서 한건 S3,EC2에게 권한 부여, 지금은 사용자 추가

  • AWSCodeDeployFullAccess
  • AmazonS3FullAccess

Access Key발급받아서 꼭 저장해두기 (Github의 Secret에 저장해놓았음)


참고 링크

지금까지 AWS 세팅은 끝났고, 이제부터는 실행할 파일을 작성해보자

Clone this wiki locally