네트워크 구성 - AWS ParallelCluster

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

네트워크 구성

AWS ParallelCluster 네트워킹에 Amazon VPC (가상 사설 클라우드) 를 사용합니다. VPC는 클러스터를 배포하기 위한 유연하고 구성 가능한 네트워킹 플랫폼을 제공합니다.

VPC에는 리전에 대해 올바른 도메인 이름이 있는 DHCP 옵션, DNS Resolution = yesDNS Hostnames = yes이 있어야 합니다. 기본 DHCP 옵션 세트는 이미 필수 AmazonProvided DNS를 지정하고 있습니다. 도메인 이름 서버를 두 개 이상 지정하는 경우 Amazon VPC 사용 설명서DHCP 옵션 세트를 참조하세요.

AWS ParallelCluster 다음과 같은 상위 수준 구성을 지원합니다.

  • 헤드 노드와 컴퓨팅 노드 모두를 위한 하나의 서브넷

  • 퍼블릭 서브넷에 헤드 노드가 있고 프라이빗 서브넷에 컴퓨팅 노드가 있는 두 개의 서브넷 서브넷은 새 서브넷이거나 기존 서브넷일 수 있습니다.

이러한 모든 구성은 퍼블릭 IP 주소 지정을 사용하거나 사용하지 않고 작동할 수 있습니다. AWS ParallelCluster 모든 AWS 요청에 HTTP 프록시를 사용하도록 배포할 수도 있습니다. 이러한 구성을 조합하면 많은 배포 시나리오가 가능해집니다. 예를 들어 인터넷을 통해 모든 액세스가 가능한 단일 퍼블릭 서브넷을 구성할 수 있습니다. 또는 모든 트래픽에 대해 HTTP 프록시를 사용하여 AWS Direct Connect 완전 사설망을 구성할 수 있습니다.

AWS ParallelCluster 3.0.0부터 각 대기열에 대해 서로 다른 SecurityGroups AdditionalSecurityGroups PlacementGroup 설정과 설정을 구성할 수 있습니다. 자세한 내용은 HeadNode/NetworkingSlurmQueues/NetworkingAwsBatchQueues/Networking를 참조하세요.

이러한 네트워킹 시나리오의 일러스트를 보려면 다음 아키텍처 다이어그램을 참조하세요.

AWS ParallelCluster 단일 퍼블릭 서브넷에서

VPC diagram showing public subnet with Head Node and Compute Fleet in an Availability Zone.

이 아키텍처의 구성에는 다음 설정이 필요합니다.

# Note that all values are only provided as examples HeadNode: ... Networking: SubnetId: subnet-12345678 # subnet with internet gateway #ElasticIp: true | false | eip-12345678 Scheduling: Scheduler: slurm SlurmQueues: - ... Networking: SubnetIds: - subnet-12345678 # subnet with internet gateway #AssignPublicIp: true

이 구성에서는 클러스터의 모든 인스턴스에 퍼블릭 IP를 할당해야 인터넷에 액세스할 수 있습니다. 이를 위해 다음을 수행합니다.

  • HeadNode/Networking/SubnetId에서 사용되는 서브넷에 대해 “퍼블릭 IPv4 주소 자동 할당 활성화” 설정을 켜거나 HeadNode/Networking/ElasticIp에서 탄력적 IP를 할당하여 헤드 노드에 퍼블릭 IP 주소를 할당해야 합니다.

  • Scheduling/SlurmQueues/Networking/SubnetIds 에서 사용되는 서브넷에 대해 “퍼블릭 IPv4 주소 자동 할당 활성화” 설정을 켜거나 Scheduling/SlurmQueues/Networking에서 AssignPublicIp: true로 설정하여 컴퓨팅 노드에 퍼블릭 IP 주소를 할당해야 합니다.

  • p4d인스턴스 유형을 정의하거나 헤드 노드에 대한 네트워크 인터페이스 카드가 여러 개 있는 다른 인스턴스 유형을 정의하는 경우 HeadNodeNetworking//를 설정하여 퍼블릭 ElasticIptrue액세스를 제공해야 합니다. AWS 퍼블릭 IP는 단일 네트워크 인터페이스로 시작된 인스턴스에만 할당할 수 있습니다. 이 경우 NAT 게이트웨이를 사용하여 클러스터 컴퓨팅 노드에 대한 퍼블릭 액세스를 제공하는 것이 좋습니다. IP 주소에 관한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서인스턴스 시작 중 퍼블릭 IPv4 주소 할당을 참조하세요.

  • AWS 퍼블릭 IP는 단일 네트워크 인터페이스로 시작하는 인스턴스에만 할당할 수 있기 때문에, p4d 또는 hp6id 인스턴스 유형이나 컴퓨팅 노드용 네트워크 인터페이스 카드가 여러 개 또는 한 개 있는 다른 인스턴스 유형을 정의할 수 없습니다. IP 주소에 관한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서인스턴스 시작 중 퍼블릭 IPv4 주소 할당을 참조하세요.

