Amazon EC2에서 HPC 워크로드용 EFA와 MPI 시작하기

Amazon EC2에서 HPC 워크로드용 EFA와 MPI 시작하기

이 튜토리얼은 HPC 워크로드를 위한 EFA 및 MPI 활성화 인스턴스 클러스터를 시작하는 데 도움을 줘요.

참고 — u7i-12tb.224xlarge, u7in-16tb.224xlarge, u7in-24tb.224xlarge, u7in-32tb.224xlarge 인스턴스는 Open MPI로 최대 128개의 병렬 MPI 프로세스, Intel MPI로 최대 256개의 병렬 MPI 프로세스를 실행할 수 있어요.

출처: 문서

본문

이 튜토리얼은 다음 단계로 구성됩니다.

  1. EFA 활성화 보안 그룹 준비
  2. 임시 인스턴스 시작
  3. EFA 소프트웨어 설치
  4. (선택) Open MPI 5 활성화
  5. (선택) Intel MPI 설치
  6. ptrace 보호 비활성화
  7. 설치 확인
  8. HPC 애플리케이션 설치
  9. EFA 활성화 AMI 생성
  10. 클러스터 배치 그룹에 EFA 활성화 인스턴스 시작
  11. 임시 인스턴스 종료
  12. 무암호 SSH 활성화

1단계: EFA 활성화 보안 그룹 준비

EFA에는 보안 그룹 자체와 들어오고 나가는 모든 인바운드·아웃바운드 트래픽을 허용하는 보안 그룹이 필요해요. 다음 절차는 자체 간 모든 인바운드·아웃바운드 트래픽과, SSH 연결을 위해 모든 IPv4 주소의 인바운드 SSH 트래픽을 허용하는 보안 그룹을 만듭니다.

중요 — 이 보안 그룹은 테스트 목적으로만 사용됩니다. 프로덕션 환경에서는 연결하는 IP 주소(예: 컴퓨터의 IP 주소 또는 로컬 네트워크의 IP 범위)에서만 오는 트래픽을 허용하는 인바운드 SSH 규칙을 만들 것을 권장합니다. 다른 시나리오는 "다양한 사용 사례의 보안 그룹 규칙"을 참고하세요.

EFA 활성화 보안 그룹 생성하기

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 탐색 창에서 Security Groups를 선택한 뒤 Create security group을 선택합니다.
  3. Create security group 창에서 다음을 수행합니다.
    • Security group name에 보안 그룹의 설명적인 이름(예: EFA-enabled security group)을 입력합니다.
    • (선택) Description에 간단한 설명을 입력합니다.
    • VPC에서 EFA 활성화 인스턴스를 시작할 VPC를 선택합니다.
  4. Create security group을 선택합니다.
  5. 생성한 보안 그룹을 선택하고 Details 탭에서 Security group ID를 복사합니다.
  6. 보안 그룹을 선택한 상태로 Actions → Edit inbound rules를 선택하고 다음을 수행합니다.
    • Add rule을 선택합니다.
    • Type에서 All traffic을 선택합니다.
    • Source type에서 Custom을 선택하고 복사한 보안 그룹 ID를 필드에 붙여 넣습니다.
    • Add rule을 선택합니다.
    • Type에서 SSH를 선택합니다.
    • Source type에서 Anywhere-IPv4를 선택합니다.
  7. Save rules를 선택합니다.
  8. 보안 그룹을 선택한 상태로 Actions → Edit outbound rules를 선택하고 다음을 수행합니다.
    • Add rule을 선택합니다.
    • Type에서 All traffic을 선택합니다.
    • Destination type에서 Custom을 선택하고 복사한 보안 그룹 ID를 필드에 붙여 넣습니다.
    • Save rules를 선택합니다.

중요 — 자체 참조 인바운드·아웃바운드 규칙(보안 그룹 자체와의 모든 트래픽 허용)은 EFA가 동작하기 위해 필수입니다. 이 규칙이 없으면 인스턴스 간 EFA 트래픽이 차단됩니다.

2단계: 임시 인스턴스 시작

EFA 소프트웨어 구성 요소를 설치·구성할 수 있는 임시 인스턴스를 시작합니다. 이 인스턴스로 EFA 활성화 인스턴스를 시작할 수 있는 EFA 활성화 AMI를 만듭니다.

