Amazon EC2에서 ML 워크로드를 위한 EFA 및 NCCL 시작하기
NVIDIA Collective Communications Library(NCCL)는 단일 노드 또는 여러 노드에서 여러 GPU를 위한 표준 집합적 통신 루틴의 라이브러입니다. NCCL은 EFA, Libfabric 및 MPI와 함께 사용하여 다양한 기계 학습 워크로드를 지원할 수 있습니다. 자세한 내용은 NCCL
다음 단계는 지원되는 운영 체제 중 하나의 기본 AMI를 사용하여 EFA와 NCCL을 시작하는 데 도움이 됩니다.
참고
-
p3dn.24xlarge
,p4d.24xlarge
및p5.48xlarge
인스턴스 유형만 지원됩니다. -
Amazon Linux 2 및 Ubuntu 20.04/22.04 기본 AMI만 지원됩니다.
-
NCCL 2.4.2 이상만 EFA에서 지원됩니다.
AWS Deep Learning AMIs를 사용하여 EFA 및 NCCL로 기계 학습 워크로드를 실행하는 방법에 대한 자세한 내용은 AWS Deep Learning AMIs 개발자 안내서의 Using EFA on the DLAMI를 참조하세요.
단계
- 1단계: EFA를 사용한 보안 그룹 준비
- 2단계: 임시 인스턴스 시작
- 3단계: Nvidia GPU 드라이버, Nvidia CUDA 툴킷 및 cuDNN 설치
- 4단계: GDRCopy 설치
- 5단계: EFA 소프트웨어 설치
- 6단계: NCCL 설치
- 7단계: aws-ofi-nccl 플러그인 설치
- 8단계: NCCL 테스트 설치
- 9단계: EFA 및 NCCL 구성 테스트
- 10단계: 기계 학습 애플리케이션 설치
- 11단계: EFA 및 NCCL 지원 AMI 생성
- 12단계: 임시 인스턴스 종료
- 13단계: 클러스터 배치 그룹에 EFA 및 NCCL 지원 인스턴스 시작
- 14단계: 암호 없는 SSH 활성화
1단계: EFA를 사용한 보안 그룹 준비
EFA에는 보안 그룹 자체 내의 모든 인바운드 및 아웃바운드 트래픽을 허용하는 보안 그룹이 필요합니다. 다음 절차에서는 자체적으로 들어오고 나가는 모든 인바운드 및 아웃바운드 트래픽을 허용하고 SSH 연결을 위해 모든 IPv4 주소의 인바운드 SSH 트래픽을 허용하는 보안 그룹을 생성합니다.
중요
이 보안 그룹은 테스트 목적으로만 사용됩니다. 프로덕션 환경에서는 컴퓨터의 IP 주소 또는 로컬 네트워크의 IP 주소 범위와 같이 연결하려는 IP 주소로부터의 트래픽만 허용하는 인바운드 SSH 규칙을 생성하는 것이 좋습니다.
다른 시나리오는 다양한 사용 사례에 대한 보안 그룹 규칙 섹션을 참조하세요.
EFA 사용 보안 그룹을 생성하려면
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 보안 그룹(Security Groups)을 선택한 다음, 보안 그룹 생성(Create security group)을 선택합니다.
-
보안 그룹 생성(Create security group) 창에서 다음을 수행합니다.
-
보안 그룹 이름의 경우
EFA-enabled security group
과 같은 보안 그룹의 고유한 이름을 입력합니다. -
(선택 사항) 설명에 보안 그룹에 대한 간략한 설명을 입력합니다.
-
VPC에서는 EFA 사용 인스턴스를 시작하려는 VPC를 선택합니다.
-
보안 그룹 생성을 선택합니다.
-
-
생성한 보안 그룹을 선택하고 세부 정보(Details) 탭에서 보안 그룹 ID(Security group ID)를 복사합니다.
-
보안 그룹을 선택한 상태에서 작업(Actions), 인바운드 규칙 편집(Edit inbound rules)을 선택한 후 다음을 수행합니다.
-
[Add another rule]을 선택합니다.
-
유형(Type)에서 모든 트래픽(All traffic)을 선택합니다.
-
소스 유형(Source type)에서 사용자 지정(Custom)을 선택하고 복사한 보안 그룹 ID를 필드에 붙여넣습니다.
-
규칙 추가를 선택합니다.
-
Type(유형)에서 SSH를 선택합니다.
-
소스 유형(Source type)에서 어디서나 - IPv4(Anywhere - IPv4)를 선택합니다.
-
규칙 저장을 선택합니다.
-
-
보안 그룹을 선택한 상태에서 작업(Actions), 아웃바운드 규칙 편집(Edit outbound rules)을 선택한 후 다음을 수행합니다.
-
[Add another rule]을 선택합니다.
-
유형(Type)에서 모든 트래픽(All traffic)을 선택합니다.
-
대상 유형(Destination type)에서 사용자 지정(Custom)을 선택하고 복사한 보안 그룹 ID를 필드에 붙여넣습니다.
-
규칙 저장을 선택합니다.
-
2단계: 임시 인스턴스 시작
EFA 소프트웨어 구성 요소를 설치하고 구성하는 데 사용할 수 있는 임시 인스턴스를 실행합니다. 이 인스턴스를 사용해 EFA를 사용한 AMI을 생성하여 EFA를 사용한 인스턴스를 실행할 수 있습니다.
임시 인스턴스를 실행합니다.
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 Instances(인스턴스)를 선택한 다음에 Launch Instances(인스턴스 시작)를 선택하여 새 인스턴스 시작 마법사를 엽니다.
-
(선택 사항)이름 및 태그(Name and tags) 섹션에서 인스턴스의 이름(예:
EFA-instance
)을 제공합니다. 이름은 인스턴스에 리소스 태그(Name=
)로 할당됩니다.EFA-instance
-
Application and OS Images(애플리케이션 및 OS 이미지) 섹션에서 지원되는 운영 체제 중 하나에 해당하는 AMI를 선택합니다. Amazon Linux 2, Ubuntu 20.04 및 Ubuntu 22.04만 지원됩니다.
-
인스턴스 유형 섹션에서
p3dn.24xlarge
,p4d.24xlarge
또는p5.48xlarge
를 선택합니다. -
키 페어(Key pair) 섹션에서 인스턴스에 사용할 키 페어를 선택합니다.
-
네트워크 설정(Network settings) 섹션에서 편집(Edit)을 선택하고 다음과 같이 수행합니다.
-
서브넷(Subnet)에서 인스턴스를 시작할 서브넷을 선택합니다. 서브넷을 선택하지 않으면 EFA에 대해 인스턴스를 활성화할 수 없습니다.
-
방화벽(보안 그룹)의 경우 기존 보안 그룹 선택(Select existing security group)을 선택한 다음에 이전 단계에서 생성한 보안 그룹을 선택합니다.
-
고급 네트워크 구성(Advanced network configuration) 섹션을 확장하고 Elastic Fabric Adapter의 경우 사용(Enable)을 선택합니다.
-
-
스토리지(Storage) 섹션에서 필요에 따라 볼륨을 구성합니다.
참고
Nvidia CUDA 도구 키트에 사용할 10~20GiB의 스토리지를 추가로 프로비저닝해야 합니다. 스토리지를 충분히 프로비저닝하지 않으면 Nvidia 드라이버 및 CUDA 도구 키트를 설치하려고 할 때
insufficient disk space
오류가 발생합니다. -
오른쪽의 요약(Summary) 패널에서 인스턴스 시작(Launch instance)을 선택합니다.
3단계: Nvidia GPU 드라이버, Nvidia CUDA 툴킷 및 cuDNN 설치
4단계: GDRCopy 설치
GDRCopy를 설치하여 Libfabric의 성능을 향상합니다. GDRCopy에 관한 자세한 내용은 GDRCopy 리포지토리
5단계: EFA 소프트웨어 설치
임시 인스턴스에서 EFA를 지원하는 데 필요한 EFA 사용 커널, EFA 드라이버, Libfabric 및 Open MPI 스택을 설치합니다.
EFA 소프트웨어를 설치하려면
-
시작한 인스턴스에 연결합니다. 자세한 내용은 SSH를 사용하여 Linux 인스턴스에 연결 단원을 참조하십시오.
-
EFA 소프트웨어 설치 파일을 다운로드합니다. 소프트웨어 설치 파일은 압축 tarball(
.tar.gz
) 파일로 패키징되어 있습니다. 최신 안정 버전을 다운로드하려면 다음 명령을 사용하십시오.$
curl -O https://efa-installer.amazonaws.com/aws-efa-installer-1.35.0.tar.gz또한 위의 명령에서 버전 번호를
latest
로 바꾸면 최신 버전을 얻을 수 있습니다. (선택 사항) EFA tarball(
.tar.gz
) 파일의 신뢰성 및 무결성을 확인합니다.이 작업을 수행하여 소프트웨어 게시자의 자격 증명을 확인하고 파일이 게시된 이후 변경되거나 손상되지 않았는지 확인하는 것이 좋습니다. tarball 파일을 확인하지 않으려면 이 단계를 건너뜁니다.
참고
또는 MD5 또는 SHA256 체크섬을 대신 사용하여 tarball 파일을 확인하려면 체크섬을 사용하여 EFA 설치 프로그램 확인 섹션을 참조하세요.
-
퍼블릭 GPG 키를 다운로드하고 키 링으로 가져옵니다.
$
wget https://efa-installer.amazonaws.com/aws-efa-installer.key && gpg --import aws-efa-installer.key명령에서 키 값이 반환됩니다. 다음 단계에서 필요하므로 키 값을 기록해 둡니다.
-
GPG 키의 지문을 확인합니다. 다음 명령을 실행하고 이전 단계의 키 값을 지정합니다.
$
gpg --fingerprintkey_value
명령에서
4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC
와 동일한 지문이 반환되어야 합니다. 지문이 일치하지 않으면 EFA 설치 스크립트를 실행하지 말고 AWS Support에 문의하세요. -
서명 파일을 다운로드하고 EFA tarball 파일의 서명을 확인합니다.
$
wget https://efa-installer.amazonaws.com/aws-efa-installer-1.35.0.tar.gz.sig && gpg --verify ./aws-efa-installer-1.35.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 <ec2-efa-maintainers@amazon.com>" 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
가 있고 이전 단계에서 반환된 지문과 지문이 일치하면 다음 단계로 진행합니다. 그렇지 않은 경우 EFA 설치 스크립트를 실행하지 말고 AWS Support에 문의하세요.
-
-
압축
.tar.gz
파일에서 파일을 추출하고 추출된 디렉터리로 이동하십시오.$
tar -xf aws-efa-installer-1.35.0.tar.gz && cd aws-efa-installer -
EFA 소프트웨어 설치 스크립트를 실행합니다.
참고
EFA 1.30.0부터 Open MPI 4 및 Open MPI 5 모두 기본적으로 설치됩니다. Open MPI 5가 필요하지 않은 경우 Open MPI 4만 설치하는 것이 좋습니다. 다음 명령은 Open MPI 4만 설치합니다. Open MPI 4 및 Open MPI 5를 설치하려면
--mpi=openmpi4
를 제거합니다.$
sudo ./efa_installer.sh -y --mpi=openmpi4Libfabric은
/opt/amazon/efa
디렉터리에 설치되는 반면, Open MPI는/opt/amazon/openmpi
디렉터리에 설치됩니다. -
EFA 설치 프로그램에서 인스턴스를 재부팅하라는 메시지를 표시하면 인스턴스를 재부팅한 다음 인스턴스에 다시 연결합니다. 그렇지 않으면 인스턴스에서 로그아웃한 다음 다시 로그인하여 설치를 완료합니다.
-
EFA 소프트웨어 구성 요소가 성공적으로 설치되었는지 확인합니다.
$
fi_info -p efa -t FI_EP_RDM이 명령은 Libfabric EFA 인스턴스에 대한 정보를 반환합니다. 다음은 해당 명령 출력을 보여주는 예제입니다.
-
p3dn.24xlarge
및 단일 네트워크 인터페이스provider: efa fabric: EFA-fe80::94:3dff:fe89:1b70 domain: efa_0-rdm version: 2.0 type: FI_EP_RDM protocol: FI_PROTO_EFA
-
p4d.24xlarge
및p5.48xlarge
와 여러 네트워크 인터페이스provider: efa fabric: EFA-fe80::c6e:8fff:fef6:e7ff domain: efa_0-rdm version: 111.0 type: FI_EP_RDM protocol: FI_PROTO_EFA provider: efa fabric: EFA-fe80::c34:3eff:feb2:3c35 domain: efa_1-rdm version: 111.0 type: FI_EP_RDM protocol: FI_PROTO_EFA provider: efa fabric: EFA-fe80::c0f:7bff:fe68:a775 domain: efa_2-rdm version: 111.0 type: FI_EP_RDM protocol: FI_PROTO_EFA provider: efa fabric: EFA-fe80::ca7:b0ff:fea6:5e99 domain: efa_3-rdm version: 111.0 type: FI_EP_RDM protocol: FI_PROTO_EFA
-
6단계: NCCL 설치
NCCL을 설치합니다. NCCL에 대한 자세한 내용은 NCCL 리포지토리
NCCL을 설치하려면
-
/opt
디렉터리로 이동합니다.$
cd /opt -
공식 NCCL 리포지토리를 인스터스에 복제하고 복제된 로컬 리포지토리로 이동합니다.
$
sudo git clone https://github.com/NVIDIA/nccl.git && cd nccl -
NCCL을 빌드 및 설치하고 CUDA 설치 디렉터리를 지정합니다.
$
sudo make -j src.build CUDA_HOME=/usr/local/cuda
7단계: aws-ofi-nccl 플러그인 설치
aws-ofi-nccl 플러그인은 NCCL의 연결 지향 전송 API를 Libfabric의 연결 없는 안정적인 인터페이스에 매핑합니다. 이렇게 하면 NCCL 기반 애플리케이션을 실행하면서 Libfabric을 네트워크 공급자로 사용할 수 있습니다. aws-ofi-nccl 플러그인에 대한 자세한 내용은 aws-ofi-nccl 리포지토리
aws-ofi-nccl 플러그인을 설치하려면
-
홈 디렉터리로 이동합니다.
$
cd $HOME -
필수 유틸리티를 설치합니다.
-
Amazon Linux 2
$
sudo yum install hwloc-devel -
Ubuntu
$
sudo apt-get install libhwloc-dev
-
-
aws-ofi-nccl 플러그인 파일을 다운로드합니다. 파일은 압축 tarball(
.tar.gz
) 파일로 패키징되어 있습니다.$
wget https://github.com/aws/aws-ofi-nccl/releases/download/v1.11.0-aws/aws-ofi-nccl-1.11.0-aws.tar.gz -
압축 .tar.gz 파일에서 파일을 추출하고 추출된 디렉터리로 이동합니다.
$
tar -xf aws-ofi-nccl-1.11.0-aws.tar.gz && cd aws-ofi-nccl-1.11.0-aws -
make 파일을 생성하려면
configure
스크립트를 실행하고 MPI, Libfabric, NCCL 및 CUDA 설치 디렉터리를 지정합니다.$
./configure --prefix=/opt/aws-ofi-nccl --with-mpi=/opt/amazon/openmpi \ --with-libfabric=/opt/amazon/efa \ --with-cuda=/usr/local/cuda \ --enable-platform-aws -
Open MPI 디렉터리를
PATH
변수에 추가합니다.$
export PATH=/opt/amazon/openmpi/bin/:$PATH -
aws-ofi-nccl 플러그인을 설치합니다.
$
make && sudo make install
8단계: NCCL 테스트 설치
NCCL 테스트를 설치합니다. NCCL 테스트를 통해 NCCL이 올바르게 설치되었는지와 예상대로 작동하는지 확인할 수 있습니다. NCCL 테스트에 대한 자세한 내용은 nccl-tests 리포지토리
NCCL 테스트를 설치하려면
-
홈 디렉터리로 이동합니다.
$
cd $HOME -
공식 nccl-tests 리포지토리를 인스터스에 복제하고 복제된 로컬 리포지토리로 이동합니다.
$
git clone https://github.com/NVIDIA/nccl-tests.git && cd nccl-tests -
Libfabric 디렉터리를
LD_LIBRARY_PATH
변수에 추가합니다.-
Amazon Linux 2
$
export LD_LIBRARY_PATH=/opt/amazon/efa/lib64
:$LD_LIBRARY_PATH -
Ubuntu
$
export LD_LIBRARY_PATH=/opt/amazon/efa/lib
:$LD_LIBRARY_PATH
-
-
NCCL 테스트를 설치하고 MPI, NCCL 및 CUDA 설치 디렉터리를 지정합니다.
$
make MPI=1 MPI_HOME=/opt/amazon/openmpi
NCCL_HOME=/opt/nccl/build
CUDA_HOME=/usr/local/cuda
9단계: EFA 및 NCCL 구성 테스트
테스트를 실행하여 임시 인스턴스가 EFA 및 NCCL에 대해 올바르게 구성되었는지 확인합니다.
EFA 및 NCCL 구성을 테스트하려면
-
테스트를 실행할 호스트를 지정하는 호스트 파일을 생성합니다. 다음 명령은 인스턴스 자체에 대한 참조를 포함하는
my-hosts
라는 호스트 파일을 생성합니다. -
테스트를 실행하고 호스트 파일(
--hostfile
) 및 사용할 GPU 수(-n
)를 지정합니다. 다음 명령은 인스턴스 자체의 8개 GPU에서all_reduce_perf
테스트를 실행하고 다음 환경 변수를 지정합니다.-
FI_EFA_USE_DEVICE_RDMA=1
- (p4d.24xlarge
만 해당) 단방향 및 양방향 전송을 위해 디바이스의 RDMA 기능을 사용합니다. -
NCCL_DEBUG=INFO
- 세부 디버깅 출력을 사용합니다. 또한VERSION
을 지정하여 테스트 시작 시 NCCL 버전만 인쇄하거나WARN
을 지정하여 오류 메시지만 수신할 수 있습니다.
NCCL 테스트 알고리즘에 대한 자세한 내용은 공식 nccl-tests 리포지토리에서 NCCL Tests README
를 참조하세요. -
p3dn.24xlarge
$
/opt/amazon/openmpi/bin/mpirun \ -x LD_LIBRARY_PATH=/opt/nccl/build/lib:/usr/local/cuda/lib64:/opt/amazon/efa/lib:/opt/amazon/openmpi/lib:/opt/aws-ofi-nccl/lib:$LD_LIBRARY_PATH \ -x NCCL_DEBUG=INFO \ --hostfile my-hosts -n 8 -N 8 \ --mca pml ^cm --mca btl tcp,self --mca btl_tcp_if_exclude lo,docker0 --bind-to none \ $HOME/nccl-tests/build/all_reduce_perf -b 8 -e 1G -f 2 -g 1 -c 1 -n 100 -
p4d.24xlarge
및p5.48xlarge
$
/opt/amazon/openmpi/bin/mpirun \ -x FI_EFA_USE_DEVICE_RDMA=1 \ -x LD_LIBRARY_PATH=/opt/nccl/build/lib:/usr/local/cuda/lib64:/opt/amazon/efa/lib:/opt/amazon/openmpi/lib:/opt/aws-ofi-nccl/lib:$LD_LIBRARY_PATH \ -x NCCL_DEBUG=INFO \ --hostfile my-hosts -n 8 -N 8 \ --mca pml ^cm --mca btl tcp,self --mca btl_tcp_if_exclude lo,docker0 --bind-to none \ $HOME/nccl-tests/build/all_reduce_perf -b 8 -e 1G -f 2 -g 1 -c 1 -n 100
-
-
NCCL_DEBUG
로그가 인쇄될 때 EFA가 NCCL의 기본 공급자로 활성화되어 있는지 확인할 수 있습니다.ip-192-168-2-54:14:14 [0] NCCL INFO NET/OFI Selected Provider is efa*
p4d.24xlarge
인스턴스를 사용할 때 다음과 같은 추가 정보가 표시됩니다.ip-192-168-2-54:14:14 [0] NCCL INFO NET/OFI Running on P4d platform, Setting NCCL_TOPO_FILE environment variable to /home/ec2-user/install/plugin/share/aws-ofi-nccl/xml/p4d-24xl-topo.xml
10단계: 기계 학습 애플리케이션 설치
기계 학습 애플리케이션을 임시 인스턴스에 설치합니다. 설치 절차는 기계 학습 애플리케이션에 따라 다릅니다. Linux 인스턴스에 소프트웨어를 설치하는 데 대한 자세한 내용은 Amazon Linux 2 인스턴스에서 소프트웨어 관리를 참조하세요.
참고
설치 지침은 기계 학습 애플리케이션의 설명서를 참조하세요.
11단계: EFA 및 NCCL 지원 AMI 생성
필수 소프트웨어 구성 요소를 설치한 뒤 AMI를 사용하여 EFA 사용 인스턴스를 재사용하고 시작합니다.
임시 인스턴스에서 AMI를 생성하려면
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 Instances(인스턴스)를 선택합니다.
-
생성한 임시 인스턴스를 선택하고 [작업(Actions)], [이미지(Image)], [이미지 생성(Create image)]을 선택합니다.
-
[이미지 생성(Create image)]에서 다음을 수행합니다.
-
[이미지 이름(Image name)]에 AMI를 설명하는 이름을 입력합니다.
-
(선택 사항) [이미지 설명(Image description)]에 AMI의 용도에 대한 간략한 설명을 입력합니다.
-
이미지 생성(Create image)을 선택합니다.
-
-
탐색 창에서 AMI를 선택합니다.
-
목록에서 생성한 AMI를 찾습니다. 상태가
pending
에서available
로 바뀔 때까지 기다린 후 다음 단계를 계속합니다.
12단계: 임시 인스턴스 종료
이 단계에서는 시작한 임시 인스턴스가 더 이상 필요하지 않습니다. 추가 요금이 발생하지 않도록 해당 인스턴스를 종료할 수 있습니다.
임시 인스턴스 종료
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 Instances(인스턴스)를 선택합니다.
-
생성한 임시 인스턴스를 선택하고 작업(Actions), 인스턴스 상태(Instance state), 인스턴스 종료(Terminate instance)를 선택합니다.
-
확인 메시지가 나타나면 종료(Terminate)를 선택합니다.
13단계: 클러스터 배치 그룹에 EFA 및 NCCL 지원 인스턴스 시작
앞서 생성한 EFA 사용 AMI 및 EFA 사용 보안 그룹을 사용하여 클러스터 배치 그룹으로 EFA 및 NCCL 사용 인스턴스를 시작합니다.
참고
-
클러스터 배치 그룹에 EFA 지원 인스턴스를 시작할 필요는 없습니다. 그러나 EFA가 지원되는 인스턴스를 클러스터 배치 그룹에서 실행하면 단일 가용 영역의 지연율이 낮은 그룹 인스턴스를 시작하기 때문에 권장합니다.
-
클러스터 인스턴스를 확장할 때 용량을 사용할 수 있도록 하려면 클러스터 배치 그룹에 대한 용량 예약을 생성할 수 있습니다. 자세한 내용은 클러스터 배치 그룹에 용량 예약 생성 단원을 참조하십시오.
14단계: 암호 없는 SSH 활성화
클러스터의 모든 인스턴스에서 실행하도록 애플리케이션을 활성화하려면 리더 노드에서 멤버 노드로의 암호 없는 SSH 액세스를 사용해야 합니다. 리더 노드는 애플리케이션을 실행할 인스턴스입니다. 클러스터의 나머지 인스턴스는 멤버 노드입니다,
클러스터의 인스턴스 간에 암호 없는 SSH를 사용하려면
-
클러스터의 인스턴스 1개를 리더 노드로 선택하고 연결합니다.
-
strictHostKeyChecking
을 비활성화하고 리더 노드에서ForwardAgent
를 활성화합니다. 원하는 텍스트 편집기를 사용하여~/.ssh/config
를 열고 다음을 추가합니다.Host * ForwardAgent yes Host * StrictHostKeyChecking no
-
RSA 키 페어 생성:
$
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa키 페어는
$HOME/.ssh/
디렉터리에 생성됩니다. -
리더 노드에서 프라이빗 키의 사용 권한을 변경합니다.
$
chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/config -
원하는 텍스트 편집기를 사용하여
~/.ssh/id_rsa.pub
를 열고 키를 추가합니다. -
클러스터의 각 멤버 노드에 대해 다음을 수행합니다.
-
인스턴스에 연결합니다.
-
원하는 텍스트 편집기를 사용하여
~/.ssh/authorized_keys
를 열고 앞에서 복사한 퍼블릭 키를 추가합니다.
-
-
암호 없는 SSH가 예상대로 작동하는지 테스트하려면 리더 노드에 연결하고 다음 명령을 실행합니다.
$
sshmember_node_private_ip
키 또는 암호를 입력하라는 메시지가 표시되지 않은 상태에서 멤버 노드에 연결해야 합니다.