AWS에서 Elastic Container Service(ECS)를 설정하는 방법


이 페이지에서

  1. 전제 조건
  2. 무엇을 할 것인가?\n
  3. AWS에 로그인
  4. 클러스터 생성
  5. 작업 실행 IAM 역할 생성\n
  6. 작업 정의 만들기
  7. 서비스 만들기
  8. 만든 작업에 액세스
  9. 클러스터 삭제
  10. 결론

Elastic Container Service는 AWS에서 제공하는 완전 관리형 컨테이너 오케스트레이션 서비스입니다. AWS에서 컨테이너를 실행하는 것은 선택입니다. Fargate를 지원하여 컨테이너에 서버리스 컴퓨팅을 제공합니다. Fargate는 서버를 프로비저닝하고 관리할 필요가 없습니다. ECS는 인프라 대신 애플리케이션 구축 및 관리에 집중하는 데 도움이 됩니다. 확장성이 뛰어나고 빠른 컨테이너 관리 서비스로 클러스터에서 컨테이너를 쉽게 실행, 중지, 관리할 수 있습니다.

ECS는 다양한 가격 모델과 함께 제공됩니다. 요금에 대해 알아보려면 여기에서 AWS 공식 페이지를 방문하십시오.

ECS의 기본 용어.

  1. ECS 클러스터: 작업 또는 서비스의 논리적 그룹입니다.
  2. 작업 정의: 애플리케이션을 구성하는 하나 이상의 컨테이너(최대 10개)를 설명합니다.\n
  3. 작업: 작업 정의의 실행 가능한 단위입니다.\n
  4. 서비스: 작업 정의 인스턴스를 지정된 수만큼 실행하고 유지하는 데 사용됩니다.\n

이 문서에서는 ECS 클러스터를 만들고 여기에 샘플 Nginx 애플리케이션을 배포합니다. 클러스터 설정을 이해하기 위해 테스트 클러스터를 만듭니다. 요구 사항에 따라 사용자 지정 구성으로 프로덕션 클러스터를 설정하는 것이 좋습니다.

전제 조건

  1. AWS 계정(계정이 없는 경우 생성).
  2. IAM 역할에 대한 기본적인 이해(IAM에 대해 알아보려면 여기를 클릭하세요.)\n
  3. VPC에 대한 기본 이해(VPC에 대해 알아보려면 여기를 클릭하세요.)\n

우리는 무엇을 할 것인가?

  1. AWS에 로그인합니다(없으면 생성).\n
  2. 클러스터 생성
  3. 작업 실행 IAM 역할 생성\n
  4. 작업 정의 만들기
  5. 서비스 만들기
  6. 만든 작업에 액세스
  7. 클러스터 삭제

AWS에 로그인

여기를 클릭하여 AWS 로그인 페이지로 이동하고 사용자 인증 정보를 입력하세요.

계정에 로그인하면 다음과 같이 기본 AWS Management Console이 표시됩니다.

클러스터 생성

ECS로 이동하려면 화면 왼쪽 상단의 서비스를 클릭하고 컨테이너 아래에서 Elastic Container Service를 클릭합니다.

아래와 같이 ECS의 메인 대시보드가 표시됩니다. 왼쪽 패널에서 "클러스터"를 클릭합니다.

클러스터를 생성하지 않았기 때문에 목록에 아무 것도 표시되지 않습니다. 첫 번째 클러스터를 생성하려면 "클러스터 생성" 버튼을 클릭하십시오.

여기에서 "EC2 Linux + 네트워킹" 옵션을 선택하고 "다음 단계" 버튼을 클릭합니다.

클러스터에 이름을 지정하고 EC2 인스턴스 유형을 선택합니다. 클러스터의 EC2 인스턴스는 선택한 유형으로 생성됩니다. 생성할 EC2 인스턴스의 프로비저닝 모델을 선택합니다. 요구 사항에 따라 다른 구성을 지정합니다.

새 PC를 만들거나 기존 PC를 선택할 수 있습니다. VPC와 네트워킹에 대해 잘 모르고 그것에 대해 더 알고 싶다면 여기에서 문서를 살펴보는 것이 좋습니다.

원하는 경우 태그를 지정하거나 선택적 구성이므로 비워 둘 수 있습니다. 클러스터를 생성할 "만들기" 버튼을 클릭하십시오.

이 작업은 몇 분 정도 소요되며 클러스터가 생성되면 같은 페이지에서 \ECS 상태 -3/3..\ 상태를 볼 수 있습니다. 클러스터로 이동하려면 "클러스터 보기" 버튼을 클릭하세요.

작업 실행 IAM 역할 생성

추가 구성을 진행하기 전에 작업 실행에 사용할 역할이 필요합니다. IAM으로 이동하여 다음 정책으로 새 역할을 만듭니다. IAM에 대해 잘 모르고 IAM에 대해 자세히 알아보려면 여기를 클릭하세요.

다음 정책을 사용하여 역할: ecsTaskExecutionRole을 생성합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

역할을 만들면 IAM 콘솔에 다음과 같이 표시됩니다.

