

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

# AWS ParallelCluster インターネットアクセスのない 1 つのサブネット内
<a name="aws-parallelcluster-in-a-single-public-subnet-no-internet-v3"></a>

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

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

![\[AWS ParallelCluster 1 つのサブネットを使用し、インターネットを使用しない\]](http://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/images/networking_single_subnet_no_internet.png)


**VPC エンドポイントの設定**

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

クラスターノードがインターネットアクセスなしで AWS サービスとやり取りできるように、次の [VPC エンドポイント](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints.html)を作成して設定します。

------
#### [ Commercial and AWS GovCloud (US) partitions ]


| サービス | サービス名 | タイプ | 
| --- | --- | --- | 
|  Amazon CloudWatch  |  com.amazonaws.*region-id*.logs  |  インターフェイス  | 
|  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\$1\$1  |  com.amazonaws.*region-id*.secretsmanager  |  インターフェイス  | 
|  AWS Elastic Load Balancing\$1\$1\$1  |  com.amazonaws.*region-id*.elasticloadbalancing  |  インターフェイス  | 
|  AWS Auto Scaling\$1\$1\$1  |  com.amazonaws.*region-id*.autoscaling  |  インターフェイス  | 

------
#### [ China partition ]


| サービス | サービス名 | タイプ | 
| --- | --- | --- | 
|  Amazon CloudWatch  |  com.amazonaws.*region-id*.logs  |  インターフェイス  | 
|  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\$1\$1  |  com.amazonaws.*region-id*.secretsmanager  |  インターフェイス  | 
|  AWS Elastic Load Balancing\$1\$1\$1  |  com.amazonaws.*region-id*.elasticloadbalancing  |  インターフェイス  | 
|  AWS Auto Scaling\$1\$1\$1  |  cn.com.amazonaws.*region-id*.autoscaling  |  インターフェイス  | 

------

\$1\$1 このエンドポイントは [`DirectoryService`](DirectoryService-v3.md#DirectoryService-v3.properties) が有効な場合にのみ必要で、それ以外の場合はオプションです。

\$1\$1\$1 これらのエンドポイントは [LoginNodes](LoginNodes-v3.md) が有効になっている場合にのみ必要です。それ以外の場合はオプションです。

VPC 内のすべてのインスタンスには、エンドポイントと通信するための適切なセキュリティグループが必要です。これを行うには、セキュリティグループを [`HeadNode`](HeadNode-v3.md) の下にある [`AdditionalSecurityGroups`](HeadNode-v3.md#yaml-HeadNode-Networking-AdditionalSecurityGroups) と [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues) 設定の下にある [`AdditionalSecurityGroups`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Networking-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
```

**警告**  
[`SlurmSettings`](Scheduling-v3.md#Scheduling-v3-SlurmSettings)/[`Dns`](Scheduling-v3.md#Scheduling-v3-SlurmSettings-Dns)/[`DisableManagedDns`](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-Dns-DisableManagedDns) および [`UseEc2Hostnames`](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-Dns-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
LoginNodes: # optional, if enabled, requires creation and configuration of VPC endpoints for AWS Elastic Load Balancing (ELB) and Auto Scaling services
  Pools:
    - ...
      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
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)`](HeadNode-v3.md#yaml-HeadNode-Networking-SubnetId): インターネットアクセスのないサブネット

   AWS ParallelCluster と AWS サービス間の通信を有効にするには、サブネットの VPC に VPC エンドポイントがアタッチされている必要があります。クラスターを作成する前に、サブネットで[パブリック IPv4 アドレスの自動割り当てが無効になっている](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip)ことを確認して、`pcluster` コマンドがクラスターにアクセスできることを確認します。
+ [`AdditionalSecurityGroups`](HeadNode-v3.md#yaml-HeadNode-Networking-AdditionalSecurityGroups): クラスターと VPC エンドポイント間の通信を有効にするセキュリティグループ

  オプション:
  + セキュリティグループを明示的に指定せずに VPC エンドポイントを作成すると、VPC のデフォルトのセキュリティグループが関連付けられます。そのため、デフォルトのセキュリティグループを `AdditionalSecurityGroups` に指定してください。
  + クラスターや VPC エンドポイントの作成の際にカスタムセキュリティグループを使用する場合は、カスタムセキュリティグループがクラスターと VPC エンドポイント間の通信を有効にしている限り `AdditionalSecurityGroups` は不要です。
+ [`Scheduler`](Scheduling-v3.md#yaml-Scheduling-Scheduler): クラスタースケジューラー

  唯一の有効な値は `slurm` です。インターネットアクセスのないサブネット内のクラスターをサポートするのは Slurm スケジューラーだけです。
+ [`SlurmSettings`](Scheduling-v3.md#Scheduling-v3-SlurmSettings): Slurm 設定。

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

**制限事項**
+ *SSH または Amazon DCV 経由のヘッドノードへの接続:* クラスターに接続するときは、接続のクライアントがプライベート IP アドレスを使用してクラスターのヘッドノードにアクセスできることを確認してください。クライアントがヘッドノードと同じ VPC にない場合は、VPC のパブリックサブネットにあるプロキシインスタンスを使用してください。この要件は SSH 接続と DCV 接続の両方に適用されます。サブネットにインターネットアクセスがない場合、ヘッドノードのパブリック IP にはアクセスできません。`pcluster ssh` および `dcv-connect` コマンドは、パブリック IP (存在する場合) またはプライベート IP を使用します。クラスターを作成する前に、サブネットで[パブリック IPv4 アドレスの自動割り当てが無効になっている](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip)ことを確認して、`pcluster` コマンドがクラスターにアクセスできることを確認します。

  次の例は、クラスターのヘッドノードで実行されている DCV セッションに接続する方法を示しています。プロキシ Amazon EC2 インスタンス経由で接続します。インスタンスは、PC の Amazon DCV サーバーとして、またプライベートサブネットのヘッドノードのクライアントとして機能します。

  パブリックサブネットのプロキシインスタンスを介して DCV 経由で接続します。

  1. クラスターのサブネットと同じ VPC にあるパブリックサブネットに Amazon EC2 インスタンスを作成します。

  1. Amazon DCV クライアントおよびサーバーが Amazon EC2 インスタンスにインストールされていることを確認します。

  1. ユーザー AWS ParallelCluster ポリシーをプロキシ Amazon EC2 インスタンスにアタッチします。詳細については、「[AWS ParallelCluster `pcluster` ユーザーポリシーの例](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-example-user-policies)」を参照してください。

  1. プロキシ Amazon EC2 インスタンス AWS ParallelCluster に をインストールします。

  1. DCV 経由でプロキシ Amazon EC2 インスタンスに接続します。

  1. プロキシインスタンスの `pcluster dcv-connect` コマンドを使用して、インターネットにアクセスせずにサブネット内のクラスターに接続します。
+ *他の AWS サービスとやり取りする:* が厳密に必要とするサービスのみを上記 AWS ParallelCluster に示します。クラスターが他のサービスとやり取りする必要がある場合は、対応する VPC エンドポイントを作成します。