임시 인스턴스 시작하기

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 탐색 창에서 Instances → Launch Instances를 선택해 새 launch instance 마법사를 엽니다.
  3. (선택) Name and tags 섹션에서 인스턴스 이름(예: EFA-instance)을 제공합니다. 이름은 리소스 태그(Name=EFA-instance)로 인스턴스에 할당됩니다.
  4. Application and OS Images 섹션에서 지원되는 운영 체제 중 하나의 AMI를 선택합니다.
  5. Instance type 섹션에서 지원되는 인스턴스 유형을 선택합니다.
  6. Key pair 섹션에서 인스턴스에 사용할 키 페어를 선택합니다.
  7. Network settings 섹션에서 Edit를 선택하고 다음을 수행합니다.
    • Subnet에서 인스턴스를 시작할 서브넷을 선택합니다.

      중요 — 서브넷을 반드시 선택해야 해요. 선택하지 않으면 인스턴스를 EFA용으로 활성화할 수 없습니다.

    • **Firewall (security groups)**에서 Select existing security group을 선택하고 이전 단계에서 만든 보안 그룹을 선택합니다.
    • Advanced network configuration 섹션을 펼칩니다.
    • Network interface 1에서 Network card index = 0, Device index = 0, Interface type = EFA with ENA를 선택합니다.
    • (선택) p4d.24xlarge나 p5.48xlarge 같은 멀티카드 인스턴스 유형을 사용한다면, 추가 네트워크 인터페이스마다 Add network interface를 선택하고 Network card index에서 다음 사용하지 않은 인덱스를 선택한 뒤 Device index = 1과 Interface type = EFA with ENA 또는 EFA-only를 선택합니다.
  8. Storage 섹션에서 필요에 따라 볼륨을 구성합니다.
  9. 오른쪽 Summary 패널에서 Launch instance를 선택합니다.

참고 — 계정의 IMDSv2 기본값을 아직 설정하지 않았다면, 임시 인스턴스와 9단계에서 만들 AMI에 IMDSv2 사용을 요구하는 것을 고려하세요.

3단계: EFA 소프트웨어 설치

임시 인스턴스에서 EFA를 지원하는 데 필요한 EFA 활성화 커널, EFA 드라이버, Libfabric, Open MPI 스택을 설치합니다.

Open MPI와 함께, Intel MPI와 함께, 또는 Open MPI·Intel MPI 둘 다와 함께 EFA를 사용할지에 따라 단계가 달라져요.

참고 — 일부 운영 체제는 Intel MPI를 지원하지 않을 수 있어요. Intel MPI를 사용한다면 Intel MPI 문서를 참고해 운영 체제 지원을 확인하세요.

EFA 소프트웨어 설치하기

  1. 시작한 인스턴스에 연결합니다(SSH로 Linux 인스턴스 연결 참고).
  2. 모든 소프트웨어 패키지를 최신으로 유지하려면 인스턴스에서 빠른 소프트웨어 업데이트를 수행합니다(몇 분 걸릴 수 있음).
    • Amazon Linux 2023, RHEL 8/9, Rocky Linux 8/9
$ sudo yum update -y
  • Ubuntu, Debian
$ sudo apt-get update && sudo apt-get upgrade -y
  • SUSE Linux Enterprise
$ sudo zypper update -y
  1. 인스턴스를 재부팅하고 다시 연결합니다.
  2. EFA 소프트웨어 설치 파일을 다운로드합니다. 설치 파일은 압축된 tarball(.tar.gz) 파일로 패키징되어 있어요. 최신 안정 버전을 다운로드하려면:
$ curl -O https://efa-installer.amazonaws.com/aws-efa-installer-1.50.0.tar.gz

(위 명령에서 버전 번호를 latest로 바꿔 최신 버전을 얻을 수도 있어요.) 5. (선택) EFA tarball(.tar.gz) 파일의 진위·무결성을 검증합니다. 소프트웨어 게시자의 신원을 확인하고 파일이 게시 후 변경·손상되지 않았는지 확인하기 위해 권장됩니다. MD5 또는 SHA256 체크섬으로 검증하려면 "체크섬으로 EFA 설치 프로그램 검증"을 참고하세요.

