

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

# HealthOmics ワークフローを VPC に接続する
<a name="workflows-vpc-networking"></a>

Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義したプライベート仮想ネットワークで AWS リソースを起動できます。VPC ネットワークモードを使用するように実行を設定することで、HealthOmics ワークフローに VPC 内のリソースへのアクセスを許可できます。VPC ネットワークを有効にすると、VPC 内のリソースにアクセスし、VPC にインターネットアクセスが設定されている場合は、パブリックインターネット経由で外部リソースに接続できます。

**注記**  
すべての HealthOmics ワークフロー実行は、HealthOmics サービスによって所有および管理されている VPC 内で実行されます。これらの VPCsは自動的に維持され、顧客には表示されません。Amazon VPC 内のリソースにアクセスするように実行を設定しても、HealthOmics が管理する VPC には影響しません。

## VPC ネットワークを使用するタイミング
<a name="vpc-when-to-use"></a>

実行で次の必要がある場合は、VPC ネットワークを使用します。
+ インターネット経由で公開されているデータセットにアクセスする (NIH データセット、学術リポジトリなど)
+ サードパーティーのライセンスサーバーまたは外部 APIs に接続する
+ 他の AWS リージョンの Amazon S3 バケットからのデータの読み取りまたは書き込み
+ プライベートネットワーク内のオンプレミスリソースにアクセスする
+ VPC 内の AWS リソースに接続する

**注記**  
実行を VPC に接続すると、その VPC 内で利用可能なリソースにのみアクセスできます。実行にインターネットへのアクセスを許可するには、インターネットアクセス用に VPC も設定する必要があります。詳細については、「[VPC 接続ワークフローのインターネットアクセス](workflows-vpc-internet.md)」を参照してください。

