AWS ECR, ECS 등을 이용한 인프라 구현 및 코드배포 자동화

2019-10-14

.

Data_Engineering_TIL_(20190817)

study program : https://www.fastcampus.co.kr/dev_camp_devb

[학습목표]

1) AWS ECS를 이용한 컨테이너 클러스터를 구현

2) AWS ECR을 이용한 웹서비스를 배포

3) AWS CodePipeline을 이용한 코드배포 자동화

[실습요약]

step 1) AWS ECR repo 생성

step 2) AWS ECR repo를 컨트롤하는 ec2 client 생성 및 ECR 인증

step 3) 실습사전에 미리구현된 web 서비스 도커이미지를 다운받아서 나의 ECR repo에 push

step 4) AWS ECS를 이용한 컨테이너 클러스터 생성

step 5) 생성한 AWS ECS 컨테이너 클러스터에 대한 작업정의

step 6) web 서비스 구현을 위한 로드밸런서 생성

step 7) web 서비스 배포

step 8) AWS CodePipeline을 이용한 코드배포 자동화 구현

[실습상세]

step 1) AWS ECR repo 생성

아래 그림과 같이 AWS ECR에서 레포지토리를 생성해준다.

1

step 2) AWS ECR repo를 컨트롤하는 ec2 client 생성 및 ECR 인증

아래 그림과 같이 EC2를 생성해주고, 해당 EC2에 접속하여 step 1)에서 생성한 ECR 레포지토리 계정인증을 해준다.

2

step 3) 실습사전에 미리구현된 web 서비스 도커이미지를 다운받아서 나의 ECR repo에 push

** 아래그림에서 터미널 화면은 방금 step2)에서 만든 EC2 화면이다.

3

3-2

step 4) AWS ECS를 이용한 컨테이너 클러스터 생성

4

step 5) 생성한 AWS ECS 컨테이너 클러스터에 대한 작업정의

12

step 6) web 서비스 구현을 위한 로드밸런서 생성

18

step 7) web 서비스 배포

26

step 8) AWS CodePipeline을 이용한 코드배포 자동화 구현

step 8-1) codepipeline에서 ECR로 접근을 위한 권한설정

31

step 8-2) 파이프라인 생성

32

정상적으로 배포되면 아래 그림과 같이 배포 성공화면을 확인할 수 있다.

40

step 8-3) 나의 웹프로젝트 깃 레포지토리에서 buildspec.yml를 살짝 수정하고 깃허브에 푸쉬를 날리면, 동시에 codepipeline가 git push를 감지하고 코드를 ECS로 자동으로 배포해주는지 확인한다.

아래 그림과 같이 코드를 시도하고 git push를 하여 코드배포를 시도해본다.

41

정상적으로 배포되면 아래 그림과 같이 배포 성공화면을 확인할 수 있다.

40