자세한 내용은 Amazon VPC 사용 설명서인터넷 액세스 활성화를 참조하세요.

AWS ParallelCluster 서브넷 2개 사용

VPC architecture with public and private subnets, IGW, router, head node, and compute fleet.

컴퓨팅 인스턴스에 대한 기존 프라이빗 서브넷을 사용하기 위한 구성에는 다음 설정이 필요합니다.

# Note that all values are only provided as examples HeadNode: ... Networking: SubnetId: subnet-12345678 # subnet with internet gateway #ElasticIp: true | false | eip-12345678 Scheduling: Scheduler: slurm SlurmQueues: - ... Networking: SubnetIds: - subnet-23456789 # subnet with NAT gateway #AssignPublicIp: false

이 구성에서는 클러스터의 헤드 노드에만 퍼블릭 IP를 할당해야 합니다. HeadNode/Networking/SubnetId에서 사용되는 서브넷에 대해 “퍼블릭 IPv4 주소 자동 할당 활성화” 설정을 켜거나 HeadNode/Networking/ElasticIp에서 탄력적 IP를 할당하면 됩니다.

헤드 노드에 대한 네트워크 인터페이스 카드 또는 네트워크 인터페이스 카드가 여러 개 있는 p4d 인스턴스 유형이나 다른 인스턴스 유형을 정의하는 경우 HeadNodeNetworking//를 설정하여 퍼블릭 ElasticIptrue액세스를 제공해야 합니다. AWS 퍼블릭 IP는 단일 네트워크 인터페이스로 시작된 인스턴스에만 할당할 수 있습니다. IP 주소에 관한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서인스턴스 시작 중 퍼블릭 IPv4 주소 할당을 참조하세요.

이 구성에는 컴퓨팅 인스턴스에 대한 인터넷 액세스를 제공하기 위해 대기열에 사용되는 서브넷의 NAT 게이트웨이 또는 내부 프록시가 필요합니다.

AWS ParallelCluster 를 사용하여 연결된 단일 프라이빗 서브넷에서 AWS Direct Connect

Corporate data center connected to VPC with private subnet containing head node and compute fleet.

이 아키텍처의 구성에는 다음 설정이 필요합니다.

# Note that all values are only provided as examples HeadNode: ... Networking: SubnetId: subnet-34567890 # subnet with proxy Proxy: HttpProxyAddress: http://proxy-address:port Ssh: KeyName: ec2-key-name Scheduling: Scheduler: slurm SlurmQueues: - ... Networking: SubnetIds: - subnet-34567890 # subnet with proxy AssignPublicIp: false Proxy: HttpProxyAddress: http://proxy-address:port

Scheduling/SlurmQueues/Networking/AssignPublicIpfalse로 설정한 경우 모든 트래픽에 프록시를 사용하려면 VPC를 올바르게 설정해야 합니다. 헤드 노드와 컴퓨팅 노드 모두에 웹 액세스가 필요합니다.

AWS ParallelCluster 스케줄러 포함 AWS Batch

를 스케줄러 awsbatch 유형으로 사용하면 AWS Batch 관리형 컴퓨팅 환경이 AWS ParallelCluster 생성됩니다. AWS Batch 환경은 Amazon Elastic Container Service(Amazon ECS) 컨테이너 인스턴스를 관리합니다. 이러한 인스턴스는 AwsBatchQueues/Networking/SubnetIds 파라미터로 구성된 서브넷에서 시작됩니다. Amazon ECS 컨테이너 인스턴스가 제대로 AWS Batch 작동하려면 Amazon ECS 서비스 엔드포인트와 통신하기 위한 외부 네트워크 액세스가 필요합니다. 이 경우는 다음 시나리오로 전환됩니다.

  • 대기열에 지정된 서브넷 ID는 NAT 게이트웨이를 사용하여 인터넷에 액세스합니다. 이 방법이 권장 방법입니다.

  • 대기열 서브넷에서 시작된 인스턴스는 퍼블릭 IP 주소를 가지고 있고 인터넷 게이트웨이를 통해 인터넷에 연결할 수 있습니다.

