자동화된 실습 생성을 통해 신속하게 준비하고 실행할 수 있었지만, 세부적으로 살펴보면 다양한 사용 사례에 맞추어 환경을 최적화할 수 있는 큰 폭의 유연성을 확인할 수 있습니다. 이 섹션에서는 이 같은 유연성의 이점을 활용하고 클러스터를 동적으로 업데이트하는 데 적용하는 방법을 알아봅니다.

다루는 주제
  • 소프트웨어 및 애플리케이션 설치
  • HPC 워크로드에 적합한 EC2 인스턴스 유형을 선택하는 방법
  • Auto Scaling 이해 및 제어

소프트웨어 애플리케이션은 SSH를 통해 헤드 노드에 로그온하여 설치할 수 있습니다. CfnCluster는 openMPI, 언어, 컴파일러 등 HPC 애플리케이션을 지원하는 다양한 소프트웨어 패키지를 제공합니다. 애플리케이션 특성과 관리자로서의 선호에 따라 다양한 방법으로 애플리케이션을 설치할 수 있습니다. 일반적인 방법으로는 /efs/apps 또는 /shared 폴더에 설치하는 방법을 들 수 있습니다. 이들 폴더는 모든 노드에 NFS 공유로 탑재됩니다.

애플리케이션이 설치되고 라이선스가 부여되면, 이 학습 과정의 첫 번째 챕터에서와 같이 EnginFrame Service Editor를 사용하여 사용자 커뮤니티에 애플리케이션을 게시할 수 있습니다.


AWS는 시간당 몇 센트에서 몇 USD에 이르기까지 여러 가지 온디맨드 요금으로, 서로 매우 다른 워크로드 유형을 서비스하기 위한 다양한 EC2 인스턴스 패밀리 유형, 세대 및 사이징을 제공합니다.

인스턴스 유형을 선택하려면 먼저 애플리케이션의 구체적인 요구 사항부터 파악합니다. 애플리케이션마다 컴퓨팅 코어 수, 프로세서 속도, 메모리 요구 사항, 스토리지 요구 사항, 네트워킹 사양, 비용 등의 요구 사항이 다릅니다.

패밀리는 프로세서 유형, 메모리 용량, 스토리지 및 사용 가능한 네트워크 연결에 따라 분류됩니다. c 패밀리 또는 "컴퓨팅" 패밀리는 HPC 워크로드에 가장 적합합니다. 패밀리 내의 여러 인스턴스 유형은 대체적으로 메모리 대비 vCPU의 비율이 동일합니다. vCPU는 하이퍼 스레드 프로세서입니다. 일반적으로, 2개의 하이퍼 스레드 코어가 하나의 물리적 코어 같이 작동합니다. 각 패밀리 내에 여러 세대가 공존할 수 있습니다. 예를 들어 c 인스턴스 패밀리 유형에는 c3 및 c4 인스턴스가 포함됩니다. 추가된 숫자는 인스턴스 유형의 세대를 나타냅니다.

병렬 HPC 애플리케이션에는 c4.8xlarge(haswell) 인스턴스가 매우 널리 사용됩니다. 이 인스턴스는 메모리가 최대 60GiB이고 코어가 18개입니다. 각 패밀리는 다양한 크기로 제공됩니다. 예를 들어 c4.4xlarge라는 컴퓨팅 인스턴스는 크기가 c4.8xlarge의 절반입니다. 또한 시간당 요금도 약 절반입니다.

인스턴스는 언제든지 중지할 수 있으며, 다른 인스턴스 유형으로 다시 시작할 수 있습니다. 이 기능 덕분에 HPC 워크로드에 최적화된 인스턴스 유형을 손쉽게 선택할 수 있습니다.

아래의 차트에는 HPC 워크로드에 많이 사용되는 다른 인스턴스 유형이 나와 있습니다.

인스턴스 유형

vCPU

메모리

(GiB)

 스토리지

(GB)

네트워킹 성능

물리적 프로세서

클록 속도(GHz)

EBS

옵션

c4.8xlarge

36

60

EBS 전용

10기가비트

인텔 E5-2666 v3

2.9

c3.8xlarge

32

60

2 x 320 SSD

10기가비트

인텔 제온 E5-2680 v2

2.8

아니요

m4.10xlarge

40

160

EBS 전용

10기가비트

인텔 E5-2676 v3

2.4

m4.16xlarge

64

256

EBS 전용

20기가비트

인텔 제온 E5-2686 v4

2.3

p2.16xlarge

64

732

EBS 전용

20기가비트

인텔 제온 E5-2686 v4

2.3

x1.32xlarge

128

1,952

2 x 1,920 SSD

20기가비트

인텔 E7-8880 v3

2.3

r3.8xlarge

32

244

2 x 320 SSD

10기가비트

인텔 E5-2670 v2

2.5

아니요