작업 정의 만들기

IAM 역할이 준비되었으면 이제 작업 정의 생성을 진행할 수 있습니다.

이 시점까지는 컨테이너화된 애플리케이션이 실행되지 않는 빈 클러스터만 있습니다.

다음 단계는 작업 정의를 만드는 것입니다. 첫 번째 작업 정의를 생성하려면 "Clusters" 아래 왼쪽 패널에서 "Task Definitions"를 클릭하십시오.

여기에서 "새 작업 정의 만들기" 버튼을 클릭하십시오.

이 페이지에서 실행 유형을 "EC2\로 선택한 다음 "다음" 단계 버튼"을 클릭합니다.

이전 단계에서 만든 IAM 역할을 기억하시나요? 이제 작업 역할 아래에 생성한 역할을 지정해야 합니다. 작업 정의에 이름을 지정합니다.

조금 아래로 스크롤하면 "컨테이너 추가" 버튼이 표시되며 클릭하면 다음과 같은 새 화면이 나타납니다.

컨테이너에 이름이 지정된 이 화면에서 컨테이너에 사용할 이미지를 지정합니다. 메모리 제한, 포트 매핑, 상태 확인을 지정할 수도 있습니다. 구성을 마쳤으면 "추가" 버튼을 클릭합니다.

태스크에서 사용할 "태스크 메모리" 및 "태스크 CPU"를 지정합니다.

이제 작업에 대한 기본 및 필수 구성이 준비되었습니다. "만들기" 버튼을 클릭하면 작업 정의가 생성됩니다.

"작업 정의를 성공적으로 생성했습니다"라는 메시지가 표시됩니다.

서비스 만들기

이 시점까지 클러스터 및 작업 정의가 있습니다. 다음 단계는 서비스를 만드는 것입니다. 생성한 클러스터로 돌아가서 Service 탭에서 Create 버튼을 클릭하여 서비스를 생성합니다.

실행 유형을 EC2로 선택하고 우리가 만든 작업 정의를 선택합니다. 드롭다운 옵션에서 클러스터 이름을 선택할 수 있습니다. 만들고 있는 서비스 이름도 작업 수를 2로 지정하면 2개의 사본을 생성합니다. 애플리케이션.

나머지 구성은 배포 및 작업 배치에 있는 그대로 유지합니다. 태그는 선택 사항이므로 태그를 지정하는 것이 필수는 아닙니다. 계속 진행하려면 "다음 단계" 버튼을 클릭하십시오.

로드 밸런서가 있는 경우 이를 선택하여 이를 통해 외부 트래픽을 애플리케이션으로 라우팅할 수 있습니다. "다음 단계" 버튼을 클릭합니다.

서비스를 확장하지 않으려면 기본 구성을 "원하는 서비스 개수 조정 안 함"으로 진행하세요.

생성할 서비스에 대해 방금 만든 구성을 검토하고 "서비스 생성" 버튼을 클릭합니다.

서비스가 성공적으로 생성된 경우 상태가 "ECS 서비스 상태 - 1/1 완료됨"으로 표시됩니다.

우리가 만든 작업에 액세스

클러스터로 돌아가서 "Tasks" 탭 아래에서 2개의 작업이 실행 중인 것을 볼 수 있습니다. 이러한 작업에는 애플리케이션이 포함됩니다.

자세한 내용을 보려면 작업 중 하나를 클릭하십시오.

부하 분산기를 지정하지 않았기 때문에 특정 링크를 통해 외부 세계에서 애플리케이션에 액세스할 수 없습니다. 이 때문에 개별 외부 링크에서 작업에 액세스해야 합니다.

네트워크 바인딩에서 작업의 외부 링크를 찾을 수 있습니다. 이 특정 작업은 여기에서 사용할 수 있는 링크에서만 액세스할 수 있습니다. 링크를 복사하여 작업 정의에 지정한 애플리케이션 Nginx가 실행 중인지 테스트합니다.

브라우저로 이동하여 이전 단계에서 복사한 링크를 누르십시오. Nginx의 기본 페이지를 볼 수 있습니다. 이는 Nginx 애플리케이션이 성공적으로 배포되었음을 의미합니다.

클러스터 삭제

더 이상 클러스터가 필요하지 않으면 클릭 한 번으로 클러스터를 삭제할 수 있습니다. 클러스터로 돌아가서 클러스터 삭제" 버튼을 클릭합니다.

텍스트 필드에 "delete me"를 입력하여 삭제 작업을 확인하고 "Delete" 버튼을 클릭합니다. 이렇게 하면 클러스터가 영구적으로 삭제되며 삭제되면 복구할 수 없습니다. 따라서 실시간 애플리케이션에서 작업 중인 경우 클러스터를 삭제할 때 주의하십시오.

결론

이 기사에서는 클러스터, 작업 정의 및 서비스를 생성하는 단계를 살펴보았습니다. 우리가 본 단계는 테스트 클러스터를 만드는 데 사용할 수 있습니다. 실시간 애플리케이션으로 클러스터를 생성하려면 본 구성에 대해 보다 구체적이어야 합니다.