AWS Fargate에서 Linux 컨테이너를 사용하여 클래식 콘솔 시작하기 - Amazon Elastic Container Service

AWS Fargate에서 Linux 컨테이너를 사용하여 클래식 콘솔 시작하기

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

작업에 Fargate 시작 유형을 사용하여 AWS Fargate에서 Amazon ECS를 시작합니다. Amazon ECS가 AWS Fargate를 지원하는 리전에서는 클래식 Amazon ECS 처음 실행 마법사가 Fargate 시작 유형을 사용하여 Amazon ECS를 시작하는 프로세스를 안내합니다. 이 마법사는 클러스터를 생성하고 샘플 웹 애플리케이션을 시작하는 옵션을 안내합니다. Amazon ECS에 시작하려는 Docker 이미지가 이미 있을 경우 그 이미지로 태스크 정의를 만들어서 클러스터에 사용할 수 있습니다.

중요

Amazon EC2를 사용하여 Amazon ECS를 시작하는 자세한 내용은 Amazon EC2를 사용하여 클래식 콘솔 시작하기 섹션을 참조하세요.

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

사전 조건

시작하기 전에 Amazon ECS 사용 설정의 단계를 완료했는지 그리고 AWS 사용자에게 AdministratorAccess 또는 Amazon ECS 처음 실행 마법사 권한 IAM 정책 예제에서 지정된 권한이 있는지 확인합니다.

처음 실행 마법사는 작업 실행 IAM 역할의 자동 생성을 시도합니다. 이 역할은 Fargate 작업에 필요합니다. 처음 실행 경험으로 이러한 IAM 역할을 생성할 수 있는지 확인하려면 다음 중 하나가 충족되어야 합니다.

1단계: 태스크 정의 생성

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

  1. https://console.aws.amazon.com/ecs/home#/firstRun에서 클래식 콘솔 처음 실행 마법사를 엽니다.

  2. 탐색 모음에서 미국 동부(버지니아 북부)(US East (N. Virginia)) 리전을 선택합니다.

    참고

    Fargate를 사용하는 Amazon ECS를 지원하는 리전에서 이러한 단계를 사용하여 이 처음 실행 마법사를 완료할 수 있습니다. 자세한 정보는 AWS Fargate의 Amazon ECS을 참조하십시오.

  3. 컨테이너 정의 파라미터를 구성합니다.

    컨테이너 정의(Container definition)의 경우 처음 실행 마법사에는 콘솔에 sample-app, nginxtomcat-webserver 컨테이너 정의가 미리 로드되어 있습니다. 컨테이너 이름을 선택하고 편집(Edit)을 선택하거나 표시된 값을 편집하여 컨테이너가 사용하는 리소스(CPU 단위 및 메모리 한도 등)를 검토하고 편집할 수 있습니다. 자세한 내용은 컨테이너 정의 섹션을 참조하세요.

    참고

    컨테이너 정의에서 Amazon ECR 이미지를 사용하는 경우 Amazon ECR 이미지에 전체 registry/repository:tag 이름 지정을 사용해야 합니다. 예: aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest.

  4. 태스크 정의(Task definition)의 경우 처음 실행 마법사는 미리 로드된 컨테이너 정의에서 사용할 태스크 정의를 정의합니다. 필요에 따라 태스크 정의 이름을 바꾸고 편집(Edit)을 선택하여 표시된 값을 편집하여 작업에서 사용하는 리소스(예: 작업 메모리CPU 작업 값)를 편집합니다. 자세한 내용은 태스크 정의 파라미터 섹션을 참조하세요.

    단순성을 위해 처음 실행 마법사에서 만드는 태스크 정의는 단일 컨테이너로 제한됩니다. 나중에 Amazon ECS 콘솔에서 다중 컨테이너 태스크 정의를 만들 수 있습니다.

  5. 다음(Next)을 선택합니다.

2단계: 서비스 구성

마법사의 이 섹션에서는 태스크 정의에서 생성되는 Amazon ECS 서비스를 어떻게 구성할지 선택합니다. 서비스는 클러스터에서 지정된 수의 태스크 정의 사본을 시작하고 유지합니다. Amazon ECS sample 애플리케이션은 무제한으로 실행하기 위한 웹 기반 Hello World 스타일 애플리케이션입니다. 이것을 서비스로 실행하면 작업 상태가 나빠지거나 작업이 갑자기 정지할 경우 다시 시작합니다.

