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

최종 업데이트 날짜: 2019년 11월 21일

Amazon Elastic Container Service(Amazon ECS)를 사용하여 태스크에 메모리를 할당하려면 어떻게 해야 합니까?

간략한 설명

Amazon ECS는 memoryReservation(소프트 제한) 및 메모리(하드 제한)의 두 가지 파라미터를 사용하여 메모리를 태스크에 할당합니다. 각 파라미터의 값은 태스크가 실행 중일 때 Amazon ECS 컨테이너 인스턴스의 사용 가능한 메모리 단위에서 차감됩니다. 계산은 태스크 정의의 소프트 제한 또는 하드 제한을 기반으로 합니다. 자세한 내용은 클러스터 사용률을 참조하십시오.

참고: 메모리memoryReservation 파라미터는 Amazon ECS 태스크 정의의 컨테이너 정의 파라미터로 설정됩니다. 컨테이너 수준 메모리memoryReservation 값을 모두 지정할 경우 메모리memoryReservy보다 커야 합니다. memoryReservation을 지정하면 컨테이너가 배치된 컨테이너 인스턴스의 사용 가능한 메모리 리소스에서 해당 값이 차감됩니다. 그렇지 않으면 메모리 값이 사용됩니다. 자세한 정보는 메모리를 참조하십시오.

해결 방법

시작하기 전에 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스가 포함된 Amazon ECS 클러스터가 있는지 확인하십시오. 클러스터 생성에 대한 자세한 내용은 클러스터 생성을 참조하십시오. 클러스터 및 컨테이너 인스턴스 구성에 대한 자세한 내용은 컨테이너 인스턴스 메모리 관리를 참조하십시오.

컨테이너 인스턴스의 메모리 할당 보기

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 [Clusters]를 선택합니다.
  3. 생성한 클러스터를 선택합니다.
  4. ECS 인스턴스 보기를 선택한 다음 컨테이너 인스턴스 열에서 생성한 클러스터에 포함된 컨테이너 인스턴스를 선택합니다.
    참고: [Details] 창에 Available 열의 메모리가 Registered 열의 메모리와 동일한 것으로 표시됩니다.
  5. 인스턴스의 리소스 사용량에 대한 통계를 보려면 SSH를 사용하여 인스턴스에 연결한 다음 docker stats 명령을 실행합니다.

소프트 제한이 있는 태스크 정의 생성

  1. Amazon ECS 콘솔의 탐색 창에서 [Task Definitions]를 선택합니다.
  2. [Create new Task Definition]을 선택합니다.
  3. 시작 유형에서 [EC2]를 선택한 후 [Next step]을 선택합니다.
  4. [Task Definition Name]에 이름을 입력합니다.
  5. [Container Definitions] 섹션에서 [Add container]를 선택합니다.
  6. [Container name]에 이름을 입력합니다.
  7. [Image]에 nginx 또는 환경에 적합한 도커 이미지를 입력합니다.
  8. [메모리 제한(MiB)]에서 [Soft limit]를 선택한 다음 700을 입력합니다.
  9. [Add]를 선택한 다음 [Create]를 선택합니다.

소프트 제한으로 태스크 정의 실행

  1. Amazon ECS 콘솔의 탐색 창에서 [Clusters]를 선택한 다음 생성한 클러스터를 선택합니다.
  2. [Tasks] 보기를 선택하고 [Run new Task]를 선택합니다.
  3. [Run Task]를 선택합니다.
    참고: [Task Definition] 및 [Cluster]는 이전에 생성한 태스크 정의 및 클러스터의 이름으로 미리 채워집니다.
  4. 소프트 제한이 있는 작업의 [Last status] 열이 RUNNING으로 표시되면 탐색 창에서 [Clusters]를 선택합니다.
    참고: 태스크 상태를 RUNNING으로 업데이트하려면 페이지를 새로 고칩니다.
  5. ECS 인스턴스 보기를 선택한 다음 [컨테이너 인스턴스] 열에서 인스턴스를 선택합니다.
    참고: [Details] 창에 [Available] 열의 메모리가 [Registered] 열의 메모리보다 작다고 표시됩니다.
  6. 인스턴스의 리소스 사용량에 대한 통계를 보려면 SSH를 사용하여 인스턴스에 연결한 다음 docker stats 명령을 실행합니다.
  7. 탐색 창에서 [Clusters]를 선택한 후 클러스터를 선택합니다.
  8. [Task] 보기를 선택하고 소프트 제한이 있는 작업을 선택한 다음 [Stop]을 선택합니다.
  9. ECS 인스턴스 보기를 선택한 다음 [컨테이너 인스턴스] 열에서 인스턴스를 선택합니다.
    참고: [Details] 창에 Available 열의 메모리가 Registered 열의 메모리와 동일한 것으로 표시됩니다.

