ECS EC2 + awsvpc 템플릿
ECS EC2 + awsvpc 템플릿
목차
아키텍처 개요
┌─────────────────────────────────────────────────────────┐
│ ECS Cluster (EC2) │
│ ┌─────────────────────────────────────────────────┐ │
Internet ──► ALB ──►│ │ task (ENI: 10.0.10.x) │ │
:80 :{{PORT}}│ │ Port {{PORT}} │ │
│ └─────────────────────────────────────────────────┘ │
│ Target Group: IP Type (awsvpc) │
└─────────────────────────────────────────────────────────┘
awsvpc 모드: 태스크마다 고유한 ENI(프라이빗 IP) 할당 → 대상 그룹 타입: IP
선행 작업
- VPC/Subnet 구성
- [AWS ECR 리포지토리]
보안 그룹
{{PREFIX}}-sg-alb
| 변수 | 값 | 소스 |
|---|---|---|
| 보안 그룹 이름 | {{PREFIX}}-sg-alb | - |
| 인바운드 규칙 | TCP 80 | 0.0.0.0/0 |
| 인바운드 규칙 | TCP 443 | 0.0.0.0/0 |
| 아웃바운드 규칙 | 모든 트래픽 | 0.0.0.0/0 |
{{PREFIX}}-sg-ecs-task
| 변수 | 값 | 소스 |
|---|---|---|
| 보안 그룹 이름 | {{PREFIX}}-sg-ecs-task | - |
| 인바운드 규칙 | TCP {{PORT}} | {{PREFIX}}-sg-alb |
| 아웃바운드 규칙 | 모든 트래픽 | 0.0.0.0/0 |
클러스터
| 구분 | 항목 | 값 |
|---|---|---|
| 클러스터 이름 | 클러스터 이름 | {{PREFIX}}-cluster |
| 인프라(고급) | 컴퓨팅 용량 확보 방법 선택 | Fargate 및 자체 관리형 인스턴스✅ |
| Auto Scaling 그룹(ASG) | 새 Auto Scaling 그룹 생성 | |
| 프로비저닝 모델 | 온디멘드 | |
| 컨테이너 인스턴스 AMI | Amazon Linux 2023 | |
| EC2 인스턴스 유형 | t3.medium | |
| EC2 인스턴스 역할 | ecsInstanceRole | |
| 원하는 용량-최소 | 2 | |
| 원하는 용량-최대 | 3 | |
| SSH 키 페어 | {{SSH_KEY}} | |
| 루트 EBS 불륨 크기 | 32GB | |
| 네트워크 설정-VPC | {{PREFIX}}-vpc | |
| 네트워크 설정-서브넷 | {{PREFIX}}-subnet-private1-1a,{{PREFIX}}-subnet-private2-1b | |
| 네트워크 설정-보안 그룹 | {{PREFIX}}-sg-ecs-task | |
| 네트워크 설정-퍼블릭 IP 자동 지정 | x |
태스크 정의
| 구분 | 항목 | 값 |
|---|---|---|
| 태스크 정의 구성 | 테스크 정의 패밀리 | {{PREFIX}}-task |
| 인프라 요구 사항 | 시작 유형 | Amazon EC2 인스턴스✅ |
| OS, 아키텍쳐, 네트워크 모드 | Linux/x86_64, awsvpc | |
| CPU (vCPU) | 0.5 vCPU | |
| 메모리 (GB) | 1 GB | |
| 태스크 역할 | ecsTaskExecutionRole | |
| 태스크 실행 역할 | ecsTaskExecutionRole | |
| 컨테이너 | 컨테이너-1-이름 | {{CONTAINER_NAME}} |
| 컨테이너-1-이미지 URI | {{ECR_URI}} | |
| 컨테이너-1-포트 | {{PORT}} | |
| 리소스 할당 제한 | 0 0 0 0 (비권장) |
서비스 정의
| 구분 | 항목 | 값 |
|---|---|---|
| 서비스 세부 정보 | 테스크 정의 패밀리 | {{PREFIX}}-task |
| 테스크 정의 개정 | 1 | |
| 서비스 이름 | {{PREFIX}}-service | |
| 환경 | 컴퓨팅 구성-컴퓨팅 옵션 | 용량 공급자 전략✅ |
| 용량 공급자 전략 | 클러스터 기본값 사용✅ | |
| 배포 구성 | 스케줄링 전략 | 복제본 |
| 원하는 태스크 | 2 | |
| 가용 영역 리밸런싱 | ✅ | |
| 네트워킹 | vpc | {{PREFIX}}-vpc |
| 서브넷 | {{PREFIX}}-subnet-private1-1a,{{PREFIX}}-subnet-private2-1b | |
| ⭐ | 보안 그룹 이름 | {{PREFIX}}-sg-ecs-task |
| ⭐로드 밸런싱 | 로드 밸런서 | {{PREFIX}}-alb |
| 로드 밸런서 유형 | ALB | |
| 대상 그룹-이름 | {{PREFIX}}-tg | |
| 대상 그룹-타입 | IP | |
| 대상 그룹-프로토콜 | HTTP | |
| 대상 그룹-포트 | {{PORT}} | |
| 상태 확인 경로 | / | |
| 서비스 자동 크기 조정 | 서비스 자동 크기 조정 사용 | ✅ |
| 최소 태스크 개수 | 2 | |
| 최대 태스크 개수 | 4 | |
| CPU 사용률 | 75% |
점검
- 라우팅 테이블 확인 (NAT, IGW)
- ALB 보안 그룹 확인
- ALB 서브넷 확인 (Public)
- 대상 그룹 타입 확인 (IP)
- 대상 그룹 Health Check 확인