-
AWS ECS를 활용한 머신러닝 서비스 배포하기 #3 (feat. Task Definition, Service 생성)AWS/ECS 2021. 7. 4. 23:18728x90
https://ninano1109.tistory.com/156
Task Definition
Dev
FARGATE> Task Definition Name: keyword-dev> Task Role 비워두기> Network Mode 자동 설정> Task execution IAM role 자동 설정> Task size: Task memory 4GB/ Task CPU 2 vCPU> Container Definition> Tags: Key=Name/ Value=keyword-dev
- Task Role
- AWS 서비스가 다른 AWS 서비스에 접근할 수 있는 권한을 주는 것(S3를 사용하지 않기 때문에 빈칸으로 두기)
- Roles가 모여서 Policy를 이루는 것
- Container Definition
- Container name> Image(ECR 이미지 URI 복사)> Memory Limits: 1024*3=3072> Port mappings: 도커 컨테이너 실행 port(8000) 입력> Docker LABELS: Key=Name/ Value=keyword-dev
Prod
FARGATE> Task Definition Name: keyword-prod> Task Role 비워두기> Network Mode 자동 설정> Task execution IAM role 자동 설정> Task size: Task memory 4GB/ Task CPU 2 vCPU> Container Definition> Tags: Key=Name/ Value=keyword-prod
- Task Role
- AWS 서비스가 다른 AWS 서비스에 접근할 수 있는 권한을 주는 것(S3를 사용하지 않기 때문에 빈칸으로 두기)
- Roles가 모여서 Policy를 이루는 것
- Container Definition
- Container name> Image(ECR 이미지 URI 복사)> Memory Limits: 1024*3=3072> Port mappings: 도커 컨테이너 실행 port(8000) 입력> Docker LABELS: Key=Name/ Value=keyword-prod
Service
Launch type: FARGATE(Task Def. 과 동일)> Task Definition: 생성한 것 선택> Cluster> Service name> Number of tasks> Min/Max healthy percent: 100/200> Deployment circuit breaker: Enabled with rollback> Deployment type: Rolling update> Propagate tags from: Service> Tags 설정
Dev
Step 1
Launch type: FARGATE(Task Def. 과 동일)> Task Definition: 생성한 것 선택> Cluster> Service name> Number of tasks:2> Min/Max healthy percent: 100/200> Deployment circuit breaker: Enabled with rollback> Deployment type: Rolling update> Propagate tags from: Service> Tags 설정
- Number of tasks: 3
- Service 내 Target Group에 몇 개의 task를 실행할 지에 대한 task 복제 개수
- Load Balancer로 부하분산을 하기 위해 몇개의 task로 데이터를 전달할지에 대한 설정 값
- Min/Max healthy percent
- Task를 배포할 때, 몇 개의 task를 최대한으로 띄우고 기존에 실행 중인 task를 죽이고 대체하는지에 대한 설정값
- Ex) Number of tasks가 2개일 때 Min/Max를 100/200으로 두면, 기존2+신규2 총 4개의 Task를 실행하고 기존 Task를 종료하여 Min 2개를 계속 유지하는 방법
Step2
Cluster VPC 선택> Subnets: Public(개발) 전체 선택> Security Group 선택> Load balancing: Application Load Balancer 선택> Load Balancer name 선택> Container to load balance: Add to load balancer> Target group name: 선택
Prod
Step 1
Launch type: FARGATE(Task Def. 과 동일)> Task Definition: 생성한 것 선택> Cluster> Service name> Number of tasks:3> Min/Max healthy percent: 100/200> Deployment circuit breaker: Enabled with rollback> Deployment type: Rolling update> Propagate tags from: Service> Tags 설정
Step2
Cluster VPC 선택> Subnets: Private(운영) 전체 선택> Security Group 선택
당신이 어떤 것을
할머니에게 설명해주지 못한다면,
그것은 진정으로 이해한 것이 아니다.
- A.Einstein
'AWS > ECS' 카테고리의 다른 글
AWS ECS를 활용한 머신러닝 서비스 배포하기 #2 (feat. Security Group 생성) (0) 2021.07.01 AWS ECS를 활용한 머신러닝 서비스 배포하기 #1 (feat. Cluster, Load Balancer 생성) (0) 2021.06.27 - Task Role