공개 GPG 키를 다운로드해 keyring에 가져옵니다.

$ wget https://efa-installer.amazonaws.com/aws-efa-installer.key && gpg --import aws-efa-installer.key

명령은 키 값을 반환해야 해요. 다음 단계에서 필요하므로 키 값을 기록해 둡니다.

GPG 키의 지문을 검증합니다. 이전 단계의 키 값을 지정해 다음 명령을 실행합니다.

$ gpg --fingerprint key_value

명령은 4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC와 동일한 지문을 반환해야 해요. 지문이 일치하지 않으면 EFA 설치 스크립트를 실행하지 말고 Support에 연락하세요.

서명 파일을 다운로드하고 EFA tarball 파일의 서명을 검증합니다.

$ wget https://efa-installer.amazonaws.com/aws-efa-installer-1.50.0.tar.gz.sig && gpg --verify ./aws-efa-installer-1.50.0.tar.gz.sig

예시 출력:

gpg: Signature made Wed 29 Jul 2020 12:50:13 AM UTC using RSA key ID DD2D3CCC
gpg: Good signature from "Amazon EC2 EFA <[email protected]>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 4E90 91BC BB97 A96B 26B1  5E59 A054 80B1 DD2D 3CCC

결과에 Good signature가 포함되고 지문이 이전 단계와 일치하면 다음 단계로 진행합니다. 그렇지 않으면 설치 스크립트를 실행하지 말고 Support에 연락하세요. 6. 압축된 .tar.gz 파일에서 파일을 추출하고 추출된 디렉터리로 이동합니다.

$ tar -xf aws-efa-installer-1.50.0.tar.gz && cd aws-efa-installer
  1. (선택) 설치 중 개별 패키지 서명을 검증합니다. EFA 설치 프로그램 1.48.0부터 설치 프로그램에는 GPG 서명된 개별 RPM 및 DEB 패키지가 포함됩니다. 설치 중 각 개별 패키지의 진위·무결성을 검증하려면 --check-signatures 플래그를 사용합니다. 이 플래그를 활성화하면 설치 프로그램이 먼저 모든 패키지 서명을 검증하고 모든 패키지가 검증을 통과할 때만 설치를 진행합니다. 어떤 패키지라도 실패하면 설치 프로그램이 아무것도 설치하지 않고 즉시 종료됩니다.
    • GPG 공개 키를 다운로드합니다.
$ wget https://efa-installer.amazonaws.com/aws-efa-installer.key
  • 키 경로를 내보냅니다. 다음 단계에서 설치 명령에 --check-signatures를 추가하고, 환경 변수를 보존하려면 sudo 대신 sudo -E를 사용합니다.
$ export EFA_INSTALLER_KEY=$(pwd)/aws-efa-installer.key

RPM 기반 시스템(Amazon Linux, RHEL, Rocky Linux, SUSE)에서는 설치 프로그램이 rpm --checksig로 각 RPM을 검증하고, DEB 기반 시스템(Ubuntu, Debian)에서는 GPG 서명 검증으로 각 DEB를 검증합니다. 어떤 패키지 검증이라도 실패하면 설치가 즉시 중단되어 손상되거나 악의적인 패키지로부터 시스템을 보호합니다.

참고 — --check-signatures 플래그는 선택 사항입니다. 없으면 설치 프로그램이 개별 서명 검증을 수행하지 않아요.

  1. EFA 소프트웨어를 설치합니다. 사용 사례에 따라 다음 중 하나를 수행합니다.

    참고 — 이전의 선택 단계에서 패키지 서명 검증을 설정했다면 설치 명령에 --check-signatures를 추가하고 sudo 대신 sudo -E를 사용하세요(예: sudo -E ./efa_installer.sh -y --check-signatures). 참고 — EFA는 SUSE Linux에서 NVIDIA GPUDirect를 지원하지 않아요. SUSE Linux를 사용한다면 kmod 설치를 막기 위해 --skip-kmod 옵션을 추가로 지정해야 합니다. 기본적으로 SUSE Linux는 아웃오브트리 커널 모듈을 허용하지 않습니다.

    • Open MPI 및 Intel MPI: EFA를 Open MPI와 Intel MPI 둘 다와 사용하려면 Libfabric 및 Open MPI와 함께 EFA 소프트웨어를 설치해야 하고, 5단계 "Intel MPI 설치"를 완료해야 해요.

      참고 — EFA 1.30.0부터 Open MPI 4.1과 Open MPI 5가 모두 기본 설치됩니다. 설치할 Open MPI 버전을 선택적으로 지정할 수 있어요. Open MPI 4.1만 설치하려면 --mpi=openmpi4, Open MPI 5만은 --mpi=openmpi5, 둘 다는 --mpi 옵션을 생략하세요.

