ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS ECS를 활용한 머신러닝 서비스 배포하기 #3 (feat. Task Definition, Service 생성)
    AWS/ECS 2021. 7. 4. 23:18
    728x90

    https://ninano1109.tistory.com/156

     

    AWS ECS를 활용한 서비스 배포하기 #2 (feat. Security Group 생성)

    https://ninano1109.tistory.com/155 Create an empty cluster> Tag 입력 2. Load Balancer Dev/Prod Application Load Balancer Create> Name입력> Scheme: internet-facing> Listeners: HTTP/80> Availability....

    ninano1109.tistory.com

     

    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

     

    Task Definition Container

     

    Task Definition 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: 선택

     

    dev_service

    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 선택

    prod_service

     

     

     


    당신이 어떤 것을

    할머니에게 설명해주지 못한다면,

    그것은 진정으로 이해한 것이 아니다. 

    - A.Einstein

     

     

     

    댓글

Designed by Tistory.