또한 다중 노드 병렬 작업에 관심이 있는 경우(AWS Batch 설명서에 따라):

AWS Batch 다중 노드 병렬 작업은 Amazon ECS awsvpc 네트워크 모드를 사용합니다. 이렇게 하면 다중 노드 병렬 작업 컨테이너에 Amazon EC2 인스턴스와 동일한 네트워킹 속성이 적용됩니다. 각 다중 노드 병렬 작업 컨테이너는 고유의 탄력적 네트워크 인터페이스, 기본 프라이빗 IP 주소, 내부 DNS 호스트 이름을 가져옵니다. 네트워크 인터페이스는 호스트 컴퓨팅 리소스와 동일한 Amazon VPC 서브넷에서 생성됩니다. 컴퓨팅 리소스에 적용되는 모든 보안 그룹은 네트워크 인터페이스에도 적용됩니다.

Amazon ECS 작업 네트워킹을 사용할 경우 awsvpc 네트워크 모드는 Amazon EC2 시작 유형을 사용하는 작업에 대한 퍼블릭 IP 주소를 탄력적 네트워크 인터페이스에 제공하지 않습니다. 인터넷에 액세스하려면 Amazon EC2 시작 유형을 사용하는 작업이 NAT 게이트웨이를 사용하도록 구성된 프라이빗 서브넷에서 시작되어야 합니다.

클러스터가 다중 노드 병렬 작업을 실행할 수 있도록 하려면 NAT 게이트웨이를 구성해야 합니다.

VPC architecture with public and private subnets, IGW, router, and ECS container instances.

이전의 모든 구성 및 고려 사항도 AWS Batch유효합니다. 다음은 AWS Batch 네트워킹 구성의 예입니다.

# Note that all values are only provided as examples HeadNode: ... Networking: SubnetId: subnet-12345678 # subnet with internet gateway, NAT gateway or proxy #ElasticIp: true | false | eip-12345678 #Proxy: #HttpProxyAddress: http://proxy-address:port Ssh: KeyName: ec2-key-name Scheduling: Scheduler: awsbatch AwsBatchQueues: - ... Networking: SubnetIds: - subnet-23456789 # subnet with internet gateway, NAT gateway or proxy #AssignPublicIp: true | false

Scheduling/AwsBatchQueues/Networking 섹션에서, SubnetIds는 목록 유형이지만 현재는 하나의 서브넷만 지원됩니다.

자세한 정보는 다음 주제를 참조하세요.

AWS ParallelCluster 인터넷에 액세스할 수 없는 단일 서브넷에서

AWS ParallelCluster 서브넷 하나를 사용하고 인터넷은 사용하지 않음

인터넷에 액세스할 수 없는 서브넷은 인터넷으로의 인바운드 또는 아웃바운드 연결을 허용하지 않습니다. 이 AWS ParallelCluster 구성은 보안에 관심이 있는 고객이 리소스 보안을 더욱 강화하는 데 도움이 될 수 있습니다. AWS ParallelCluster AWS ParallelCluster 노드는 인터넷 액세스 AWS ParallelCluster 없이 클러스터를 실행하는 데 필요한 모든 소프트웨어가 포함된 AMI를 기반으로 구축됩니다. 이렇게 하면 AWS ParallelCluster 가 인터넷에 액세스할 수 없는 노드로 클러스터를 만들고 관리할 수 있습니다.

이 섹션에서는 클러스터를 구성하는 방법에 대해 알아봅니다. 또한 인터넷에 접속하지 않고 클러스터를 실행할 때의 제한 사항에 대해서도 알아봅니다.

VPC 엔드포인트 구성

클러스터가 제대로 작동하려면 클러스터 노드가 여러 AWS 서비스와 상호 작용할 수 있어야 합니다.

클러스터 노드가 인터넷에 액세스하지 않고도 AWS 서비스와 상호 작용할 수 있도록 다음 VPC 엔드포인트를 만들고 구성하십시오.

Commercial and AWS GovCloud (US) partitions
Service 서비스 이름 유형

아마존 CloudWatch

com.amazonaws.region-id.logs

인터페이스

AWS CloudFormation

com.amazonaws.region-id.cloudformation

인터페이스

Amazon EC2

com.amazonaws.region-id.ec2

인터페이스

Amazon S3

com.amazonaws.region-id.s3

게이트웨이

Amazon DynamoDB

com.amazonaws.region-id.dynamodb

게이트웨이

AWS Secrets Manager**

com.amazonaws.region-id.secretsmanager

