내용으로 건너뛰기

Amazon ECS의 작업에 메모리를 할당하려면 어떻게 해야 합니까?

4분 분량
0

Amazon Elastic Container Service(Amazon ECS)를 사용하여 작업에 메모리를 할당하려고 합니다.

간략한 설명

Amazon ECS에서는 두 가지 작업 정의로 작업 메모리를 정의할 수 있습니다.

Amazon ECS는 사용자가 memoryReservation 또는 memory 파라미터를 사용하는지 여부에 따라 서비스 메모리 사용률 지표를 계산합니다. 자세한 내용은 서비스 수준 CPU 및 메모리 사용률을 참조하십시오.

다음 표에서는 Amazon Elastic Compute Cloud(Amazon EC2) 및 AWS Fargate 시작 유형에 대한 최소 구성 옵션을 검토할 수 있습니다.

작업 크기가 없는 작업작업 크기가 있는 작업
작업 CPU선택적 구성필수 구성
작업 메모리선택적 구성필수 구성
컨테이너 CPU선택적 구성선택적 구성
컨테이너 메모리필수 구성선택적 구성
시작 유형 호환성EC2 전용EC2 및 Fargate

작업 크기가 없는 작업의 경우 작업에 대한 컨테이너 메모리를 구성해야 합니다. 이러한 작업은 Amazon EC2 시작 유형에만 사용할 수 있습니다. 정의된 작업 크기가 있는 작업의 경우 Amazon EC2 또는 AWS Fargate 시작 유형에 작업을 사용할 수 있습니다. 그런 다음, 작업 메모리와 CPU를 구성합니다. 자세한 내용은 Fargate 시작 유형의 Amazon ECS 작업 정의 파라미터를 참조하십시오.

해결 방법

컨테이너 메모리 할당 검토

다음 단계를 완료하십시오.

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 클러스터를 선택한 다음, 해당 클러스터를 선택합니다.
  3. 클러스터 세부 정보 페이지에서 인프라를 선택합니다.
  4. 컨테이너 인스턴스에서 클러스터에 등록된 컨테이너 인스턴스 ID를 선택합니다.
  5. 리소스 및 네트워킹에서 메모리 세부 정보를 검토합니다.

memory 파라미터는 다음 클러스터 세부 정보에 대한 정보를 제공합니다.

  • RegisterContainerInstance API 직접 호출 시 사용 가능한 총 메모리 용량
  • 인스턴스에서 실행하는 ECS 작업에 할당된 사용 중인 메모리
  • 새 작업에 할당할 수 있는 사용 가능한 메모리

참고: 인스턴스의 리소스 사용량에 대한 통계를 보려면 SSH 또는 SSM을 사용하여 인스턴스에 연결하십시오. 그런 다음, docker stats 명령을 실행합니다. 자세한 내용은 Docker 웹 사이트의 Docker 컨테이너 통계를 참조하십시오.

EC2 시작 유형의 경우 작업 정의에 메모리를 올바르게 지정하려면 컨테이너 인스턴스에서 사용 가능한 메모리를 알아야 합니다. 작업 정의에 지정한 메모리가 등록된 인스턴스에서 사용 가능한 메모리보다 크면 작업이 실패합니다.

Amazon ECS 콘솔 JSON 에디터 사용

Amazon ECS 작업 정의를 생성하고 작업에 메모리를 할당하려면 Amazon ECS 콘솔 JSON 에디터를 사용할 수 있습니다. 자세한 내용은 절차를 참조하십시오.

Amazon ECS 콘솔 사용

Amazon ECS 콘솔을 사용하여 작업에 메모리를 할당하려면 다음 작업 중 하나를 완료하십시오.

소프트 제한(memoryReservation)이 있는 작업 정의 생성

다음 단계를 완료하십시오.

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 Task Definition(작업 정의)을 선택한 다음, Create new task definition(새 작업 정의 생성)을 선택합니다.
  3. Create task definition(작업 정의 생성) 화면에서 다음 정보를 입력합니다.
    Task definition family name(작업 정의 패밀리 이름)에 작업 이름을 입력합니다.
    시작 유형에서 Amazon EC2 인스턴스를 선택합니다.
    컨테이너 섹션에서 컨테이너 세부 정보에 컨테이너의 이름과 이미지 URI를 입력합니다.
    Resource allocation limits(리소스 할당 제한)에 메모리 소프트 제한 값을 입력합니다. 그런 다음, 생성을 선택합니다.
    참고: 메모리 소프트 제한은 memoryReservation 파라미터에 매핑됩니다.

하드 제한(memory)이 있는 작업 정의 생성

다음 단계를 완료하십시오.

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 Task Definition(작업 정의)을 선택한 다음, Create new task definition(새 작업 정의 생성)을 선택합니다.
  3. Create task definition(작업 정의 생성) 화면에서 다음 정보를 입력합니다.
    Task definition family name(작업 정의 패밀리 이름)에 작업 이름을 입력합니다.
    시작 유형에서 Amazon EC2 인스턴스를 선택합니다.
    컨테이너 섹션에서 컨테이너 세부 정보에 컨테이너의 이름과 이미지 URI를 입력합니다.
    Resource allocation limits(리소스 할당 제한)에 메모리 하드 제한 값을 입력합니다. 그런 다음, 생성을 선택합니다.
    참고: 메모리 하드 제한은 memory 파라미터에 매핑됩니다.

컨테이너의 메모리 할당 검토

다음 단계를 완료하십시오.

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 클러스터를 선택한 다음, 해당 클러스터를 선택합니다.
  3. 클러스터 세부 정보 페이지에서 인프라 탭을 선택합니다.
  4. 클러스터에 등록된 컨테이너 인스턴스를 선택합니다.
  5. 컨테이너 인스턴스 탭의 리소스에서 Memory registered(등록된 메모리) 값을 검토합니다.
    참고: 실행 중인 작업이 0개일 때 등록된 메모리 값은 사용 가능한 메모리 값과 같습니다.

참고: 인스턴스의 리소스 사용량에 대한 통계를 보려면 SSH 또는 SSM을 사용하여 인스턴스에 연결하십시오. 그런 다음, docker stats 명령을 실행합니다. 자세한 내용은 Docker 웹 사이트의 Docker 컨테이너 통계를 참조하십시오.

서비스 일부로 실행되는 작업의 경우 서비스 메모리 사용률 지표는 총 메모리 리소스의 백분율로 사용량을 보고합니다. 이러한 리소스는 작업 정의에서 서비스에 대해 지정됩니다. 자세한 내용은 서비스 수준 CPU 및 메모리 사용률을 참조하십시오.

클러스터의 컨테이너 인사이트를 사용하여 MemoryUtilized 지표를 확인할 수도 있습니다. 이 지표는 작업과 컨테이너가 사용하는 메모리를 보여줍니다.

관련 정보

Amazon ECS가 CPU 및 메모리 리소스를 관리하는 방법

Amazon ECS의 컨테이너 스왑 메모리 공간 관리

Amazon EC2 시작 유형에 대한 Amazon ECS 클러스터 생성

Amazon ECS Linux 컨테이너 인스턴스 메모리 예약

Docker 웹 사이트의 리소스 제약

AWS 공식업데이트됨 7달 전