8.3.3. Terraform を使用した Virtual Private Cloud の作成


Terraform は、確立されたテンプレートを使用してさまざまなリソースを作成できるツールです。Terraform をデフォルトオプションで使用すると、Red Hat OpenShift Service on AWS クラスター用の Virtual Private Cloud を作成できます。

注記

Terraform の手順はテストとデモンストレーションを目的としています。独自のインストールでは、独自に使用するために VPC にいくつかの変更を加える必要があります。この Terraform スクリプトは、クラスターをインストールする予定のリージョンと同じリージョンで使用してください。この例では、us-east-2 を使用します。

前提条件

  • マシンに Terraform バージョン 1.4.0 以降がインストールされている。
  • マシンに Git がインストールされている。

手順

  1. シェルプロンプトを開き、次のコマンドを実行して Terraform VPC リポジトリーのクローンを作成します。

    $ git clone https://github.com/openshift-cs/terraform-vpc-example
  2. 次のコマンドを実行して、作成したディレクトリーに移動します。

    $ cd terraform-vpc-example/zero-egress
  3. 次のコマンドを実行して、Terraform ファイルを開始します。

    $ terraform init

    このプロセスが完了すると、初期化を確認するメッセージが表示されます。

  4. 既存の Terraform テンプレートに基づいて VPC Terraform プランを構築するには、plan コマンドを実行します。AWS リージョン、アベイラビリティーゾーン、CIDR ブロック、プライベートサブネットを含める必要があります。クラスター名を指定することもできます。terraform plan が完了すると、rosa-zero-egress.tfplan ファイルが hypershift-tf ディレクトリーに追加されます。オプションの詳細は、Terraform VPC リポジトリーの README ファイル を参照してください。

    $ terraform plan -out rosa-zero-egress.tfplan -var region=<aws_region> \
          -var 'availability_zones=<availability_zones>' \
          -var vpc_cidr_block=<vpc_cidr_block> \
          -var 'private_subnets=<private_subnets>'

    ここでは、以下のようになります。

    <aws_region>
    AWS リージョンを入力します。
    < 利用可能ゾーン >
    VPC のアベイラビリティーゾーンを入力します。たとえば、ap-southeast-1 を使用する VPC の場合、アベイラビリティーゾーンとして ["ap-southeast-1a", "ap-southeast-1b", "ap-southeast-1c"] を使用します。
    <vpc_cidr_block>
    VPC の CIDR ブロックを入力します。例: 10.0.0.0/16
    < プライベートサブネット >
    VPC 用に作成する各サブネットを入力します。たとえば、["10.0.0.0/24"、"10.0.1.0/24"、"10.0.2.0/24"]
  5. 次のコマンドを実行して、このプランファイルを適用して VPC を構築します。

    $ terraform apply rosa-zero-egress.tfplan

8.3.3.1. サブネットへのタグ付け

VPC を使用して Red Hat OpenShift Service on AWS クラスターを作成する前に、VPC サブネットにタグを付ける必要があります。自動化されたサービス事前チェックにより、これらのリソースが正しくタグ付けされているかどうかが検証されます。

次の表は、リソースにタグを付ける方法を示しています。

Expand
表8.5 必須サブネットタグ
リソースキー

パブリックサブネット

kubernetes.io/role/elb

1 または値なし

プライベートサブネット

kubernetes.io/role/internal-elb

1 または値なし

注記

該当する場合は、少なくとも 1 つのプライベートサブネットと 1 つのパブリックサブネットにタグを付ける必要があります。

手順

  • ターミナルでリソースにタグを付けます。

    • パブリックサブネットの場合は、次のコマンドを実行します。

      $ aws ec2 create-tags --resources <public_subnet_id> --region <aws_region> --tags Key=kubernetes.io/role/elb,Value=1
    • プライベートサブネットの場合は、次のコマンドを実行します。

      $ aws ec2 create-tags --resources <private_subnet_id> --region <aws_region> --tags Key=kubernetes.io/role/internal-elb,Value=1

検証

  • 次のコマンドを実行して、タグが正しいことを確認します。

    $ aws ec2 describe-tags --filters "Name=resource-id,Values=<subnet_id>"

    出力例

    TAGS    Name                    <subnet_id>        subnet  <prefix>-subnet-public1-us-east-1a
    TAGS    kubernetes.io/role/elb  <subnet_id>        subnet  1

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る