처음 실행 마법사에는 서비스 정의가 미리 로드되어 있으며 콘솔에서 sample-app-service 서비스가 정의되어 있는 것을 볼 수 있습니다. 서비스 이름을 바꾸고 편집(Edit)을 선택하고 다음 태스크를 수행하여 세부 정보를 편집할 수 있습니다.

  1. 서비스 이름(Service name) 필드에서 서비스 이름을 선택합니다.

  2. 원하는 작업 수(Number of desired tasks) 필드에 지정한 태스크 정의를 사용하여 시작할 작업의 수를 입력합니다.

  3. 보안 그룹(Security group) 필드에서 인바운드 트래픽을 허용할 IPv4 주소(CIDR 블록 표기법으로 표시)의 범위를 지정합니다. 예: 203.0.113.0/24.

  4. (선택 사항) 서비스에 Application Load Balancer를 사용하도록 선택할 수 있습니다. 로드 밸런서를 사용하도록 구성된 서비스에서 작업이 시작되면 작업이 로드 밸런서에 등록되고 로드 밸런서의 트래픽은 로드 밸런서에 있는 인스턴스에 분산됩니다. 자세한 내용은 Application Load Balancer 소개를 참조하세요.

    중요

    Application Load Balancer가 AWS 리소스에 존재하는 동안은 비용이 발생합니다. 자세한 내용은 Application Load Balancer 요금 섹션을 참조하세요.

    서비스에 로드 밸런서를 사용하려면 다음 단계를 완료하세요.

    1. Container to load balance 섹션에서 로드 밸런서 리스너 포트(Load balancer listener port)를 선택합니다. 여기서 기본값은 샘플 애플리케이션을 위해 설정된 것이지만 로드 밸런서를 위해 다른 리스너 옵션을 구성할 수 있습니다. 자세한 내용은 서비스 로드 밸런싱 섹션을 참조하세요.

  5. 서비스 설정을 검토한 다음 저장(Save), 다음(Next)을 클릭합니다.

3단계: 클러스터 구성

마법사의 이 섹션에서 클러스터에 이름을 지정하면 Amazon ECS가 네트워킹 및 IAM 구성을 자동으로 처리합니다.

  1. 클러스터 이름(Cluster name) 필드에서 클러스터의 이름을 선택합니다.

  2. 다음(Next)을 클릭하여 계속 진행합니다.

4단계: 검토

  1. 태스크 정의, 작업 구성, 클러스터 구성을 검토한 다음 생성(Create)을 클릭하여 종료합니다. 시작 상태를 보여 주는 시작 상태 페이지로 이동합니다. 이 페이지에는 프로세스의 각 단계에 대한 설명이 나옵니다(오토 스케일링이 생성되고 채워지는 동안 완료에 몇 분 정도 걸릴 수 있습니다).

  2. 시작이 완료되면 서비스 보기(View service)를 선택합니다.

5단계: 서비스 보기

서비스가 웹 기반 애플리케이션(예: Amazon ECS sample 애플리케이션)인 경우 웹 브라우저로 해당 컨테이너를 볼 수 있습니다.

  1. 서비스: service-name 페이지에서 태스크(Tasks) 탭을 선택합니다.

  2. 서비스의 작업 목록에서 태스크를 선택합니다.

  3. 네트워크(Network) 섹션에서 해당 작업에 대해 ENI Id를 선택합니다. 이렇게 하면 Amazon EC2 콘솔로 이동하여 IPv4 퍼블릭 IP 주소를 비롯해 해당 작업에 연결된 네트워크 인터페이스의 세부 정보를 볼 수 있습니다.

  4. 웹 브라우저에 IPv4 퍼블릭 IP 주소를 입력하면 Amazon ECS sample 애플리케이션이 표시되는 웹 페이지가 보여야 합니다.

6단계: 정리

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

작업, 서비스, 클러스터, 컨테이너 인스턴스 같은 일부 Amazon ECS 서비스는 Amazon ECS 콘솔을 사용하여 정리됩니다. Amazon EC2 인스턴스, Elastic Load Balancing 로드 밸런서, 오토 스케일링 같은 일부 리소스는 Amazon EC2 콘솔에서 수동으로 정리하거나 리소스를 만든 AWS CloudFormation 스택을 삭제하여 정리해야 합니다.

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

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

  3. 클러스터 페이지에서 삭제할 클러스터를 선택합니다.

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