본문으로 건너뛰기

AWS ECS

AWS ECS

선행

AWS_ECR

목차

클러스터 생성

  • EC2 인스턴스 유형은 2 vCPU, 4GB RAM 이상이 필요시 함 (대부분의 초기 구축 오류는 클러스터 사양 문제에서 발생)
  • ecsInstanceRole : 클러스터에게 EC2 인스턴스가 있다는 것을 알림 (없을 경우 클러스터 목록에 안뜸)
환경 (목적)최소 (Min)최대 (Max)추천 이유
개발 / 테스트(현재 추천 ⭐)12• 비용 최소화
• 배포 시 잠시 2대가 되어 끊김 없는 배포(Rolling Update) 가능
비용 절감형 운영(소규모 서비스)24• 기본 가용성 확보 (인스턴스 1대가 죽어도 서비스 유지)
• 트래픽 증가 시 2배까지 확장 가능
고가용성 운영(안정성 중요)36+• 3개 AZ(가용 영역) 분산
• 1개 AZ가 통째로 죽어도 서비스 안정적 유지
절전 모드(야간/주말)01• 사용 안 할 때 0으로 줄여 비용 0원
• 다시 켤 때 시간이 조금 걸림 (Cold Start)

private 서브넷 사용의 경우 NAT설정 확인

public 서브넷의 경우 igw와 ip 자동 지정 확인

구분항목
클러스터 이름클러스터 이름pista-ecs-cluster-web
인프라(고급)컴퓨팅 용량 확보 방법 선택Fargate 및 자체 관리형 인스턴스✅
컴퓨팅 용량 확보 방법 선택Fargate 및 관리형 인스턴스
Auto Scaling 그룹(ASG)새 Auto Scaling 그룹 생성
프로비저닝 모델온디멘드
컨테이너 인스턴스 Amazon Machine Image(AMI)Amazone Linux 2023
Bottlerocker x86_64
EC2 인스턴스 유형t3.medium
EC2 인스턴스 역할ecsInstanceRole
원하는 용량-최소1
원하는 용량-최대2
SSH 키 페어mz-pista-key
루트 EBS 불륨 크기30GB(최솟값)
네트워크 설정-VPCpista-vpc
네트워크 설정-서브넷pista-subnet-private1-1a,
pista-subnet-private2-1b
네트워크 설정-보안 그룹pista-sg-web
네트워크 설정-퍼블릭 IP 자동 지정x

태스크 정의

Amazon Elastic Container Service > 새 태스크 정의 생성

  • 인프라 요구 사항-태스크 역할 : S3, DB 접근이 필요시 사용
모드설명Fargate 지원장점 및 특징
awsvpc (⭐추천)태스크마다 별도의 IP 부여⭕ 필수• 성능 최상 (EC2 거치지 않음)
• 보안 그룹을 태스크별로 따로 설정 가능
bridgeEC2의 IP를 공유해서 사용❌ 불가• 동적 포트 매핑 가능 (포트 충돌 걱정 없이 여러 개 띄우기)
• EC2에서만 사용 가능
hostEC2의 네트워크를 그대로 사용❌ 불가• 설정이 제일 쉽지만 포트 충돌 위험 큼
CPU (vCPU)설정 가능 메모리 (GB)추천 용도
0.25 vCPU0.5 GB ~ 2 GB백그라운드 작업, 스크립트
0.5 vCPU1 GB ~ 4 GB웹 서버, 개발/테스트 (현재 추천)
1 vCPU2 GB ~ 8 GB일반적인 실무 애플리케이션
2 vCPU4 GB ~ 16 GB트래픽 많은 서비스 (⚠️ 1GB 설정 불가)
4 vCPU8 GB ~ 30 GB머신러닝, 고성능 데이터 처리
구분항목
태스크 정의 구성테스크 정의 패밀리pista-ecs-task-web
인프라 요구 사항생성시작 유형Amazon EC2 인스턴스✅
OS, 아키텍쳐, 네트워크 모드Linux/x86_64 awsvpc
CPU (vCPU)0.5 vCPU
메모리 (GB)1 GB
태스크 역할ecsTaskExecutionRole
태스크 실행 역할ecsTaskExecutionRole
컨테이너컨테이너-1-이름pista-web
컨테이너-1-이미지 URIpista/web
컨테이너-1-포트80
리소스 할당 제한0 0 0 0 (비권장)

서비스 정의

서비스 생성(pista-ecs-service-web)

구분항목
서비스 세부 정보테스크 정의 패밀리pista-ecs-task-web
테스크 정의 개정2
서비스 이름pista-ecs-service-web
환경컴퓨팅 구성-컴퓨팅 옵션용량 공급자 전략✅
용량 공급자 전략클러스터 기본값 사용✅
배포 구성스케줄링 전략복제본
원하는 태스크1
가용 영역 리밸런싱
배포옵션default
네트워킹vpcpista-vpc
서브넷pista-subnet-private1-1a,pista-subnet-private2-1b
보안 그룹 이름pista-sg-web
⭐로드 밸런싱 사용VPCpista-vpc
로드 밸런서 유형ALB
컨테이너pista-web 80:80
서비스 자동 크기 조정서비스 자동 크기 조정 사용
최소 태스크 개수1
최대 태스크 개수2
CPU 사용률80%
메모리 사용률80%

점검

  • [] 라우팅 테이블 확인 (nat, igw)
  • 태스크 대기중 확인 -> 프로비저닝 후 3~5 분 소요
  • 타겟 그룹 Health Check 확인
  • ALB의 보안 그룹 확인

NOTWORKING

  • private 서브넷의 경우 NAT 게이트웨이 설정확인
    • 라우팅 테이블 확인[nat, igw]
  • [] ALB 내부 서브넷 확인

관련 문서

그래프 뷰

그래프 데이터 로딩 중…
현재: AWS ECS
노드 클릭 → 이동 · 드래그 → 위치 조정