翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
インターネットアクセスのない 1 つのサブネット内の AWS ParallelCluster
インターネットアクセスのないサブネットでは、インターネットへのインバウンド接続またはアウトバウンド接続は許可されていません。この AWS ParallelCluster 設定は、セキュリティを重視するお客様が AWS ParallelCluster リソースのセキュリティをさらに強化するのに役立ちます。AWS ParallelCluster ノードは、インターネットアクセスのない状態でクラスターを実行するために必要なすべてのソフトウェアを含む AWS ParallelCluster AMI から構築されます。これにより、AWS ParallelCluster は、インターネットにアクセスできないノードを含むクラスターを作成および管理できます。
このセクションでは、クラスターの設定方法について説明します。また、インターネットにアクセスせずにクラスターを実行する場合の制限についても説明します。
![1 つのサブネットを使用し、インターネットを使用しない AWS ParallelCluster](images/networking_single_subnet_no_internet.png)
VPC エンドポイントの設定
クラスターが正常に機能するためには、クラスターノードが多数の AWS のサービスとやり取りできる必要があります。
クラスターノードがインターネットにアクセスせずに AWS のサービスとやり取りできるように、次の VPC エンドポイントを作成して設定します。
** このエンドポイントは DirectoryService が有効な場合にのみ必要で、それ以外の場合はオプションです。
VPC 内のすべてのインスタンスには、エンドポイントと通信するための適切なセキュリティグループが必要です。これを行うには、セキュリティグループを HeadNode の下にある AdditionalSecurityGroups と SlurmQueues 設定の下にある 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 クラスターを作成する場合、AWS ParallelCluster はカスタムコンピューティングノードのホスト名 ({queue_name}-{st|dy}-{compute_resource}-{N}
など) を解決するために使用するプライベート Route 53 ホストゾーンを作成します。Route 53 は VPC エンドポイントをサポートしていないため、この機能を無効にする必要があります。さらに、AWS ParallelCluster はデフォルトの Amazon EC2 ホスト名 (ip-1-2-3-4
など) を使用するように設定する必要があります。以下の設定をクラスター設定に適用します。
... Scheduling: ... SlurmSettings: Dns: DisableManagedDns: true UseEc2Hostnames: true
警告
SlurmSettings/Dns/DisableManagedDns および UseEc2Hostnames を true
に設定して作成したクラスターの場合、Slurm NodeName
は 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 設定。
前のセクション「Route 53 を無効にし、Amazon EC2 ホスト名を使用する」を参照してください。
制約事項
-
SSH または Amazon DCV 経由のヘッドノードへの接続: クラスターに接続するときは、接続のクライアントがプライベート IP アドレスを使用してクラスターのヘッドノードにアクセスできることを確認してください。クライアントがヘッドノードと同じ VPC にない場合は、VPC のパブリックサブネットにあるプロキシインスタンスを使用してください。この要件は SSH 接続と DCV 接続の両方に適用されます。サブネットにインターネットアクセスがない場合、ヘッドノードのパブリック IP にはアクセスできません。
pcluster ssh
およびdcv-connect
コマンドは、パブリック IP (存在する場合) またはプライベート IP を使用します。クラスターを作成する前に、サブネットでパブリック IPv4 アドレスの自動割り当てが無効になっていることを確認して、pcluster
コマンドがクラスターにアクセスできることを確認します。次の例は、クラスターのヘッドノードで実行されている DCV セッションに接続する方法を示しています。プロキシ Amazon EC2 インスタンス経由で接続します。インスタンスは、PC の Amazon DCV サーバーとして、またプライベートサブネットのヘッドノードのクライアントとして機能します。
パブリックサブネットのプロキシインスタンスを介して DCV 経由で接続します。
-
クラスターのサブネットと同じ VPC にあるパブリックサブネットに Amazon EC2 インスタンスを作成します。
-
Amazon DCV クライアントおよびサーバーが Amazon EC2 インスタンスにインストールされていることを確認します。
-
AWS ParallelCluster ユーザーポリシーをプロキシ Amazon EC2 インスタンスにアタッチします。詳細については、「 pcluster ユーザーポリシーの AWS ParallelCluster の例」を参照してください。
-
プロキシ Amazon EC2 インスタンスに AWS ParallelCluster をインストールします。
-
DCV 経由でプロキシ Amazon EC2 インスタンスに接続します。
-
プロキシインスタンスの
pcluster dcv-connect
コマンドを使用して、インターネットにアクセスせずにサブネット内のクラスターに接続します。
-
-
他の AWS のサービスとのやり取り: AWS ParallelCluster に必ず必要なサービスは、上記のみです。クラスターが他のサービスとやり取りする必要がある場合は、対応する VPC エンドポイントを作成します。