인터페이스

China partition
Service 서비스 이름 유형

아마존 CloudWatch

com.amazonaws.region-id.logs

인터페이스

AWS CloudFormation

cn.com.amazonaws.region-id.cloudformation

인터페이스

Amazon EC2

cn.com.amazonaws.region-id.ec2

인터페이스

Amazon S3

com.amazonaws.region-id.s3

게이트웨이

Amazon DynamoDB

com.amazonaws.region-id.dynamodb

게이트웨이

AWS Secrets Manager**

com.amazonaws.region-id.secretsmanager

인터페이스

** 이 엔드포인트는 DirectoryService가 활성화된 경우에만 필요하며, 그렇지 않으면 선택 사항입니다.

VPC의 모든 인스턴스에는 엔드포인트와 통신할 수 있는 적절한 보안 그룹이 있어야 합니다. HeadNode 아래의 AdditionalSecurityGroupsSlurmQueues 구성 아래의 AdditionalSecurityGroups에 보안 그룹을 추가하여 이 작업을 수행할 수 있습니다. 예를 들어 보안 그룹을 명시적으로 지정하지 않고 VPC 엔드포인트를 생성하는 경우 기본 보안 그룹이 엔드포인트와 연결됩니다. AdditionalSecurityGroups에 기본 보안 그룹을 추가하면 클러스터와 엔드포인트 간의 통신을 활성화할 수 있습니다.

참고

IAM 정책을 사용하여 VPC 엔드포인트에 대한 액세스를 제한하는 경우 Amazon S3 VPC 엔드포인트에 다음을 추가해야 합니다.

PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: "*" Action: - "s3:PutObject" Resource: - !Sub "arn:${AWS::Partition}:s3:::cloudformation-waitcondition-${AWS::Region}/*"

Route 53을 비활성화하고 Amazon EC2 호스트 이름을 사용하십시오.

Slurm클러스터를 생성할 때 사용자 지정 컴퓨팅 노드 호스트 이름 (예:) 을 확인하는 데 사용되는 프라이빗 Route 53 호스팅 영역을 AWS ParallelCluster 생성합니다. {queue_name}-{st|dy}-{compute_resource}-{N} Route 53은 VPC 엔드포인트를 지원하지 않으므로 이 기능을 비활성화해야 합니다. 또한 기본 Amazon EC2 호스트 이름 (예:) 을 사용하도록 AWS ParallelCluster 구성해야 합니다. ip-1-2-3-4 클러스터 구성에 다음 설정을 적용하세요.

... Scheduling: ... SlurmSettings: Dns: DisableManagedDns: true UseEc2Hostnames: true
주의

SlurmSettingsDnsDisableManagedDns//로 생성한 클러스터의 경우 로 UseEc2Hostnames설정된 클러스터의 true 경우 Slurm NodeName DNS가 이를 확인하지 않습니다. SlurmNodeHostName대신 를 사용하세요.

참고

이 노트는 AWS ParallelCluster 버전 3.3.0부터는 관련이 없습니다.

3.3.0 이전 AWS ParallelCluster 지원 버전의 경우:

UseEc2Hostnames가 로 설정된 true 경우 Slurm 구성 파일은 AWS ParallelCluster prologepilog 스크립트로 설정됩니다.

  • prolog를 실행하여 각 작업이 할당될 때 컴퓨팅 노드의 /etc/hosts에 노드 정보를 추가합니다.

  • epilog를 실행하여 prolog가 작성한 내용을 정리합니다.

사용자 정의 prolog 또는 epilog 스크립트를 추가하려면 각각 /opt/slurm/etc/pcluster/prolog.d/ 또는 /opt/slurm/etc/pcluster/epilog.d/ 폴더에 추가하세요.

클러스터 구성

인터넷에 연결되지 않은 서브넷에서 클러스터가 실행되도록 구성하는 방법을 알아보세요.

이 아키텍처의 구성에는 다음 설정이 필요합니다.