**Topics**
+ [VPC ネットワークを使用するタイミング](#vpc-when-to-use)
+ [ネットワークモード](#vpc-networking-modes)
+ [開始方法](#vpc-getting-started)
+ [VPC の要件](#vpc-requirements)
+ [VPC ネットワーキングのサービスにリンクされたロール](vpc-service-linked-role.md)
+ [別のアカウントの VPC への接続](workflows-vpc-cross-account.md)
+ [設定 APIs](#vpc-configuration-apis)
+ [VPC ネットワークを使用したワークフローの実行](#vpc-running-workflows)
+ [VPC ネットワークのトラブルシューティング](vpc-troubleshooting-guide.md)
+ [ベストプラクティス](#vpc-best-practices)
+ [VPC ネットワーククォータ](#vpc-quotas)

## ネットワークモード
<a name="vpc-networking-modes"></a>

HealthOmics ワークフローは、2 つのネットワークモードをサポートしています。デフォルトでは、ワークフロー実行は RESTRICTED モードで動作します。ワークフロー実行を開始するときに、実行ごとに VPC ネットワークを有効にできます。

**RESTRICTED (デフォルト)**  
実行は、同じ AWS リージョン内の Amazon S3 リソースと Amazon ECR リソースにのみアクセスできます。実行は、 AWS リージョン間の他の AWS サービス、リソース、またはパブリックインターネットにアクセスできません。

**VPC**  
実行トラフィックは、VPC サブネット内の HealthOmics によってプロビジョニングされた Elastic Network Interface (ENIs) を介してルーティングされます。NAT ゲートウェイを介して、ネットワークルーティング、セキュリティグループ、ネットワーク ACLs、インターネットアクセスを制御します。このモードでは、以下にアクセスできます。  
+ パブリックインターネットリソース (NAT Gateway 設定が必要)
+ AWS 他の リージョンの サービス
+ VPC 内のプライベートリソース
+ プライベートネットワーク内のオンプレミスリソースにアクセスする

`StartRun` API の `networkingMode`パラメータを使用してワークフロー実行を開始するときに、ネットワークモードを指定します。

## 開始方法
<a name="vpc-getting-started"></a>

このセクションでは、HealthOmics ワークフローの VPC ネットワークを初めて設定する方法について説明します。

### 前提条件
<a name="vpc-networking-prerequisites"></a>

HealthOmics ワークフローの VPC ネットワークを設定する前に、以下があることを確認してください。
+ 適切なサブネットとセキュリティグループを持つ既存の VPC。VPC はワークフローと同じリージョンにある必要があります。
+ HealthOmics がお客様のリージョンで動作するアベイラビリティーゾーンに少なくとも 1 つのサブネット。
+ HealthOmics 設定を作成および管理するための適切な IAM アクセス許可。
+ VPC ネットワーク概念 (サブネット、セキュリティグループ、ルートテーブル) の理解。
+  AWS アカウントの十分な ENI 容量。HealthOmics は、サービスにリンクされたロールを使用して VPC 内の ENIs をスケーリングおよび管理します。必要な ENIs の数は、ワークロードによって異なります。Amazon EC2 コンソールで ENI の使用状況をモニタリングして、十分な容量があることを確認します。

**重要**  
ワークフロータスク配置をサポートするために、VPC 設定にはHealthOmics がリージョンで動作するアベイラビリティーゾーンに少なくとも 1 つのサブネットが含まれている必要があります。VPC ネットワークモードを使用する場合、 AWS リージョン間でデータを転送または使用することが安全で準拠しているかどうかを判断する責任があります。

### ステップ 1: VPC を作成または設定する
<a name="vpc-step-create-vpc"></a>

プライベートサブネット、セキュリティグループ、NAT ゲートウェイ (インターネットアクセスが必要な場合) を使用して VPC を作成します。step-by-step「」を参照してください[VPC 接続ワークフローのインターネットアクセス](workflows-vpc-internet.md)。

### ステップ 2: セキュリティグループを設定する
<a name="vpc-step-security-groups"></a>

実行がアクセスする必要がある送信先へのアウトバウンドトラフィックを許可するセキュリティグループを作成します。最小特権の原則に従って、最小限必要なアウトバウンドトラフィックのみを許可するようにセキュリティグループを設定します。

設定例と詳細なガイダンスについては、「」の「セキュリティグループ」セクションを参照してください[VPC 接続ワークフローのインターネットアクセス](workflows-vpc-internet.md)。

### ステップ 3: ルートテーブルを検証する
<a name="vpc-step-route-tables"></a>

プライベートサブネットにインターネットアクセス用の NAT ゲートウェイへのルートがあることを確認します。ルートテーブルの設定例については、「」の「ルートテーブル」セクションを参照してください[VPC 接続ワークフローのインターネットアクセス](workflows-vpc-internet.md)。

**注記**  
実行をパブリックサブネットに接続しても、インターネットアクセスやパブリック IP アドレスは付与されません。インターネット接続を必要とする実行には、NAT Gateway ルートで常にプライベートサブネットを使用してください。

### ステップ 4: 設定リソースを作成する
<a name="vpc-step-create-configuration"></a>

VPC ネットワーク設定を定義する HealthOmics 設定リソースを作成します。

```
aws omics create-configuration \
  --name {{my-vpc-config}} \
  --description "VPC configuration for genomics workflows" \
  --run-configurations '{
    "vpcConfig": {
      "securityGroupIds": ["{{sg-0123456789abcdef0}}"],
      "subnetIds": [
        "{{subnet-0a1b2c3d4e5f6g7h8}}",
        "{{subnet-1a2b3c4d5e6f7g8h9}}"
      ]
    }
  }' \
  --region {{us-west-2}}
```

ネットワークリソースがプロビジョニングされると、設定は から `CREATING``ACTIVE`ステータスに移行します。これには最大 15 分かかります。

### ステップ 5: VPC ネットワークを使用してワークフロー実行を開始する
<a name="vpc-step-start-run"></a>

設定が になったら`ACTIVE`、VPC ネットワークを有効にしてワークフロー実行を開始します。

```
aws omics start-run \
  --workflow-id {{1234567}} \
  --role-arn arn:aws:iam::{{123456789012}}:role/{{OmicsWorkflowRole}} \
  --output-uri s3://{{my-bucket}}/outputs/ \
  --networking-mode VPC \
  --configuration-name {{my-vpc-config}} \
  --region {{us-west-2}}
```

### ステップ 6: 接続を確認する
<a name="vpc-step-verify"></a>

ワークフロー実行をモニタリングして、必要な外部リソースにアクセスできることを確認します。CloudWatch Logs のワークフローログで、接続の成功または失敗のメッセージを確認します。接続のテストに関する詳細なガイダンスについては、「」を参照してください[VPC 接続のテスト](workflows-vpc-internet.md#vpc-testing-connectivity)。

## VPC の要件
<a name="vpc-requirements"></a>

VPC は、次の要件を満たしている必要があります。

### サブネットの要件
<a name="vpc-subnet-requirements"></a>
+ **最小:** HealthOmics が動作するアベイラビリティーゾーンに少なくとも 1 つのサブネット
+ **最大:** 設定あたり 16 サブネット
+ **制限: **アベイラビリティーゾーンごとに最大 1 つのサブネット
+ **推奨事項:** インターネットアクセスを必要とする実行には、NAT Gateway ルートでプライベートサブネットを使用します。1 つのサブネットを指定できますが、可用性を高めるために、異なるアベイラビリティーゾーン間で複数のサブネットを使用することをお勧めします。

### セキュリティグループの要件
<a name="vpc-security-group-requirements"></a>
+ **最小:** 1 セキュリティグループ
+ **最大:** 設定あたり 5 つのセキュリティグループ
+ **要件:** すべてのセキュリティグループはサブネットと同じ VPC に属している必要があります

セキュリティグループは、実行のインバウンドトラフィックとアウトバウンドトラフィックを制御します。

**注記**  
すべてのサブネットとセキュリティグループは、同じ VPC に属している必要があります。

### ネットワークインターフェイス要件
<a name="vpc-eni-requirements"></a>

HealthOmics は、VPC に Elastic Network Interface (ENIs) をプロビジョニングして、実行をネットワークに接続します。 AWS アカウントに十分な ENI 容量があることを確認します (デフォルトの制限: リージョンあたり 5,000 ENIs)。

HealthOmics によって作成された ENIs には、次のタグが付けられます。

```
"TagSet": [
  {
    "Key": "Service",
    "Value": "HealthOmics"
  },
  {
    "Key": "eniType",
    "Value": "CUSTOMER"
  }
]
```

**重要**  
HealthOmics によって作成された ENIs を変更または削除しないでください。これらのネットワークインターフェイスを変更すると、サービスの遅延やワークフロー実行の中断が発生する可能性があります。

## 設定 APIs
<a name="vpc-configuration-apis"></a>

HealthOmics には、VPC 設定を作成、管理、削除するための APIs が用意されています。設定は、複数のワークフロー実行で再利用できます。

**Topics**
+ [CreateConfiguration](#vpc-create-configuration)
+ [GetConfiguration](#vpc-get-configuration)
+ [ListConfigurations](#vpc-list-configurations)
+ [DeleteConfiguration](#vpc-delete-configuration)

### CreateConfiguration
<a name="vpc-create-configuration"></a>

VPC ネットワーク設定を使用して新しい設定リソースを作成します。詳しい手順については、「[ステップ 4: 設定リソースを作成する](#vpc-step-create-configuration)」を参照してください。

**リクエストの構文:**

```
aws omics create-configuration \
  --name {{configuration-name}} \
  --description {{description}} \
  --run-configurations '{"vpcConfig":{"securityGroupIds":["{{security-group-id}}"],"subnetIds":["{{subnet-id}}"]}}' \
  --tags Key={{key}},Value={{value}} \
  --region {{region}}
```

**パラメータ :**
+ **name** (必須) — 設定の一意の名前 (最大 50 文字）。
+ **description** (オプション) — 設定の説明。
+ **run-configurations** (オプション) — VPC 設定:
  + `vpcConfig.securityGroupIds` — 1～5 のセキュリティグループ IDsのリスト。
  + `vpcConfig.subnetIds` — 1～16 個のサブネット IDsのリスト。
+ **tags** (オプション) — リソースタグ。

**レスポンス**:

```
{
  "arn": "arn:aws:omics:{{region}}:{{account-id}}:configuration/{{configuration-name}}",
  "uuid": "{{configuration-uuid}}",
  "name": "{{configuration-name}}",
  "runConfigurations": {
    "vpcConfig": {
      "securityGroupIds": ["{{security-group-id}}"],
      "subnetIds": ["{{subnet-id}}"],
      "vpcId": "{{vpc-id}}"
    }
  },
  "status": "CREATING",
  "creationTime": "{{timestamp}}",
  "tags": {}
}
```

**設定ステータス値:**
+ **CREATING** — 設定が作成され、ネットワークリソースがプロビジョニングされています (最大 15 分）。
+ **ACTIVE** — 設定を使用する準備ができました。
+ **DELETING** — 設定は削除中です。
+ **DELETED** — 設定は削除されました。

### GetConfiguration
<a name="vpc-get-configuration"></a>

特定の設定の詳細を取得します。

**リクエストの構文:**

```
aws omics get-configuration \
  --name {{configuration-name}} \
  --region {{region}}
```

**レスポンス**:

```
{
  "arn": "arn:aws:omics:{{region}}:{{account-id}}:configuration/{{configuration-name}}",
  "uuid": "{{configuration-uuid}}",
  "name": "{{configuration-name}}",
  "runConfigurations": {
    "vpcConfig": {
      "securityGroupIds": ["{{security-group-id}}"],
      "subnetIds": ["{{subnet-id}}"],
      "vpcId": "{{vpc-id}}"
    }
  },
  "status": "ACTIVE",
  "creationTime": "{{timestamp}}",
  "tags": {}
}
```

### ListConfigurations
<a name="vpc-list-configurations"></a>

アカウント内のすべての設定を一覧表示します。

**リクエストの構文:**

```
aws omics list-configurations \
  --region {{region}}
```

**レスポンス**:

```
{
  "items": [
    {
      "arn": "arn:aws:omics:{{region}}:{{account-id}}:configuration/{{configuration-name}}",
      "name": "{{configuration-name}}",
      "description": "{{description}}",
      "status": "ACTIVE",
      "creationTime": "{{timestamp}}"
    }
  ]
}
```

### DeleteConfiguration
<a name="vpc-delete-configuration"></a>

設定を削除します。アクティブなワークフロー実行で現在使用されている設定は削除できません。

**リクエストの構文:**

```
aws omics delete-configuration \
  --name {{configuration-name}} \
  --region {{region}}
```

**注記**  
設定ステータスは、ネットワークリソースのクリーンアップ中に DELETING に変わり、プロセスが完了すると DELETED に変わります。

## VPC ネットワークを使用したワークフローの実行
<a name="vpc-running-workflows"></a>

### VPC ネットワークを使用した実行の開始
<a name="vpc-start-run"></a>

ワークフロー実行で VPC ネットワークを使用するには、 `networking-mode`パラメータと を指定します`configuration-name`。

```
aws omics start-run \
  --workflow-id {{1234567}} \
  --role-arn arn:aws:iam::{{123456789012}}:role/{{OmicsWorkflowRole}} \
  --output-uri s3://{{my-bucket}}/outputs/ \
  --networking-mode VPC \
  --configuration-name {{my-vpc-config}} \
  --region {{us-west-2}}
```

**パラメータ :**
+ **networking-mode** — を に設定`VPC`して VPC ネットワークを有効にします。デフォルトは `RESTRICTED` です。
+ **configuration-name** (必須) — 使用する設定の名前。

### 実行ネットワーク設定の表示
<a name="vpc-get-run"></a>

`GetRun` を使用して、実行のネットワーク設定を表示します。

```
aws omics get-run \
  --id {{run-id}} \
  --region {{region}}
```

レスポンスには、ネットワークモード、設定の詳細、VPC 設定が含まれます。次の例は、レスポンスの VPC 関連フィールドを示しています。

```
{
  "arn": "arn:aws:omics:{{region}}:{{account-id}}:run/{{run-id}}",
  "id": "{{run-id}}",
  "status": "{{status}}",
  "workflowId": "{{workflow-id}}",
  "networkingMode": "VPC",
  "configuration": {
    "name": "{{configuration-name}}",
    "arn": "arn:aws:omics:{{region}}:{{account-id}}:configuration/{{configuration-name}}",
    "uuid": "{{configuration-uuid}}"
  },
  "vpcConfig": {
    "subnets": ["{{subnet-id-1}}", "{{subnet-id-2}}"],
    "securityGroupIds": ["{{security-group-id}}"],
    "vpcId": "{{vpc-id}}"
  }
}
```

### 設定のイミュータビリティ
<a name="vpc-config-immutability"></a>

ワークフローは、実行の開始時に存在していた設定のスナップショットを使用します。実行中の設定は、アクティブな実行に影響を与えることなく、実行中に安全に変更または削除できます。

### コールキャッシュに関する考慮事項
<a name="vpc-call-caching"></a>

コールキャッシュで VPC ネットワークを使用する場合は、ワークフローエンジンが適切に設定されていることを確認します。エンジンごとのコールキャッシュの詳細なガイダンスについては、「」を参照してください[エンジン固有のキャッシュ機能](workflow-cache-per-engine.md)。

**重要**  
非決定的または動的リソース (パブリックインターネット上のサードパーティーデータベースなど) に接続する場合は、実行出力に影響を与える可能性のある動的データセットがキャッシュされないように、ワークフローでキャッシュタスクのオプトアウト機能を使用することを検討してください。

## ベストプラクティス
<a name="vpc-best-practices"></a>

### セキュリティ
<a name="vpc-bp-security"></a>

1. **最小特権のセキュリティグループを使用します。**最低限必要なアウトバウンドトラフィックのみを許可します。可能な場合は、0.0.0.0/0 の代わりに特定の送信先 CIDR ブロックを使用します。各セキュリティグループルールの目的を文書化します。

1. **環境ごとに設定を区切ります。**開発、ステージング、本番環境用に個別の設定を作成します。環境ごとに異なる VPCs またはサブネットを使用します。組織の設定に適切なタグを適用します。

1. **ネットワークモニタリングを実装します。**セキュリティ分析のために VPC フローログを有効にします。異常なトラフィックパターンの CloudWatch アラームを設定します。CloudTrail ログの設定変更を定期的に確認します。

1. ** AWS サービスに VPC エンドポイントを使用します。**Amazon S3、Amazon ECR、およびその他の AWS サービスの VPC エンドポイントを設定します。これにより、NAT Gateway のコストを削減し、パフォーマンスを向上させ、トラフィックを AWS ネットワーク内に維持することでセキュリティを強化できます。

### パフォーマンス
<a name="vpc-bp-performance"></a>

1. **ネットワークスケーリングを計画します。**ネットワークスループットは 10 Gbps から始まり、時間の経過とともに 100 Gbps にスケールします。高スループットのニーズに対応するには、事前に計画し、事前ウォーミングをリクエストしてください。ネットワークメトリクスをモニタリングして、ワークフローの要件を理解します。

1. **アベイラビリティーゾーンごとに NAT ゲートウェイをデプロイします。**本番ワークロードには、AZ ごとに 1 つの NAT ゲートウェイを使用します。これにより、耐障害性とスループットが向上し、AZ 間のデータ転送コストを削減できます。

1. **設定を再利用します。**複数のワークフロー間で共有できる設定を作成します。これにより、設定管理のオーバーヘッドが軽減され、一貫したネットワーク設定が保証されます。

1. **本番環境で使用する前に設定をテストします。**テストワークフローでネットワーク接続を検証します。セキュリティグループルールで必要なトラフィックが許可されていることを確認します。マルチ AZ 設定でフェイルオーバーシナリオをテストします。

### コスト最適化
<a name="vpc-bp-cost"></a>

1. **NAT Gateway の代わりに VPC エンドポイントを使用します。** AWS サービスアクセスには、VPC エンドポイントを使用します (データ処理料金はかかりません）。Amazon S3 Gateway エンドポイントには追加料金はかかりません。インターフェイスエンドポイントには時間単位の料金がかかりますが、NAT Gateway よりもコスト効率が高くなります。

1. **データ転送コストをモニタリングします。**でのデータ転送には料金はかかりません。インターネットへのデータ転送には、標準の AWS データ転送レートが発生します。クロスリージョンデータ転送のレートは高くなります。VPC 関連のコストを追跡するには、 AWS Cost Explorer を使用します。

1. **適切なサイズの NAT Gateway デプロイ。**開発には、すべての AZs に 1 つの NAT ゲートウェイを使用します。本稼働環境では、耐障害性のために AZ ごとに 1 つの NAT ゲートウェイを使用します。NAT ゲートウェイの使用率をモニタリングして、オーバープロビジョニングを回避します。

1. **未使用の設定を削除します。**使用されなくなった設定を定期的に確認して削除します。タグを使用して、設定の所有権と目的を特定します。

### 運用中
<a name="vpc-bp-operational"></a>

1. **わかりやすい設定名を使用します。**名前に環境、目的、チームを含めます (例: `prod-genomics-vpc`、`dev-clinical-trials-vpc`)。

1. **すべての設定にタグを付けます。**すべてのリソースで一貫したタグ付け戦略を使用します。環境、所有者、CostCenter、および目的のタグを含めます。

1. **ネットワーク要件を文書化します。**各設定がどの外部サービスにアクセスするかを文書化します。セキュリティグループルールとその目的のマップを維持します。ネットワークアーキテクチャ図をチームと共有します。

## VPC ネットワーククォータ
<a name="vpc-quotas"></a>

次の表に、VPC ネットワーク設定のクォータを示します。


| リソース | デフォルトの制限 | 調整可能 | 
| --- | --- | --- | 
| アカウントあたりの最大設定数 | 10 | [Yes (はい)] | 
| 設定あたりの最大セキュリティグループ数 | 5 | いいえ | 
| 設定あたりの最大サブネット数 | 16 | いいえ | 
| アベイラビリティーゾーンあたりの最大サブネット数 | 1 | いいえ | 
| CreateConfiguration API TPS | 1 | はい | 
| リージョンあたりの Elastic Network Interface (顧客 VPC) | 5,000 | はい | 

クォータの引き上げをリクエストするには、[Service Quotas コンソール](https://console.aws.amazon.com/servicequotas/home)を開き、**AWS サービス**を選択し、**AWS HealthOmics** を検索し、引き上げるクォータを選択し、**クォータの引き上げをリクエスト**を選択します。クォータ引き上げリクエストは通常 1～2 営業日以内に処理されます。