본문 바로가기

반응형

ECS

(4)
[ECS] ECS Exec를 사용하여 ECS Fargate 컨테이너에 접속하기 Fargate는 기본적으로 AWS에서 서버를 관리하기 때문에 운영 관리에 대한 부분을 최소화할 수 있다. 하지만 컨테이너에 Issue가 발생했다거나, 디버깅을 위해 컨테이너에 접속하고 싶을 경우에 상당히 까다로울 수 있다. EC2 기반의 ECS를 운영할 경우 그냥 EC2에 접속하여 docker exec -it {container_id} /bin/sh 등의 명령어를 수행하면 되지만 Fargate일 경우 EC2에 접속할 수 없기 때문이다. Fargate에 작업을 배포하는 ECS 사용자들은 주로 Fargate를 사용하면 SSH로 연결할 수 있는 EC2 인스턴스가 없기 때문에 EC2 인스턴스에 SSH로 연결하는 옵션도 없었다. Fargate의 ECS에서는 컨테이너로 실행하는 것이 불가능하다. 그럼 어떻게 해야할..
[CICD / ECS] CodePipeline으로 ECS Fargate 배포 자동화 #6 - CodePipeline 설정 및 Blue/Green 배포 자동화 1. CodeDeploy에서 Target Group 및 기타 수정 아래의 편집 클릭 대상 그룹을 tg-B로 변경 코드 디플로이가 수행되고 Green 타겟 그룹에서 정상 트래픽 헬스 체크를 감지할 경우 Blue에서 Green으로 즉시 트래픽을 라우팅하며, Blue는 5분 동안 컨테이너를 남겨놓는다. 배포에 실패하는 경우 롤백하도록 롤백 설정 2. CodePipeline 생성 파이프라인 이름 설정 서비스 역할의 경우 기존에 생성해둔게 있으면 기존 서비스 역할 사용해도 무방하며, 없을 경우 새 서비스 역할을 생성해준다. 아티팩트를 저장할 위치를 지정해도 되고 기본 위치로 설정해도 된다. 소스 스테이지 추가 CodePipeline을 통해 소스 변경을 감지한다. 빌드 스테이지 추가 기 생성해준 CodeBuild로..
[CICD / ECS] CodePipeline으로 ECS Fargate 배포 자동화 #5 - CodeBuild 생성 및 빌드, Fargate 배포 1. CodeBuild 생성 프로젝트 이름, 소스 등을 설정 어떤 환경에서 빌드를 할 것인지 설정 추가 구성 클릭 후 추가 구성하기 제한 시간, VPC 설정, 서브넷 설정, 보안 그룹 설정 등을 할 수 있으며 환경 변수를 buildspec.yml 에서뿐만 아니라 웹 콘솔에서도 가능하다. AccountID는 웹콘솔에 지정해보았음 Buildspec.yml 파일이 어디 있는지, Artifact는 어느 S3의 버킷에 저장되는지 등을 설정할 수 있다. CodeBuild가 지니고 있는 IAM Role에 권한 추가 - CloudWatch Logs 관련 권한 - SecretManager 관련 권한 - ECR 관련 권한 2. Build 수행 빌드 시작을 누르면 빌드를 수행할 수 있다. 빌드 로그 또한 실시간으로 확인할 ..
[CICD / ECS] CodePipeline으로 ECS Fargate 배포 자동화 #4 - buildspec.yml, appspec.yml, taskdef.json 설정 해당 부분에서는 Secret 설정 및 변수 설정 등을 진행하며, appspec.yml과 buildspec.yml, taskdef.json 파일 생성 등에 대해 다룰 것이다. Git에서 형상 변화가 일어나면 CodePipeline이 이를 감지하고, Build → Deploy 까지 배포 자동화 프로세스를 구현하기 위해 스크립트 파일을 잘 작성해야 한다. 또한 생성한 컨테이너 이미지나 빌드 아티팩트들이 S3 혹은 Container Registry에 저장될 수 있도록 Buildspec.yml에서 잘 설정해주어야 한다. 1. Secrets Manager 생성 간단하게 APP_NAME 및 ECR_REPOSITORY_URI 시크릿을 생성해준다. 그 외, 데이터베이스의 암호 등을 이 시크릿 매니저를 통해 설정해 줄 수..

반응형