# Note that all values are only provided as examples ... HeadNode: ... Networking: SubnetId: subnet-1234567890abcdef0 # the VPC of the subnet needs to have VPC endpoints AdditionalSecurityGroups: - sg-abcdef01234567890 # optional, the security group that enables the communication between the cluster and the VPC endpoints Scheduling: Scheduler: Slurm # Cluster in a subnet without internet access is supported only when the scheduler is Slurm. SlurmSettings: Dns: DisableManagedDns: true UseEc2Hostnames: true SlurmQueues: - ... Networking: SubnetIds: - subnet-1234567890abcdef0 # the VPC of the subnet needs to have VPC endpoints attached AdditionalSecurityGroups: - sg-1abcdef01234567890 # optional, the security group that enables the communication between the cluster and the VPC endpoints
  • SubnetId(s): 인터넷에 액세스할 수 없는 서브넷.

    AWS ParallelCluster AWS 서비스와 서비스 간의 통신을 활성화하려면 서브넷의 VPC에 VPC 엔드포인트가 연결되어 있어야 합니다. 클러스터를 생성하기 전에 서브넷에서 퍼블릭 IPv4 주소 자동 할당이 비활성화되어 있는지 확인하여 pcluster 명령이 클러스터에 액세스할 수 있는지 확인하세요.

  • AdditionalSecurityGroups: 클러스터와 VPC 엔드포인트 간의 통신을 지원하는 보안 그룹입니다.

    선택 사항:

    • 보안 그룹을 명시적으로 지정하지 않고 VPC 엔드포인트를 생성하는 경우 VPC의 기본 보안 그룹이 연결됩니다. 따라서 AdditionalSecurityGroups에 기본 보안 그룹을 제공하세요.

    • 클러스터 및/또는 VPC 엔드포인트를 생성할 때 사용자 지정 보안 그룹을 사용하는 경우, AdditionalSecurityGroups는 사용자 지정 보안 그룹이 클러스터와 VPC 엔드포인트 간의 통신을 지원하는 한 필요하지 않습니다.

  • Scheduler: 클러스터 스케줄러.

    유일한 유효 값은 slurm입니다. 인터넷 액세스가 없는 서브넷의 클러스터를 지원하는 것은 Slurm 스케줄러뿐입니다.

  • SlurmSettings: 설정. Slurm

    이전 섹션 Route53 비활성화 및 Amazon EC2 호스트 이름 사용을 참조하십시오.

제한 사항

  • SSH 또는 NICE DCV를 통해 헤드 노드에 연결: 클러스터에 연결할 때 연결 클라이언트가 프라이빗 IP 주소를 통해 클러스터의 헤드 노드에 도달할 수 있는지 확인합니다. 클라이언트가 헤드 노드와 같은 VPC에 있지 않은 경우 VPC의 퍼블릭 서브넷에 있는 프록시 인스턴스를 사용하세요. 이 요구 사항은 SSH 및 DCV 연결 모두에 적용됩니다. 서브넷이 인터넷에 액세스할 수 없는 경우 헤드 노드의 퍼블릭 IP에 액세스할 수 없습니다. pcluster sshdcv-connect 명령은 퍼블릭 IP가 있는 경우 퍼블릭 IP를 사용하거나 프라이빗 IP를 사용합니다. 클러스터를 생성하기 전에 서브넷에서 퍼블릭 IPv4 주소 자동 할당이 비활성화되어 있는지 확인하여 pcluster 명령이 클러스터에 액세스할 수 있는지 확인하세요.

    다음 예는 클러스터의 헤드 노드에서 실행되는 DCV 세션에 연결하는 방법을 보여줍니다. 프록시 Amazon EC2 인스턴스를 통해 연결합니다. 인스턴스는 PC의 NICE DCV 서버, 프라이빗 서브넷의 헤드 노드용 클라이언트 역할을 합니다.

    퍼블릭 서브넷의 프록시 인스턴스를 통해 DCV를 통해 연결:

    1. 클러스터의 서브넷과 동일한 VPC에 있는 퍼블릭 서브넷에 Amazon EC2 인스턴스를 생성합니다.

    2. NICE DCV 클라이언트와 서버가 Amazon EC2 인스턴스에 설치되어 있는지 확인합니다.

    3. 프록시 Amazon EC2 인스턴스에 AWS ParallelCluster 사용자 정책을 연결합니다. 자세한 정보는 AWS ParallelCluster 사용자 정책 예시 pcluster을 참조하세요.

    4. 프록시 Amazon EC2 인스턴스에 AWS ParallelCluster 설치합니다.

    5. DCV를 통해 프록시 Amazon EC2 인스턴스에 연결합니다.

    6. 프록시 인스턴스의 pcluster dcv-connect 명령을 사용하여 인터넷 액세스 없이 서브넷 내부의 클러스터에 연결할 수 있습니다.

  • 다른 AWS 서비스와의 상호 작용: 반드시 필요한 서비스만 위에 나열되어 AWS ParallelCluster 있습니다. 클러스터가 다른 서비스와 상호 작용해야 하는 경우 해당 VPC 엔드포인트를 생성하세요.