ネットワークの設定 - AWS ParallelCluster

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ネットワークの設定

AWS ParallelCluster は、ネットワークに Amazon Virtual Private Cloud (VPC) を使用します。VPC は、クラスターをデプロイすることができる柔軟で設定可能なネットワーキングプラットフォームを提供します。

VPC では、DNS Resolution = yesDNS Hostnames = yes および DHCP オプションがリージョンに対して正しいドメイン名を持つ必要があります。デフォルトの DHCP オプションセットでは、必要な AmazonProvidedDNS が既に指定されています。複数のドメインネームサーバーを指定する場合は、「Amazon VPC User Guide」(Amazon VPC ユーザーガイド) の「DHCP options sets」(DHCP オプションセット) を参照してください。

AWS ParallelCluster では、次の高レベル設定がサポートされています。

  • ヘッドノードとコンピューティングノードの両方に 1 つのサブネット。

  • 1 つのパブリックサブネットにヘッドノードを持ち、プライベートサブネットにコンピューティングノードを持つ 2 つのサブネット。サブネットは新規でも既存でもかまいません。

これらの設定はすべて、パブリック IP アドレス指定の有無にかかわらず動作できます。また、すべての AWS リクエストに HTTP プロキシを使用するようにデプロイ AWS ParallelCluster することもできます。これらの設定を組み合わせることで、さまざまなデプロイシナリオにつながります。例えば、インターネットですべてのアクセスが可能な単一のパブリックサブネットを設定することができます。または、すべてのトラフィックに対して AWS Direct Connect と HTTP プロキシを使用して、完全プライベートネットワークを設定できます。

AWS ParallelCluster 3.0.0 以降ではSecurityGroups、キューごとに異なる 、AdditionalSecurityGroups、および PlacementGroup設定を行うことができます。詳細については、「HeadNode/Networking」、「SlurmQueues/Networking」および「AwsBatchQueues/Networking」を参照してください。

ネットワークのシナリオのいくつかについては、以下のアーキテクチャ図を参照してください。

AWS ParallelCluster 1 つのパブリックサブネット内の

このアーキテクチャの設定には、次の設定が必要です。

# 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 で Elastic IP を割り当てて、ヘッドノードにパブリック IP が割り当てられていることを確認してください。

  • Scheduling/SlurmQueues/Networking/SubnetIds で使用しているサブネットの「パブリック IPv4 アドレスの自動割り当てを有効にする」設定をオンにするか、Scheduling/SlurmQueues/NetworkingAssignPublicIp を true に設定することにより、コンピューティングノードにパブリック IP が割り当てられていることを確認してください。

  • p4d インスタンスタイプ、またはヘッドノードに複数のネットワークインターフェイスまたはネットワークインターフェイスカードを持つ別のインスタンスタイプを定義する場合は、パブリックアクセスを提供するtrueように HeadNode // Networking ElasticIpを に設定する必要があります。 AWS パブリック IPsは、単一のネットワークインターフェイスで起動されたインスタンスにのみ割り当てることができます。この場合、NAT ゲートウェイを使用してクラスターコンピューティングノードへのパブリックアクセスを提供することをお勧めします。詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「インスタンス起動時のパブリック IPv4 アドレスの割り当て」を参照してください。

  • AWS パブリック IP は単一のネットワークインターフェイスで起動されたインスタンスにのみ割り当てることができるため、p4d または hp6id インスタンスタイプや、複数のネットワークインターフェイスやネットワークインターフェイスカードを備えた別のインスタンスタイプをコンピューティングノードに定義することはできません。詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「インスタンス起動時のパブリック IPv4 アドレスの割り当て」を参照してください。

詳細については、「Amazon VPC User Guide」(インターネットアクセスを有効にする) を参照してください。」の「Enabling internet access」(インターネットアクセスを有効にする)を参照してください。

AWS ParallelCluster 2 つのサブネットの使用

コンピューティングインスタンス用に既存のプライベートサブネットを使用するための構成には、次の設定が必要です。

# 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 で Elastic IP を割り当てることで実現できます。

p4d インスタンスタイプ、または複数のネットワークインターフェイスまたはネットワークインターフェイスカードを持つ別のインスタンスタイプをヘッドノードに定義する場合は、パブリックアクセスを提供するElasticIptrueように HeadNode // Networking を設定する必要があります。 AWS パブリック IPsは、単一のネットワークインターフェイスで起動されたインスタンスにのみ割り当てることができます。IP アドレスの詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「インスタンス起動時のパブリック IPv4 アドレスの割り当て」を参照してください。

この構成では、キューで使用するサブネットに NAT ゲートウェイまたは内部プロキシを設置し、コンピューティングインスタンスにインターネットアクセスを与える必要があります。

AWS ParallelCluster を使用して接続された単一のプライベートサブネット内の AWS Direct Connect

このアーキテクチャの設定には、次の設定が必要です。

# 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 に設定されている場合は、すべてのトラフィックにプロキシを使用するようにサブネットを正しく設定する必要があります。ウェブアクセスはヘッドノードとコンピューティングノードの両方に必要です。

AWS ParallelCluster スケジューラを使用する AWS Batch