사용 가능한 인스턴스 유형의 목록은 Amazon EC2 인스턴스 유형을 참조하십시오. tour 워크로드에 적합한 인스턴스 유형을 찾은 후에는 온디맨드 요금과 현재 스팟 요금의 차이점을 확인합니다. 현재의 워크로드가 잠재적인 인스턴스 재확보에 손쉽게 대응할 수 있는 경우, 일반적으로 스팟 요금을 사용하면 HPC 예산을 매우 효과적으로 절감할 수 있습니다.

클러스터의 특성을 수정해야 하는 경우, CloudFormation 콘솔에서 제공되는 "Update Stack(스택 업데이트)" 기능을 사용하면 동적으로 손쉽게 수정할 수 있습니다. 일부 변경 사항으로 인해 클러스터의 기능이 일시적으로 중지될 수 있습니다. 변경에 따른 결과에 대해 잘 알고 있지 않다면, 클러스터에 워크로드가 없는 경우에만 스택 파라미터를 재구성하십시오.

아래의 지침에 따라 DefaultCluster 스택에서 이 기능을 사용해 보십시오.

  • 지침: 현재 클러스터에서 인스턴스 유형 변경

    1. 여기를 클릭하여 CloudFormation 콘솔을 엽니다.
    2. EnginFrame-DefaultCluster-##yourValues##마우스 오른쪽 버튼으로 클릭합니다. Update Stack(스택 업데이트)을 선택합니다.
    3. Use current template(현재 템플릿 사용)을 선택하고 Next(다음)를 선택합니다.
      • 참고: Use current template(현재 템플릿 사용)을 선택하면 CloudFormation 마법사에서 기본 스택에 비해 더 많은 수의 파라미터를 수정할 수 있으므로, CfnCluster의 유연성이 더 커집니다.
    4. 구성을 다음과 같이 편집합니다.
      • compute_instance_type: 원하는 인스턴스 유형을 선택하여 컴퓨팅 노드를 업데이트합니다.
      • cluster_type: 선택 사항을 스팟으로 변경합니다. 그런 다음 spot_price를 현재 시장 요금을 기준으로 적절하다고 판단되는 값으로 설정합니다.
    5. Next(다음)를 선택합니다.
    6. 변경 사항의 미리 보기가 표시될 때까지 마법사의 다음 단계를 차례로 진행하고, Update(업데이트)를 선택하여 스택 업데이트 의사를 확인합니다. 변경 사항의 범위에 따라 업데이트가 전파되는 데 몇 분 정도 걸릴 수 있습니다.

Auto Scaling은 애플리케이션 가용성을 간편하게 관리하고, 사용자가 정의한 조건에 따라 EC2 용량을 자동으로 확장 또는 축소할 수 있는 Amazon EC2의 기능입니다. Auto Scaling을 활용하면 실행 중인 Amazon EC2 인스턴스의 수를 원하는 수준으로 유지할 수 있습니다. 

이 실습에서는 EC2 Auto Scaling 기능을 통해 클러스터 크기를 지속적으로 모니터링하고 변경합니다. 워크로드(예: 다중 노드 MPI 작업)에 가장 적합한 클러스터 크기를 알고 있는 경우, 클러스터가 점진적으로 확장되도록 하는 것보다 적절한 수의 노드를 사전에 프로비저닝하는 편이 더 빠르고 효율적일 수 있습니다.

아래의 지침에 따라 Auto Scaling 클러스터 크기를 설정할 수 있습니다.

  • 지침: 클러스터의 Auto Scaling 파라미터 변경

    1. 여기를 클릭하여 Amazon EC2 Auto Scaling 그룹 콘솔을 엽니다.
    2. Default Cluster(기본 클러스터)가 Compute Fleet(컴퓨팅 플릿)에 대해 Auto Scaling 그룹을 하나 생성한 것을 확인할 수 있습니다. 이 콘솔은 그룹의 현재 인스턴스 수, 최소 및 최대 한도, 적절한 인스턴스 수에 대한 정보를 제공합니다. 
    3. 적절한 인스턴스 수에는 클러스터에 활성화된 Scaling Policies(확장 정책)가 자동으로 반영되지만, 값을 수동으로 변경할 수도 있습니다. 적절한 크기 또는 기타 Auto Scaling 파라미터를 변경하려면 Auto Scaling 그룹을 마우스 오른쪽 버튼으로 클릭하고 Edit(편집)를 선택합니다.
    4. 아래쪽 패널에서 Auto Scaling 세부 정보가 업데이트됩니다. 로드 밸런서 수, 적절한 인스턴스 수, 최소 및 최대 인스턴스(노드) 수 등을 편집할 수 있습니다. 마쳤으면 Save(저장)를 선택합니다.
      • 참고: 적절한 인스턴스 수가 현재 인스턴스 수와 다를 경우 CloudFormation이 적절한 수가 되도록 인스턴스를 생성하거나 제거합니다.

    (확대하려면 클릭)