$ sudo ./efa_installer.sh -y
 Libfabric은 `/opt/amazon/efa`에, Open MPI 4.1은 `/opt/amazon/openmpi`에, Open MPI 5는 `/opt/amazon/openmpi5`에 설치됩니다.
  • Open MPI만: Libfabric 및 Open MPI와 함께 설치하고 5단계를 건너뜁니다.
$ sudo ./efa_installer.sh -y
  • Intel MPI만: Libfabric과 Open MPI 없이 EFA 소프트웨어를 설치할 수 있어요. 이 경우 Intel MPI가 내장 Libfabric을 사용합니다. 이 경우 5단계("Intel MPI 설치")를 완료해야 합니다.
$ sudo ./efa_installer.sh -y --minimal
  1. EFA 설치 프로그램이 인스턴스 재부팅을 요청하면 재부팅하고 다시 연결합니다. 그렇지 않으면 인스턴스에서 로그아웃했다 로그인해 설치를 완료합니다.
  2. 압축 해제된 tarball과 tarball 자체를 삭제합니다. 그렇지 않으면 이들이 만드는 EFA 활성화 AMI에 포함되어 크기를 늘립니다.

4단계: (선택) Open MPI 5 활성화

참고 — 이 단계는 Open MPI 5를 사용하려 할 때만 수행하세요.

EFA 1.30.0부터 Open MPI 4.1과 Open MPI 5가 모두 기본 설치됩니다. 또는 둘 중 하나만 설치할 수도 있어요. 3단계에서 Open MPI 5를 설치하도록 선택하고 사용하려 한다면, 다음 단계로 활성화해야 합니다.

Open MPI 5 활성화하기

  1. Open MPI 5를 PATH 환경 변수에 추가합니다.
$ module load openmpi5
  1. Open MPI 5가 사용 가능하게 활성화됐는지 확인합니다.
$ which mpicc

명령은 Open MPI 5 설치 디렉터리인 /opt/amazon/openmpi5를 반환해야 해요. 3. (선택) 인스턴스가 시작될 때마다 Open MPI 5가 PATH에 추가되도록 하려면:

  • bash 셸: module load openmpi5를 /home/<username>/.bashrc와 /home/<username>/.bash_profile에 추가합니다.
  • csh 및 tcsh 셸: module load openmpi5를 /home/<username>/.cshrc에 추가합니다.
  1. PATH에서 Open MPI 5를 제거해야 한다면 다음 명령을 실행하고 셸 시작 스크립트에서 명령을 제거합니다.
$ module unload openmpi5

5단계: (선택) Intel MPI 설치

중요 — 이 단계는 Intel MPI를 사용하려 할 때만 수행하세요. Open MPI만 사용하려면 건너뛰세요.

Intel MPI는 추가 설치와 환경 변수 구성이 필요해요.

사전 요건 — 다음 단계를 수행하는 사용자에게 sudo 권한이 있는지 확인하세요.

Intel MPI 설치하기

  1. 다음으로 Intel MPI 설치 스크립트를 다운로드합니다.
    • Intel 웹사이트를 방문합니다.
    • Intel MPI Library 섹션에서 Intel MPI Library for Linux Offline installer 링크를 선택합니다.
  2. 이전 단계에서 다운로드한 설치 스크립트를 실행합니다.