をスケジューラタイプawsbatchとして使用すると、 は AWS Batch マネージドコンピューティング環境 AWS ParallelCluster を作成します。 AWS Batch 環境は、Amazon Elastic Container Service (Amazon ECS) コンテナインスタンスを管理します。これらのインスタンスは、AwsBatchQueues/Networking/SubnetIds パラメータで設定したサブネットで起動します。が正しく機能 AWS Batch するには、Amazon ECS コンテナインスタンスが Amazon ECS サービスエンドポイントと通信するための外部ネットワークアクセスが必要です。これは以下のシナリオに変換されます。

  • キューに指定されているサブネット ID は、インターネットのアクセスに NAT ゲートウェイを使用しています。この手法をお勧めします。

  • キューサブネットで起動したインスタンスは、パブリック IP アドレスを持ち、インターネットゲートウェイを介してインターネットに接続できます。

さらに、マルチノード並列ジョブ (AWS Batch ドキュメントより) に興味がある場合は以下を参照してください。

AWS Batch マルチノードの並列ジョブは Amazon ECS awsvpcネットワークモードを使用します。これにより、マルチノードの並列ジョブコンテナに Amazon EC2 インスタンスと同じネットワークプロパティが与えられます。各マルチノードの並列ジョブコンテナは、独自の Elastic Network Interface、プライマリプライベート IP アドレス、および内部の DNS ホスト名を取得します。ネットワークインターフェイスは、ホストコンピューティングリソースと同じ VPC サブネットで作成されます。コンピューティングリソースに適用されるすべてのセキュリティグループも同じく適用されます。

Amazon ECS タスクネットワークを使用している場合、awsvpc ネットワークモードは、Amazon EC2 起動タイプを使用するタスクにはパブリック IP アドレスを使用する Elastic Network Interface を提供しません。Amazon EC2 起動タイプを使用するタスクでインターネットにアクセスするには、NAT ゲートウェイを使用するよう設定されたプライベートサブネットでタスクを起動する必要があります。

クラスターがマルチノードの並列ジョブを実行できるようにするには、NAT ゲートウェイを設定する必要があります。

前述の設定と考慮事項はすべて 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 はリストタイプですが、現在サポートされているのは 1 つのサブネットのみです。

詳細については、次のトピックを参照してください。

AWS ParallelCluster インターネットにアクセスできない 1 つのサブネット内の

AWS ParallelCluster 1 つのサブネットを使用し、インターネットを使用しない

インターネットアクセスのないサブネットでは、インターネットへのインバウンド接続またはアウトバウンド接続は許可されていません。 AWS ParallelCluster この設定は、セキュリティを重視するお客様が AWS ParallelCluster リソースのセキュリティをさらに強化するのに役立ちます。 AWS ParallelCluster ノードは、インターネットアクセスのないクラスターの実行に必要なすべてのソフトウェアを含む AWS ParallelCluster AMIs から構築されます。これにより、 AWS ParallelCluster は、インターネットにアクセスできないノードを含むクラスターを作成および管理できます。

このセクションでは、クラスターの設定方法について説明します。また、インターネットにアクセスせずにクラスターを実行する場合の制限についても説明します。

VPC エンドポイントの設定

クラスターが適切に機能するためには、クラスターノードが多数の AWS サービスとやり取りできる必要があります。

クラスターノードがインターネットアクセスなしで AWS サービスとやり取りできるように、次の VPC エンドポイントを作成して設定します。

Commercial and AWS GovCloud (US) partitions
サービス サービス名 タイプ

Amazon 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
サービス サービス名 タイプ

Amazon 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
警告

/Dns/ で作成DisableManagedDnsされSlurmSettings、 が UseEc2Hostnamesに設定されているクラスターの場合true、 SlurmNodeNameは DNS によって解決されません。Slurm NodeHostName 代わりに を使用します。

注記

このメモは、 AWS ParallelCluster バージョン 3.3.0 以降では関係ありません。

3.3.0 より前の AWS ParallelCluster サポートされているバージョンの場合:

UseEc2Hostnames が に設定されている場合true、Slurm設定ファイルは AWS ParallelCluster prologおよび epilogスクリプトで設定されます。

  • 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 エンドポイントの作成の際にカスタムセキュリティグループを使用する場合は、カスタムセキュリティグループがクラスターと VPC エンドポイント間の通信を有効にしている限り AdditionalSecurityGroups は不要です。

  • Scheduler: クラスタースケジューラー

    唯一の有効な値は slurm です。インターネットにアクセスできないサブネット内のクラスターをサポートしているのは、スSlurmケジューラのみです。

  • SlurmSettings: Slurm設定。

    前のセクションRoute53 を無効にして Amazon EC2 ホスト名 を使用する」を参照してください。

制約事項

  • SSH または NICE DCV 経由のヘッドノードへの接続: クラスターに接続するときは、接続のクライアントがプライベート IP アドレスを使用してクラスターのヘッドノードにアクセスできることを確認してください。クライアントがヘッドノードと同じ VPC にない場合は、VPC のパブリックサブネットにあるプロキシインスタンスを使用してください。この要件は SSH 接続と DCV 接続の両方に適用されます。サブネットにインターネットアクセスがない場合、ヘッドノードのパブリック IP にはアクセスできません。pcluster ssh および dcv-connect コマンドは、パブリック 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 エンドポイントを作成します。