Linux 컨테이너로 시작하기 AWS Fargate - Amazon Elastic Container Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Linux 컨테이너로 시작하기 AWS Fargate

Amazon Elastic Container Service(Amazon ECS)는 컨테이너를 손쉽게 실행, 중지 및 관리할 수 있게 하는 컨테이너 관리 서비스로서 확장성과 속도가 뛰어납니다. AWS Fargate에서 서비스 또는 태스크를 시작하여 Amazon ECS에서 관리하는 서버리스 인프라에서 컨테이너를 호스팅할 수 있습니다. Fargate에 대한 자세한 내용은 을 참조하십시오. AWS Fargate의 Amazon ECS

Amazon ECS가 Fargate를 지원하는 지역에서 작업에 Fargate 시작 유형을 사용하여 Amazon ECS를 AWS 시작하십시오. AWS Fargate

AWS Fargate에서 Amazon ECS를 시작하려면 다음 단계를 완료합니다.

필수 조건

시작하기 전에 IAM 정책 예제에 지정된 권한을 AWS 사용자에게 부여하기 위한 단계를 완료하십시오. Amazon ECS 사용 설정 AdministratorAccess

콘솔에서는 Fargate 작업에 필요한 작업 실행 IAM 역할을 자동으로 생성하려고 합니다. 콘솔에서 이 IAM 역할을 생성할 수 있으려면 다음 중 하나가 충족되어야 합니다.

중요

작업 정의를 사용하여 서비스를 생성할 때 선택하는 보안 그룹에는 인바운드 트래픽을 위해 포트 80이 열려 있어야 합니다. 다음 인바운드 규칙을 보안 그룹에 추가합니다. 보안 그룹을 생성하는 방법에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서의 보안 그룹에 규칙 추가를 참조하세요.

  • 유형: HTTP

  • 프로토콜: TCP

  • 포트 범위: 80

  • 출처: 모든 소스(0.0.0.0/0)

1단계: 클러스터 생성

기본 VPC를 사용하는 클러스터를 생성합니다.

시작하기 전에 적절한 IAM 권한을 할당합니다. 자세한 정보는 클러스터 예제을 참조하세요.

  1. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

  2. 탐색 모음에서 사용할 리전을 선택합니다.

  3. 탐색 창에서 클러스터(Clusters)를 선택합니다.

  4. 클러스터(Clusters) 페이지에서 클러스터 생성(Create cluster)을 선택합니다.

  5. 클러스터 구성(Cluster configuration) 아래의 클러스터 이름(Cluster name)에 고유한 이름을 입력합니다.

    이름은 최대 255자(대/소문자), 숫자 및 하이픈을 포함할 수 있습니다.

  6. (선택 사항) Container Insights를 설정하려면 모니터링(Monitoring)을 확장한 다음 Container Insights 사용(Use Container Insights)을 설정합니다.

  7. (선택 사항) 클러스터를 식별하려면 태그(Tags)를 펼친 다음, 태그를 구성합니다.

    [태그 추가] 태그 추가(Add tag)를 선택하고 다음을 수행합니다.

    • 키(Key)에 키 이름을 입력합니다.

    • 에 키 값을 입력합니다.

    [태그 제거] 태그의 키와 값 오른쪽에 있는 제거(Remove)를 선택합니다.

  8. Create를 선택합니다.

2단계: 태스크 정의 생성

태스크 정의는 애플리케이션에 대한 청사진과 같습니다. Amazon ECS에서 태스크를 시작할 때마다 태스크 정의를 지정합니다. 그래야만 컨테이너에 사용할 도커 이미지, 작업에서 사용할 컨테이너 수, 각 컨테이너의 리소스 할당을 서비스가 알 수 있습니다.

  1. 탐색 창에서 태스크 정의(Task Definitions)를 선택합니다.

  2. 새 태스크 정의 생성(Create new Task Definition), JSON으로 새 수정 생성(Create new revision with JSON)을 선택합니다.

  3. 다음 예제 태스크 정의를 복사하여 상자에 붙여 넣은 다음 저장(Save)을 선택합니다.

    { "family": "sample-fargate", "networkMode": "awsvpc", "containerDefinitions": [ { "name": "fargate-app", "image": "public.ecr.aws/docker/library/httpd:latest", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "essential": true, "entryPoint": [ "sh", "-c" ], "command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ] } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512" }
  4. 생성(Create)을 선택합니다.

3단계: 서비스 생성

태스크 정의를 사용하여 태스크를 생성합니다.

  1. 탐색 창에서 클러스터(Clusters)를 선택하고 1단계: 클러스터 생성에서 생성한 클러스터를 선택합니다.

  2. Services(서비스) 탭에서 Create(생성)를 선택합니다.

  3. 배포 구성(Deployment configuration) 아래에서 애플리케이션 배포 방법을 지정합니다.

    1. 태스크 정의(Task definition)2단계: 태스크 정의 생성에서 생성한 태스크 정의를 선택합니다.

    2. 서비스 이름(Service name)에 서비스의 이름을 입력합니다.

    3. 원하는 태스크(Desired tasks)1을 입력합니다.

  4. 네트워킹에서 작업을 위해 새 보안 그룹을 생성하거나 기존 보안 그룹을 선택할 수 있습니다. 사용하는 보안 그룹에 필수 조건에 나열된 인바운드 규칙이 있는지 확인합니다.

  5. 생성을 선택하세요.

4단계: 서비스 보기

  1. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

  2. 탐색 창에서 클러스터를 선택합니다.

  3. 서비스를 실행한 클러스터를 선택합니다.

  4. 서비스 탭의 서비스 이름에서 3단계: 서비스 생성에서 생성한 서비스를 선택합니다.

  5. 작업 탭을 선택한 다음 서비스의 작업을 선택합니다.

  6. 작업 페이지의 구성 섹션에 있는 퍼블릭 IP에서 공개 주소를 선택합니다.

5단계: 정리

Amazon ECS 클러스터 사용을 완료를 한 후에 사용하지 않는 리소스에 대해 요금이 발생하는 것을 방지하기 위해 연결된 리소스를 정리해야 합니다.

작업, 서비스, 클러스터, 컨테이너 인스턴스 같은 일부 Amazon ECS 서비스는 Amazon ECS 콘솔을 사용하여 정리됩니다. Amazon EC2 인스턴스, Elastic Load Balancing 로드 밸런서, Auto Scaling 그룹과 같은 기타 리소스는 Amazon EC2 콘솔에서 수동으로 정리하거나 리소스를 생성한 스택을 삭제하여 정리해야 합니다. AWS CloudFormation

  1. 탐색 창에서 클러스터를 선택합니다.

  2. 클러스터 페이지에서 이 자습서용으로 생성한 클러스터를 선택합니다.

  3. 서비스 탭을 선택합니다.

  4. 서비스를 선택한 다음 삭제를 선택합니다.

  5. 확인 프롬프트에서 delete를 입력한 다음, 삭제(Delete)를 선택합니다.

    서비스가 삭제될 때까지 기다립니다.

  6. 클러스터 삭제(Delete Cluster)를 선택합니다. 확인 프롬프트에서 delete cluster-name을 입력한 다음 삭제(Delete)를 선택합니다. 클러스터를 삭제하면 오토 스케일링, VPC 또는 로드 밸런서를 포함하여 클러스터로 생성된 관련 리소스가 정리됩니다.