$ sudo bash installation_script_name.sh
  1. 설치 프로그램에서 Accept & install을 선택합니다.
  2. Intel Improvement Program을 읽고 적절한 옵션을 선택한 뒤 Begin Installation을 선택합니다.
  3. 설치가 완료되면 Close를 선택합니다.
  4. 기본적으로 Intel MPI는 내장(내부) Libfabric을 사용해요. Intel MPI가 EFA 설치 프로그램과 함께 제공되는 Libfabric을 사용하도록 구성할 수 있습니다. 일반적으로 EFA 설치 프로그램은 Intel MPI보다 나중 버전의 Libfabric과 함께 제공됩니다. 어떤 경우 EFA 설치 프로그램의 Libfabric이 Intel MPI보다 더 성능이 좋습니다. 셸에 따라 다음 중 하나를 수행합니다.
    • bash 셸: export I_MPI_OFI_LIBRARY_INTERNAL=0을 /home/<username>/.bashrc와 .bash_profile에 추가합니다.
    • csh/tcsh 셸: setenv I_MPI_OFI_LIBRARY_INTERNAL 0을 /home/<username>/.cshrc에 추가합니다.
  5. 설치 디렉터리의 vars.sh 스크립트를 소싱해 인스턴스 시작마다 컴파일러 환경을 설정하도록 셸 스크립트에 source 명령을 추가합니다.
    • bash 셸: source /opt/intel/oneapi/mpi/latest/env/vars.sh를 .bashrc와 .bash_profile에 추가합니다.
    • csh/tcsh 셸: source /opt/intel/oneapi/mpi/latest/env/vars.csh를 .cshrc에 추가합니다.
  6. 기본적으로 잘못된 구성으로 EFA를 사용할 수 없으면 Intel MPI는 TCP/IP 네트워크 스택으로 폴백하며, 이는 애플리케이션 성능을 낮출 수 있어요. I_MPI_OFI_PROVIDER를 efa로 설정하면 이를 방지할 수 있습니다. 이러면 EFA를 사용할 수 없을 때 Intel MPI가 다음 오류로 실패합니다.
