기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
제한된 환경에 대한 보안 그룹 구성
기본적으로는 클러스터 노드 간의 모든 트래픽을 허용하는 보안 그룹을 AWS ParallelCluster 생성하고 구성합니다. 매우 제한된 환경에서는 네트워크 액세스를 클러스터 작업에 필요한 포트로만 제한해야 할 수 있습니다. 이 섹션에서는 AWS ParallelCluster 배포에 대한 액세스가 제한된 사용자 지정 보안 그룹을 구성하는 방법을 설명합니다.
보안 그룹 개요
AWS ParallelCluster 는 보안 그룹을 사용하여 헤드 노드, 컴퓨팅 노드 및 로그인 노드(구성된 경우) 간의 네트워크 트래픽을 제어합니다. 기본적으로는 클러스터를 AWS ParallelCluster 생성할 때 클러스터 내 노드 간의 모든 트래픽을 허용하는 보안 그룹을 생성합니다. 보안 요구 사항이 엄격한 환경에서는 트래픽을 필요한 포트로만 제한하는 사용자 지정 보안 그룹을 제공할 수 있습니다.
보안 그룹은 클러스터 구성의 다음 섹션에서 구성할 수 있습니다.
-
HeadNode / Networking - 헤드 노드와의 액세스를 제어합니다.
-
Scheduling / SlurmQueues / Networking - 컴퓨팅 노드에 대한 액세스를 제어합니다.
-
LoginNodes - 로그인 노드에 대한 액세스를 제어합니다(구성된 경우).
이러한 각 섹션에 대해 다음을 지정할 수 있습니다.
-
SecurityGroups
-에서 생성할 기본 보안 그룹을 대체합니다 AWS ParallelCluster . -
AdditionalSecurityGroups
-에서 생성한 기본 보안 그룹 외에 보안 그룹을 추가합니다. AWS ParallelCluster
클러스터 작업에 필요한 포트
사용자 지정 보안 그룹을 구성할 때 적절한 노드 간에 다음 포트가 열려 있는지 확인해야 합니다.
Port | 프로토콜 | Direction | 용도 |
---|---|---|---|
22 | TCP | 인바운드 | 헤드 노드에 대한 SSH 액세스(허용되는 IP 범위에서) |
6817-6819 | TCP | 인바운드 | Slurm 컨트롤러 포트(컴퓨팅 및 로그인 노드에서) |
6817-6819 | TCP | 아웃바운드 | Slurm 컨트롤러 포트(컴퓨팅 및 로그인 노드용) |
8443 | TCP | 인바운드 | NICE DCV(활성화된 경우 허용된 IP 범위에서) |
111, 2049 | TCP/UDP | 인바운드 | NFS(공유 스토리지에 NFS를 사용하는 경우 컴퓨팅 및 로그인 노드에서) |
443 | TCP | 아웃바운드 | AWS 서비스에 대한 HTTPS 액세스(VPC 엔드포인트를 사용하지 않는 경우) |
Port | 프로토콜 | Direction | 용도 |
---|---|---|---|
22 | TCP | 인바운드 | SSH 액세스(헤드 노드 및 로그인 노드에서) |
6818 | TCP | 인바운드 | Slurm 데몬 포트(헤드 노드에서) |
6817-6819 | TCP | 아웃바운드 | Slurm 컨트롤러 포트(헤드 노드로) |
111, 2049 | TCP/UDP | 아웃바운드 | NFS(공유 스토리지에 NFS를 사용하는 경우 헤드 노드로) |
443 | TCP | 아웃바운드 | AWS 서비스에 대한 HTTPS 액세스(VPC 엔드포인트를 사용하지 않는 경우) |
EFA(Elastic Fabric Adapter)를 사용하는 경우 EFA가 활성화된 컴퓨팅 노드 간의 모든 트래픽도 허용해야 합니다.
-
EFA를 사용하는 컴퓨팅 노드 간의 모든 TCP 및 UDP 트래픽
-
EFA를 사용하는 컴퓨팅 노드 간 EFA 디바이스의 모든 트래픽
참고
FSx for Lustre, Amazon EFS 또는 기타 스토리지 솔루션과 같은 공유 스토리지 시스템을 사용하는 경우 해당 서비스에 적합한 포트도 열려 있는지 확인해야 합니다.
사용자 지정 보안 그룹 생성
AWS ParallelCluster 배포를 위한 사용자 지정 보안 그룹을 생성하려면 다음 단계를 따르세요.
-
AWS 관리 콘솔, AWS CLI 또는 AWS CloudFormation을 사용하여 헤드 노드, 컴퓨팅 노드 및 로그인 노드(해당하는 경우)에 대한 보안 그룹을 생성합니다.
-
이전 섹션에 설명된 대로 필요한 트래픽만 허용하도록 보안 그룹 규칙을 구성합니다.
-
클러스터 구성 파일에서 이러한 보안 그룹을 참조합니다.
다음은 AWS CLI를 사용하여 보안 그룹을 생성하는 방법의 예입니다.
# Create security group for head node aws ec2 create-security-group \ --group-name pcluster-head-node-sg \ --description "Security group for ParallelCluster head node" \ --vpc-id vpc-12345678 # Create security group for compute nodes aws ec2 create-security-group \ --group-name pcluster-compute-node-sg \ --description "Security group for ParallelCluster compute nodes" \ --vpc-id vpc-12345678 # Add rules to allow necessary traffic between head and compute nodes # (Add specific rules based on the required ports listed above)
클러스터 구성에서 보안 그룹 구성
사용자 지정 보안 그룹을 생성한 후에는 클러스터 구성 파일에서 참조할 수 있습니다.
# Example cluster configuration with custom security groups HeadNode: ... Networking: SubnetId: subnet-12345678 SecurityGroups: - sg-headnode12345 # Custom security group for head node # Or use AdditionalSecurityGroups if you want to keep the default security groups # AdditionalSecurityGroups: # - sg-additional12345 ... Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... Networking: SubnetIds: - subnet-12345678 SecurityGroups: - sg-computenode12345 # Custom security group for compute nodes # Or use AdditionalSecurityGroups if you want to keep the default security groups # AdditionalSecurityGroups: # - sg-additional12345 ... # If using login nodes LoginNodes: Pools: - Name: login-pool ... Networking: SubnetIds: - subnet-12345678 SecurityGroups: - sg-loginnode12345 # Custom security group for login nodes # Or use AdditionalSecurityGroups if you want to keep the default security groups # AdditionalSecurityGroups: # - sg-additional12345 ...
를 사용하는 경우 SecurityGroups
AWS ParallelCluster 는 지정한 보안 그룹만 사용하며 기본 보안 그룹을 대체합니다. 를 사용할 때 AdditionalSecurityGroups
AWS ParallelCluster 는 생성하는 기본 보안 그룹과 지정한 추가 보안 그룹을 모두 사용합니다.
주의
컴퓨팅 인스턴스에 대해 EFA(Elastic Fabric Adapter)를 활성화하는 경우 EFA 지원 인스턴스가 모든 인바운드 및 아웃바운드 트래픽을 허용하는 보안 그룹의 멤버인지 확인합니다. 이는 EFA가 제대로 작동하는 데 필요합니다.
제한된 환경에서 VPC 엔드포인트 사용
매우 제한된 환경에서는 인터넷 액세스 없이 서브넷 AWS ParallelCluster 에 배포할 수 있습니다. 이 경우 클러스터가 AWS 서비스와 통신할 수 있도록 VPC 엔드포인트를 구성해야 합니다. 자세한 지침은 AWS ParallelCluster 인터넷에 액세스할 수 없는 단일 서브넷의 섹션을 참조하세요.
VPC 엔드포인트를 사용하는 경우 보안 그룹이 VPC 엔드포인트와의 트래픽을 허용하는지 확인합니다. VPC 엔드포인트와 연결된 보안 그룹을 헤드 노드 및 컴퓨팅 노드의 AdditionalSecurityGroups
구성에 추가하여이 작업을 수행할 수 있습니다.
HeadNode: ... Networking: SubnetId: subnet-1234567890abcdef0 AdditionalSecurityGroups: - sg-abcdef01234567890 # Security group that enables communication with VPC endpoints ... Scheduling: Scheduler: slurm SlurmQueues: - ... Networking: SubnetIds: - subnet-1234567890abcdef0 AdditionalSecurityGroups: - sg-1abcdef01234567890 # Security group that enables communication with VPC endpoints
보안 그룹 구성 모범 사례
제한된 환경에서 AWS ParallelCluster 에 대한 보안 그룹을 구성할 때는 다음 모범 사례를 고려하세요.
-
최소 권한 원칙: 클러스터 작업에 필요한 포트만 엽니다.
-
보안 그룹 참조 사용: 가능하면 CIDR 블록 대신 보안 그룹 참조(다른 보안 그룹의 트래픽 허용)를 사용하여 클러스터 구성 요소 간의 트래픽을 제한합니다.
-
SSH 액세스 제한: HeadNode/ Ssh/ AllowedIps 구성을 사용하여 헤드 노드에 대한 SSH 액세스를 필요한 IP 범위로만 제한합니다.
-
DCV 액세스 제한: NICE DCV를 사용하는 경우 HeadNode / Dcv / AllowedIps 구성을 사용하여 필요한 IP 범위로만 액세스를 제한합니다.
-
철저한 테스트: 사용자 지정 보안 그룹을 구성한 후 모든 클러스터 기능을 철저하게 테스트하여 필요한 모든 통신 경로가 작동하는지 확인합니다.
-
구성 문서화: 열려 있는 포트와 필요한 이유를 포함하여 보안 그룹 구성에 대한 설명서를 유지 관리합니다.
보안 그룹 문제 해결
사용자 지정 보안 그룹을 구성한 후 문제가 발생하면 다음 문제 해결 단계를 고려하세요.
-
클러스터 로그 확인: CloudWatch Logs의 클러스터 로그에서 연결 오류를 검토합니다.
-
보안 그룹 규칙 확인: 필요한 모든 포트가 적절한 노드 간에 열려 있는지 확인합니다.
-
연결 테스트:
telnet
또는와 같은 도구를 사용하여 특정 포트의 노드 간 연결을 테스트nc
합니다. -
일시적으로 규칙 확장: 필요한 포트를 식별하는 데 문제가 있는 경우 클러스터 노드 간의 모든 트래픽을 일시적으로 허용한 다음 필요한 포트를 식별할 때 점진적으로 제한합니다.
-
VPC 엔드포인트 구성 확인: VPC 엔드포인트를 사용하는 경우 엔드포인트가 올바르게 구성되었는지, 보안 그룹이 엔드포인트와 주고받는 트래픽을 허용하는지 확인합니다.
문제가 계속 발생하면 클러스터 구성 파일에서 SecurityGroups
구성을 제거하여에서 생성한 기본 보안 그룹을 사용하여 AWS ParallelCluster 로 되돌릴 수 있습니다.