728x90
반응형
AWS ECS를 사용한 배포 정리
ECS 개요
- ECS(Elastic Container Service): AWS의 관리형 Docker 컨테이너 서비스
- 프리티어에 포함되지 않는 유료 서비스
- 자체 관리 EC2 인스턴스 대신 사용하는 관리형 서비스
ECS의 주요 구성 요소
- 클러스터(Cluster)
- 컨테이너화된 애플리케이션을 실행하기 위한 논리적 그룹
- 여러 서비스와 태스크를 포함하는 최상위 리소스
- 다중 컨테이너 앱의 경우 하나의 클러스터에 여러 컨테이너를 그룹화 가능
- 서비스(Service)
- 클러스터 내에서 생성
- 지정된 수의 태스크를 유지하고 관리
- 로드 밸런서 추가 가능 (요청 리디렉션, 대기열 관리 등)
- 자동 복구, 배포 전략 설정 가능
- 테스크당 하나의 서비스 존재
- 태스크(Task)
- 컨테이너의 그룹
- 애플리케이션의 블루프린트 역할
- AWS에 컨테이너를 시작하는 방법을 정의
- 태스크 정의(Task Definition)를 기반으로 실행
- 하나 이상의 컨테이너를 실행하는 리모트 서버 개념
- 컨테이너(Container)
- Docker Hub 등의 레지스트리에서 이미지 가져와 실행
- 포트 매핑, 환경 변수, 볼륨 등 설정 가능
배포 워크플로우
- 클러스터 생성
- 태스크 정의 생성
- 클러스터 내에 서비스 생성 (태스크 정의 기반)
- 서비스가 태스크 관리
FARGATE 특징
- 서버리스 모드로 컨테이너 실행
- EC2 인스턴스를 생성하지 않고 컨테이너와 실행 설정만 저장
- 요청이 있을 때만 컨테이너 시작, 처리 후 중지
- 컨테이너 실행 시간에 대해서만 비용 지불 (유휴 시간은 비용 없음)
- 메모리와 CPU 크기 선택 가능
컨테이너 업데이트 방법
- 로컬에서 소스코드 수정
- Docker 이미지 빌드 및 태그 지정
- Docker Hub에 이미지 푸시
- AWS ECS에 업데이트 알리기:
- 방법 1: 클러스터 → 테스크 → Create new revision으로 새 태스크 생성 → 서비스 업데이트
- 방법 2: 서비스 업데이트에서 "Force new Deployment" 선택
ECS 장점
- 커스텀 서버나 머신 시작 불필요
- 설치 및 유지 관리 책임 없음
- Auto Scaling 기능 제공 (동시에 여러 컨테이너 생성 가능)
- 들어오는 요청에 따라 컨테이너 수 자동 조절
수정/추가할 부분
- 보안 그룹과 네트워크 설정: ECS 클러스터의 보안 그룹과 네트워크 설정에 대한 내용이 부족합니다.
- 로깅과 모니터링: CloudWatch와의 통합을 통한 로깅 및 모니터링 방법에 대한 상세 정보가 필요합니다.
- 비용 관리: ECS 사용 시 비용 최적화 전략이 추가되면 좋을 것 같습니다.
- CI/CD 통합: 지속적 통합/배포 파이프라인과 ECS 통합 방법에 대한 내용이 있으면 유용할 것입니다.
- ECS 서비스 디스커버리: 다중 서비스 환경에서의 서비스 디스커버리 설정에 대한 내용도 추가하면 좋겠습니다.
이 정리는 원본 내용의 핵심을 잘 담고 있으며, ECS의 구조와 사용법에 대한 기본적인 이해를 제공합니다.
참고
728x90
반응형
'강의 > Docker & Kubernetes : 실전 가이드' 카테고리의 다른 글
[145-149] 다중 컨테이너 앱 AWS ECS 배포 정리 / EFS 볼륨 추가 (0) | 2025.04.20 |
---|---|
[131-140] AWS EC2에 도커 컨테이너 배포하기 (0) | 2025.04.13 |
[126 - 130] 도커 컨테이너 배포: 개발에서 프로덕션까지 (0) | 2025.04.11 |
[115-124] Laravel & PHP 프로젝트 도커화: 다중 컨테이너 설정 (1) | 2025.03.31 |
[114] Target 설정 (1) | 2025.03.26 |
댓글