Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

<Terraform学習>AWSにVPCを作成してみる

Last updated at Posted at 2025-03-01

前提条件

学習のため細かく分けて作成していきます。

バージョン情報

  • Terraform: Terraform v1.10.5
  • AWS CLI: aws-cli/2.24.11 Python/3.12.9 Windows/11 exe/AMD64

作業

AWS IAMユーザの作成

AWS CLI用のユーザを作成します。

  1. awscliユーザを作成
  2. アクセスキー作成
  3. IAM > セキュリティ認証情報 > アクセスキーを作成
  4. ユースケース:コマンドラインインターフェイス (CLI)

AWS CLI の設定

AWS CLI の認証情報を設定します。

PS C:\Users\username> aws configure
AWS Access Key ID [None]: AKIAxxxxxxxxxxxxxxxxxx  # アクセスキーを入力
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxx  # シークレットキーを入力
Default region name [None]: us-west-2  # デフォルトのリージョンを設定
Default output format [None]: json  # 出力フォーマットを設定

設定された情報は以下のファイルに保存されます。

PS C:\Users\username\.aws> cat config
[default]
region = us-west-2
output = json

PS C:\Users\username\.aws> cat credentials
[default]
aws_access_key_id = AKIAxxxxxxxxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxx

Terraformの作業ディレクトリ作成

Terraform の作業ディレクトリを作成し、移動します。

PS C:\Users\username> mkdir C:\work\Terraform\01_basic
PS C:\Users\username> cd C:\work\Terraform\01_basic

Terraform 用の設定ファイル 01_vpc.tf を作成しました。

Terraformの初期化/プラン作成/apply実行

Terraform の初期化

Terraform のバックエンドとプロバイダを初期化します。

PS C:\work\Terraform\01_basic> terraform.exe init

Terraform のプラン作成

リソースの作成計画を確認します。

PS C:\work\Terraform\01_basic> terraform plan

出力結果の一部:

Terraform will perform the following actions:

  # aws_vpc.terraform-vpc will be created
  + resource "aws_vpc" "terraform-vpc" {
      + cidr_block = "10.0.0.0/16"
      + enable_dns_hostnames = true
      + enable_dns_support = true
      + tags = {
          + "Name" = "terraform"
        }
    }

Terraform の適用

リソースを適用し、VPC を作成します。

PS C:\work\Terraform\01_basic> terraform apply

プロンプトが表示されるので、yes を入力。

Enter a value: yes

適用が完了すると、以下のように表示されます。

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

作成したVPCの確認

作成した VPC を AWS CLI で確認します。

PS C:\work\Terraform\01_basic> aws ec2 describe-vpcs

出力結果の一部:

{
    "Vpcs": [
        {
            "VpcId": "vpc-xxxxxxxxxxxxxxxxxxx",
            "CidrBlock": "10.0.0.0/16",
            "Tags": [
                {
                    "Key": "Name",
                    "Value": "terraform"
                }
            ],
            "State": "available"
        }
    ]
}

AWS VPCパラメータについて

パラメータ一覧 参照:

Terraform_Resource: aws_vpc

パラメータ名 説明
cidr_block VPCのIPv4 CIDRブロック。明示的に設定するか、IPAMを使用して ipv4_netmask_length から導出可能。
instance_tenancy VPCに起動するインスタンスのテナンシーオプション。デフォルトは defaultdedicated を選択すると、専用ホストで実行され、追加料金が発生する。
ipv4_ipam_pool_id このVPCのCIDRを割り当てるためのIPv4 IPAMプールのID。IPAMを使用してIPアドレス管理を自動化できる。
ipv4_netmask_length VPCに割り当てるIPv4 CIDRのネットマスク長。ipv4_ipam_pool_id の指定が必要。
ipv6_cidr_block IPAMプールからリクエストするIPv6 CIDRブロック。明示的に設定するか、ipv6_netmask_length から導出可能。
ipv6_ipam_pool_id IPv6用のIPAMプールID。assign_generated_ipv6_cidr_block と競合する。
ipv6_netmask_length IPAMプールからリクエストするネットマスク長。ipv6_cidr_block と競合する。値は 4460 の4単位の増分で指定可能。
ipv6_cidr_block_network_border_group VPCにIPv6 CIDRを割り当てる際のデフォルトのネットワークボーダーグループ(通常はVPCのリージョン)。ローカルゾーンなど特定のグループに変更可能。
enable_dns_support VPCでDNSサポートを有効/無効にするブール値。デフォルトは true
enable_network_address_usage_metrics VPCでネットワークアドレス使用状況のメトリクスを有効にするかどうかを示す。デフォルトは false
enable_dns_hostnames VPCでDNSホスト名のサポートを有効/無効にするブール値。デフォルトは false
assign_generated_ipv6_cidr_block Amazonが提供する /56 プレフィックス長のIPv6 CIDRブロックを要求。範囲やサイズの指定は不可。デフォルトは falseipv6_ipam_pool_id と競合。
tags リソースに割り当てるタグのマップ。プロバイダーのデフォルトタグ設定がある場合、キーが一致すると上書きされる。
arn VPCのAmazon Resource Name (ARN)。
id VPCのID。
instance_tenancy VPC内で起動するインスタンスのテナンシー。
dhcp_options_id VPCのDHCPオプションID。
enable_dns_support VPCのDNSサポートが有効かどうか。
enable_network_address_usage_metrics VPCのネットワークアドレス使用メトリクスが有効かどうか。
enable_dns_hostnames VPCのDNSホスト名サポートが有効かどうか。
main_route_table_id このVPCに関連付けられたメインルートテーブルのID。aws_main_route_table_association を使用して変更可能。
default_network_acl_id VPC作成時にデフォルトで作成されるネットワークACLのID。
default_security_group_id VPC作成時にデフォルトで作成されるセキュリティグループのID。
default_route_table_id VPC作成時にデフォルトで作成されるルートテーブルのID。
ipv6_association_id IPv6 CIDRブロックの関連付けID。
ipv6_cidr_block_network_border_group ネットワークボーダーグループのゾーン名。
owner_id VPCを所有するAWSアカウントのID。
tags_all リソースに割り当てられたタグのマップ(プロバイダーのデフォルトタグを含む)。

まとめ

  • AWS CLI の設定を行い、Terraform で VPC を作成しました。
  • terraform init で初期化し、terraform plan でプランを確認。
  • terraform apply を実行し、VPC の作成を確認。
  • aws ec2 describe-vpcs で作成された VPC を確認。

この学習を通じて、AWS に VPC を Terraform で作成する手順を理解しました。
次回は サブネットの設定 を行います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?