하드 제한이 있는 태스크 정의의 새 버전 생성

  1. Amazon ECS 콘솔의 탐색 창에서 [Task Definitions]를 선택합니다.
  2. 소프트 제한으로 생성한 태스크 정의를 선택한 다음 [Create new revision]을 선택합니다.
  3. [Container Definitions] 섹션의 [Container Name] 열에서 소프트 제한이 있는 태스크 정의에 추가한 컨테이너를 선택합니다.
  4. [Memory Limits (MiB)]에서 [Hard limit]을 선택하고 [1000]을 입력합니다.
  5. [Update]를 선택한 후 [Create]를 선택합니다.

하드 제한으로 수정된 태스크 정의 실행

  1. Amazon ECS 콘솔의 탐색 창에서 [Clusters]를 선택한 다음 생성한 클러스터를 선택합니다.
  2. [Tasks] 보기를 선택하고 [Run new Task]를 선택합니다.
  3. [Task Definition]에서 생성한 하드 제한이 있는 태스크 정의를 선택한 다음 [Run Task]를 선택합니다.
  4. 하드 제한이 있는 수정된 작업의 [Last status] 열이 RUNNING으로 표시되면 탐색 창에서 [Clusters]를 선택합니다.
    참고: 태스크 상태를 RUNNING으로 업데이트하려면 페이지를 새로 고칩니다.
  5. ECS 인스턴스 보기를 선택한 다음 [컨테이너 인스턴스] 열에서 인스턴스를 선택합니다.
    참고: [Details] 창에 [Available] 열의 사용 가능한 메모리가 [Registered] 열의 메모리보다 적다고 표시됩니다.
  6. 인스턴스의 리소스 사용량에 대한 통계를 보려면 SSH를 사용하여 인스턴스에 연결한 다음 docker stats 명령을 실행합니다.
  7. 탐색 창에서 [Clusters]를 선택한 후 클러스터를 선택합니다.
  8. [Tasks] 보기를 선택하고 하드 제한이 있는 태스크를 선택하고 [Stop]을 선택합니다.
  9. ECS 인스턴스 보기를 선택한 다음 [컨테이너 인스턴스] 열에서 인스턴스를 선택합니다.
    참고: [Details] 창에 Available 열의 메모리가 Registered 열의 메모리와 동일한 것으로 표시됩니다.

소프트 제한과 하드 제한이 모두 있는 태스크 정의의 새 버전 생성

  1. Amazon ECS 콘솔의 탐색 창에서 [Task Definitions]를 선택합니다.
  2. 하드 제한으로 생성한 태스크 정의를 선택한 다음 [Create new revision]을 선택합니다.
  3. [Container Definitions] 섹션의 [Container Name] 열에서 하드 제한이 있는 태스크 정의에 추가한 컨테이너를 선택합니다.
  4. [메모리 제한(MiB)]에서 [Soft limit]를 선택한 다음 700을 입력합니다.
  5. [Add Hard limit]을 선택한 다음 1200을 입력합니다.
  6. [Update]를 선택한 후 [Create]를 선택합니다.

소프트 제한 및 하드 제한을 둘 다 사용하여 수정된 태스크 정의 실행

  1. Amazon ECS 콘솔의 탐색 창에서 [Clusters]를 선택한 다음 생성한 클러스터를 선택합니다.
  2. [Tasks] 보기를 선택하고 [Run new Task]를 선택합니다.
  3. [Task Definition]에서 소프트 제한과 하드 제한을 모두 사용하여 생성한 태스크 정의를 선택하고 [Run Task]를 선택합니다.
  4. 태스크의 [Last status] 열이 RUNNING으로 표시되면 탐색 창에서 [Clusters]를 선택합니다.
    참고: 태스크 상태를 RUNNING으로 업데이트하려면 페이지를 새로 고칩니다.
  5. 탐색 창에서 [Clusters]를 선택한 후 클러스터를 선택합니다.
  6. [Tasks] 보기를 선택하고 소프트 제한과 하드 제한이 모두 있는 태스크를 선택한 다음 [Stop]을 선택합니다.
  7. ECS 인스턴스 보기를 선택한 다음 [컨테이너 인스턴스] 열에서 인스턴스를 선택합니다.
    참고: [Details] 창에 [Available] 열의 메모리가 [Registered] 열의 메모리보다 작다고 표시됩니다.
  8. 인스턴스의 리소스 사용량에 대한 통계를 보려면 SSH를 사용하여 인스턴스에 연결한 다음 docker stats 명령을 실행합니다.

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?