#01. AWS Fargate에 앱을 배포하기 위한 CI/CD 파이프라인 구축(구성 검토)

목표

1. CodeCommit Repository를 구성하여 Application Source Control 구성
2. buildspec 파일을 사용하여 새로운 Docker 이미지를 빌드
3. 감사 가능하고 안전한 방법론을 사용하여 Amazon ECR에 저장하는 CodeBuild 프로젝트를 생성
4. 블루/그린 배포에 사용할 동적 필드가 포함된 appspec.yaml 및 taskdef.json 파일을 생성
5. CodeDeploy 및 Amazon ECS에 구성된 블루/그린 배포 전략을 사용하여 현재 위치 애플리케이션 업그레이드를 수행

구성 검토하기 (AWS Cloud9 IDE)

  • Cloud9를 생성합니다.
  • 생성한 Cloud9 서비스에서 Cloud9 IDE 상태를 확인합니다.
  • 아래와 같은 사유로 DevOps 환경에서 많이 사용합니다.

Cloud9를 강추하는 이유는?

Amazon Cloud9는 클라우드 기반의 통합 개발 환경 (IDE)로, 코드를 작성, 실행, 디버깅할 수 있는 웹 기반 인터페이스를 제공합니다. Cloud9의 주요 장점은 다음과 같습니다

1. 어디에서나 액세스 가능: 클라우드 기반 IDE. 보통 IAM User에 대한 Console Access 및 Cloud9 서비스에 관한 정책을 Attached 해주면 인터넷이 연결된 어떤 장치에서든 접속하여 작업 가능

2. 쉬운 협업: Cloud9은 실시간으로 다른 개발자들과 협업을 가능하게 합니다. 팀원들이 동일한 개발 환경에서 동시에 작업하고, 실시간으로 코드 변경 사항을 볼 수 있습니다.

3. 서버리스 애플리케이션 개발: AWS Lambda와 같은 서버리스 애플리케이션을 쉽게 만들고 테스트할 수 있습니다.

4. 사전 구성된 환경: Cloud9은 브라우저만 있으면, 복잡한 개발 환경을 로컬에 설정할 필요 없이 즉시 시작할 수 있는 완전한 개발 환경을 제공합니다.

5. 코드 실행 및 디버깅 지원: Cloud9은 다양한 프로그래밍 언어를 지원하며, 코드 작성 및 디버깅에 필요한 모든 도구를 제공합니다.

6. 직접 통합: AWS 서비스와 직접 통합되어 있어, 다른 AWS 서비스들을 쉽게 이용할 수 있습니다.

7. 비용 효율적: 사용하지 않는 시간 동안은 개발 환경을 중지하여 비용을 절약할 수 있습니다. 별도의 Bastion Host를 두지 않아도 됩니다.

8. 유연성: Cloud9은 개발 환경을 개발자의 입맛에 따라 맞춤 설정할 수 있습니다. 쉽게 말해 커스터마이징이 가능합니다.

서비스 정보:
최근 AWS 서비스 관련 뉴스를 확인할 수 있습니다.

구성 검토(AWS ALB, ECS)

– 위 ALB에서는 3개의 각기 다른 Subnet이 고 가용성으로 분산되어 각각의 Multi-AZ 대역의 PrivateIP로 분산됨을 확인합니다.

– 위와 같이 서비스 Private IP가 Target Groups으로 정상적으로 연결되어 있습니다.
– 해당 Target Groups은 ALB의 TCP 80의 Listener 로 연결되어 있습니다.

– ELB의 DNSName을 그대로 사용하여 서비스 됨을 확인합니다.

구성 검토(FargateCluster)

– FargateService가 Active 상태이고 3/3 Tasks running이 정상적으로 표시되었습니다.

– AWS ECS > FagateCluster > Service > FargateService > Task 실행 및 상태를 확인합니다.
– Cluster(FargateService) 내 실행 중인 Task 상태를 확인합니다.

– AWS ECS > FagateCluster > Service > FargateService > Deploy 에서 배포 유형은 CODE_DEPLOY 임을 확인하였습니다.
(블루/그린 배포에 대한 요구 사항이 반영됨을 확인함)

구성 검토(AWS ECR, Elastic Container Registry)

– Amazon ECR > Private Repository > 활성 ECR Repository > 클릭

– 보유 중인 Repository 를 Edit 합니다.

– 태그 변경 불가능을 비활성화에서 “활성화“로 수정합니다.

Why?
– 보안 상태가 개선되고, 사용자 실수 or 외부 공격에 따른 이미지 스푸핑이 완화
– 동일한 태그를 사용하는 후속 이미지 푸시가 이미지 태그를 덮어쓰는 것을 방지

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x