본문 바로가기
AWS

Github Actions & Docker & AWS ECR 을 활용한 CI/CD 구축 (1) - EC2 생성 & ECR 생성 & IAM 사용자 생성

by devLog by Ronnie's 2023. 3. 1.

기존에는 CI/CD 툴로 유명한 젠킨스를 사용하였지만 새로운 프로젝트를 하게 되어 개발하면서 빼놓을 수 없는 CI/CD 환경을 구축하기 위해서 Github에서 제공하는 Github Actions를 이용하여 CI/CD 환경을 구축하였다. Jenkins 와는 다르게 별도의 서버가 필요 없다는 장점이 있다.

 

구글링을 해보면 Github Actions CI/CD를 검색해보면 정말 다양한 방법들의 구축 방법들이 있다. 이 글에서는 Github Actions + Docker + AWS ECR + AWS EC2 환경에서의 CI/CD 환경 구축 방법에 대해서 정리한다.

 

내용이 많아 아래와 같이 총 3단계에 걸쳐서 내용을 정리한다.

 

1. EC2 생성 & ECR 생성 & IAM 사용자 생성

2. EC2 접속 후 JDK, Docker, CLI 설치 및 ECR 접속 테스트

3. Github Actions 설정 

 

Github Actions & Docker & AWS ECR 을 활용한 CI/CD 구축 (1) - EC2 생성 & ECR 생성 & IAM 사용자 생성

 

Github Actions & Docker & AWS ECR 을 활용한 CI/CD 구축 (1) - EC2 생성 & ECR 생성 & IAM 사용자 생성

 

먼저 들어가기 앞서 개발 환경은 다음과 같다.

  • Github-Actions
  • AWS EC2
  • Docker
  • Spring Boot
  • JDK11
  • Gradle
  • Spring profiles (개발 환경 분리, dev, prod)

 

첫번째 시간인 EC2 생성 ECR 생성 IAM 사용자 생성 방법에 대해서 정리한다.

 

 

EC2 생성


EC2를 생성하는 방법에 대해서는 정리한 글이 있으므로 정리 글로 대체한다.

 

EC2 생성 및 접속 방법

 

AWS - EC2 생성 및 접속 방법

EC2란 AWS에서 제공하는 클라우드 환경의 서버이다. EC2는 Amazon Elastic Compute Cloud의 약자이며, 이번 시간에는 EC2를 생성하는 방법에 대해서 정리하며 아래 순서대로 따라 실행하면 생성과 접속이 가

sjparkk-dev1og.tistory.com

 

 

ECR 생성


AWS ECR은 Elastic Container Registry로 Docker Hub와 기능적으로 거의 비슷하다. AWS에서 제공한다는 점에서 몇가지 장점을 가지고 있다.

 

  1. AWS 서비스 이므로 AWS IAM을 통하여 ECR에 올려져 있는 이미지들을 세세하게 권한 설정을 할 수 있다는 장점이 있다.
  2. AWS 에 비용 체계(사용한 만큼 비용 납부)를 따를 수 있다. https://aws.amazon.com/ko/ecr/pricing/
  3. AWS를 사용하면 서울 region을 사용할 수 있는 것도 하나의 장점이다.

 

AWS ECR에 접속한다

프라이빗 리포지토리를 생성해준다. (도커 이미지 저장소)

리포지토리 이름을 설정해주고 생성을 눌러준다.

 

 

ECR 접근 권한을 가진 사용자 생성하기


추후 EC2에서 ECR에 접근을 해야하는데 그전에 접근 권한을 가진 사용자를 생성해줘야 한다. IAM 에 접속해준다.

사용자 추가를 눌러 사용자를 생성해준다. 이때 액세스 키 - 프로그래밍 방식 액세스는 필수 이다.

하단의 권한 설정에서 기존 정책 직접연결을 누른 후 접근 권한 설정을 해줘야한다.

 

여기서 말하는 접근 권한이란 AWS 각 서비스에 접근할 수 있는 권한을 말하며 ECR에 대한 접근 설정을 위해 ‘AmazonEC2ContainerRegistryFullAccess’ 권한을 추가해준다.

 

해당 설정을 완료하였다면 액세스 키가 발급이 되는데 사용자의 AccessKey와 Secret Access Key를 발급받을 수 있는데 해당 키는 재발급은 가능하나 찾을 수는 없으니 잘 보관해둔다.

 

다음과 같이 .csv 파일로 다운받을 수 있는 기능을 제공하니 다운 받아 잘 보관한다. 여기서 발급한 AccessKeySecret Access Key 값은 추후 Github Actions 설정 시 필요하다.

이후 생성했던 EC2 인스턴스에 우클릭 후 ‘보안’ -> IAM 역할 수정을 통해 생성한 IAM 역할 추가를 해준다.

 

댓글