Abort (XXXXXX) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Init: OtherMPI error,
MPIR_Init_thread (XXX)........:	
MPID_Init (XXXX)..............:
MPIDI_OFI_mpi_init_hook (XXXX):
open_fabric (XXXX)............:
find_provider (XXXX)..........:
OFI fi_getinfo() failed (ofi_init.c:2684:find_provider:
  • bash 셸: export I_MPI_OFI_PROVIDER=efa를 .bashrc와 .bash_profile에 추가합니다.
  • csh/tcsh 셸: setenv I_MPI_OFI_PROVIDER efa를 .cshrc에 추가합니다.
  1. 기본적으로 Intel MPI는 디버깅 정보를 출력하지 않아요. 상세 수준을 다양하게 지정해 디버깅 정보를 제어할 수 있습니다. 가능한 값(제공하는 세부 정보의 양 순서)은 0(기본), 1, 2, 3, 4, 5입니다. 레벨 1 이상은 libfabric 버전과 libfabric provider를 출력합니다. libfabric 버전으로 Intel MPI가 내부 Libfabric을 사용하는지 EFA 설치 프로그램의 Libfabric을 사용하는지 확인하세요(내부인 경우 버전에 impi 접미사). libfabric provider로 Intel MPI가 EFA를 사용하는지 TCP/IP 네트워크를 사용하는지 확인하세요(EFA면 efa, TCP/IP면 tcp;ofi_rxm).
    • bash 셸: export I_MPI_DEBUG=value를 .bashrc와 .bash_profile에 추가합니다.
    • csh/tcsh 셸: setenv I_MPI_DEBUG value를 .cshrc에 추가합니다.
  2. 기본적으로 Intel MPI는 노드 내 통신에 운영 체제의 공유 메모리(shm)를, 노드 간 통신에만 Libfabric(ofi)을 사용해요. 일반적으로 이 구성이 최상의 성능을 제공합니다. 그러나 어떤 경우 Intel MPI shm fabric이 특정 애플리케이션을 무기한 중단(hang)시킬 수 있어요. 이를 해결하려면 Intel MPI가 노드 내·노드 간 통신 모두에 Libfabric을 사용하도록 강제할 수 있습니다.
  • bash 셸: export I_MPI_FABRICS=ofi를 .bashrc와 .bash_profile에 추가합니다.
  • csh/tcsh 셸: setenv I_MPI_FABRICS ofi를 .cshrc에 추가합니다.

참고 — EFA Libfabric provider는 노드 내 통신에 운영 체제의 공유 메모리를 사용합니다. 즉 I_MPI_FABRICS를 ofi로 설정하면 기본 shm:ofi 구성과 비슷한 성능을 냅니다.

  1. 인스턴스에서 로그아웃했다 다시 로그인합니다.
  2. Intel MPI를 더 이상 사용하지 않으려면 셸 시작 스크립트에서 환경 변수를 제거합니다.

6단계: ptrace 보호 비활성화

HPC 애플리케이션 성능을 개선하기 위해, Libfabric은 프로세스가 같은 인스턴스에서 실행될 때 프로세스 간 통신(interprocess communication)에 인스턴스의 로컬 메모리를 사용해요. 공유 메모리 기능은 Cross Memory Attach(CMA)를 사용하며, 이는 ptrace 보호와 호환되지 않습니다. Ubuntu처럼 ptrace 보호가 기본 활성화된 Linux 배포판을 사용한다면 이를 비활성화해야 해요. 기본 비활성화된 배포판이라면 이 단계를 건너뜁니다.

ptrace 보호 비활성화하기 — 다음 중 하나를 수행합니다.

  • 테스트 목적으로 임시 비활성화:
$ sudo sysctl -w kernel.yama.ptrace_scope=0
  • 영구 비활성화: kernel.yama.ptrace_scope = 0을 /etc/sysctl.d/10-ptrace.conf에 추가하고 인스턴스를 재부팅합니다.

7단계: 설치 확인

설치 성공 확인하기

  1. MPI가 성공적으로 설치됐는지 다음 명령으로 확인합니다.
$ which mpicc
  • Open MPI의 경우 반환 경로에 /opt/amazon/이 포함되어야 해요.
  • Intel MPI의 경우 반환 경로에 /opt/intel/이 포함되어야 해요. 예상 출력이 나오지 않으면 Intel MPI vars.sh 스크립트를 소싱했는지 확인하세요.
  1. EFA 소프트웨어 구성 요소와 Libfabric이 성공적으로 설치됐는지 다음 명령으로 확인합니다.
$ fi_info -p efa -t FI_EP_RDM

명령은 Libfabric EFA 인터페이스에 대한 정보를 반환해야 해요. 예시:

provider: efa
    fabric: EFA-fe80::94:3dff:fe89:1b70
    domain: efa_0-rdm
    version: 2.0
    type: FI_EP_RDM
    protocol: FI_PROTO_EFA

8단계: HPC 애플리케이션 설치

임시 인스턴스에 HPC 애플리케이션을 설치합니다. 설치 절차는 특정 HPC 애플리케이션에 따라 달라져요. 자세한 내용은 Amazon Linux 2023 사용 설명서의 "OS 업데이트 관리"를 참고하세요.

참고 — HPC 애플리케이션의 문서에서 설치 지침을 참고하세요.

9단계: EFA 활성화 AMI 생성

필요한 소프트웨어 구성 요소를 설치했다면, EFA 활성화 인스턴스를 시작하는 데 재사용할 수 있는 AMI를 만듭니다.

임시 인스턴스에서 AMI 만들기

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 탐색 창에서 Instances를 선택합니다.
  3. 만든 임시 인스턴스를 선택하고 Actions → Image → Create image를 선택합니다.
  4. Create image에서 다음을 수행합니다.
    • Image name에 AMI의 설명적인 이름을 입력합니다.
    • (선택) Image description에 AMI의 목적에 대한 간단한 설명을 입력합니다.
    • Create image를 선택합니다.
  5. 탐색 창에서 AMIs를 선택합니다.
  6. 목록에서 만든 AMI를 찾습니다. 다음 단계로 진행하기 전에 상태가 pending에서 available로 바뀔 때까지 기다립니다.

10단계: 클러스터 배치 그룹에 EFA 활성화 인스턴스 시작

7단계에서 만든 EFA 활성화 AMI와 1단계에서 만든 EFA 활성화 보안 그룹을 사용해 EFA 활성화 인스턴스를 클러스터 배치 그룹에 시작합니다.

참고 — EFA 활성화 인스턴스를 클러스터 배치 그룹에 시작하는 것이 절대 요구 사항은 아니지만, 클러스터 배치 그룹은 단일 가용 영역의 저지연 그룹에 인스턴스를 시작하므로 권장합니다.

클러스터 확장 시 용량을 확보하려면 클러스터 배치 그룹에 대해 Capacity Reservation을 만들 수 있습니다. 자세한 내용은 "배치 그룹과 함께 Capacity Reservations 사용"을 참고하세요.

인스턴스 시작하기

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 탐색 창에서 Instances → Launch Instances를 선택합니다.
  3. (선택) Name and tags 섹션에서 인스턴스 이름(예: EFA-instance)을 입력합니다.
  4. Application and OS Images 섹션에서 My AMIs를 선택하고 이전 단계에서 만든 AMI를 선택합니다.
  5. Instance type 섹션에서 지원되는 인스턴스 유형을 선택합니다.
  6. Key pair 섹션에서 인스턴스에 사용할 키 페어를 선택합니다.
  7. Network settings 섹션에서 Edit를 선택하고 다음을 수행합니다.
    • Subnet에서 인스턴스를 시작할 서브넷을 선택합니다.

      중요 — 서브넷을 반드시 선택해야 해요. 선택하지 않으면 EFA용으로 활성화할 수 없습니다.

    • **Firewall (security groups)**에서 Select existing security group을 선택하고 이전에 만든 보안 그룹을 선택합니다.
    • Advanced network configuration 섹션을 펼칩니다.
    • Network interface 1에서 Network card index = 0, Device index = 0, Interface type = EFA with ENA를 선택합니다.
    • (선택) 멀티카드 유형이라면 추가 인터페이스마다 Add network interface, 다음 미사용 Network card index, Device index = 1, Interface type = EFA with ENA 또는 EFA-only를 선택합니다.
  8. (선택) Storage 섹션에서 필요에 따라 볼륨을 구성합니다.
  9. Advanced details 섹션의 Placement group name에서 인스턴스를 시작할 클러스터 배치 그룹을 선택합니다. 새 클러스터 배치 그룹이 필요하면 Create new placement group을 선택합니다.
  10. 오른쪽 Summary 패널의 Number of instances에서 시작할 EFA 활성화 인스턴스 수를 입력하고 Launch instance를 선택합니다.

11단계: 임시 인스턴스 종료

이제 2단계에서 시작한 인스턴스가 더 이상 필요 없으므로, 요금이 발생하지 않도록 종료할 수 있어요.

임시 인스턴스 종료하기

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 탐색 창에서 Instances를 선택합니다.
  3. 만든 임시 인스턴스를 선택하고 Actions → Instance state → Terminate (delete) instance를 선택합니다.
  4. 확인을 요청하면 **Terminate (delete)**를 선택합니다.

12단계: 무암호 SSH 활성화

클러스터의 모든 인스턴스에 걸쳐 애플리케이션을 실행하려면 **리더 노드(leader node)**에서 **멤버 노드(member node)**로의 무암호(passwordless) SSH 접근을 활성화해야 해요. 리더 노드는 애플리케이션을 실행하는 인스턴스이고, 나머지 인스턴스는 멤버 노드입니다.

클러스터 인스턴스 간 무암호 SSH 활성화하기

  1. 클러스터에서 한 인스턴스를 리더 노드로 선택하고 연결합니다.
  2. 리더 노드에서 strictHostKeyChecking을 비활성화하고 ForwardAgent를 활성화합니다. 원하는 텍스트 편집기로 ~/.ssh/config를 열고 다음을 추가합니다.
Host *
    ForwardAgent yes
Host *
    StrictHostKeyChecking no
  1. RSA 키 페어를 생성합니다.
$ ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa

키 페어는 $HOME/.ssh/ 디렉터리에 생성됩니다. 4. 리더 노드에서 개인 키의 권한을 변경합니다.

$ chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/config
  1. 원하는 텍스트 편집기로 ~/.ssh/id_rsa.pub를 열고 키를 복사합니다.
  2. 클러스터의 각 멤버 노드에 대해 다음을 수행합니다.
    • 인스턴스에 연결합니다.
    • 원하는 텍스트 편집기로 ~/.ssh/authorized_keys를 열고 이전에 복사한 공개 키를 추가합니다.
  3. 무암호 SSH가 예상대로 동작하는지 테스트하려면 리더 노드에 연결하고 다음 명령을 실행합니다.
$ ssh member_node_private_ip

키나 암호를 묻는 메시지 없이 멤버 노드에 연결되어야 해요.

더 알아보기 (Learn more)