terraform-aws-vpc - AWSでVPCリソースを作成するTerraformモジュール🇺🇦

(Terraform module which creates VPC resources on AWS 🇺🇦)

Created at: 2017-08-29 00:00:21
Language: HCL
License: Apache-2.0

AWSVPCTerraformモジュール

AWSでVPCリソースを作成するTerraformモジュール。

SWUbanner

使用法

module "vpc" {
  source = "terraform-aws-modules/vpc/aws"

  name = "my-vpc"
  cidr = "10.0.0.0/16"

  azs             = ["eu-west-1a", "eu-west-1b", "eu-west-1c"]
  private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
  public_subnets  = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]

  enable_nat_gateway = true
  enable_vpn_gateway = true

  tags = {
    Terraform = "true"
    Environment = "dev"
  }
}

外部NATゲートウェイIP

デフォルトでは、このモジュールはVPCのNATゲートウェイ用に新しいElasticIPをプロビジョニングします。つまり、新しいVPCを作成すると、新しいIPが割り当てられ、そのVPCが破棄されると、それらのIPが解放されます。VPCが破棄されて再作成された後でも、同じIPを維持すると便利な場合があります。そのために、既存のIPをNATゲートウェイに割り当てることができます。これにより、VPCが破壊されてそれらのIPが解放されるのを防ぎ、再作成されたVPCが同じIPを使用できるようにします。

これを実現するには、VPCモジュール宣言の外部にIPを割り当てます。

resource "aws_eip" "nat" {
  count = 3

  vpc = true
}

次に、割り当てられたIPをパラメーターとしてこのモジュールに渡します。

module "vpc" {
  source = "terraform-aws-modules/vpc/aws"

  # The rest of arguments are omitted for brevity

  enable_nat_gateway  = true
  single_nat_gateway  = false
  reuse_nat_ips       = true                    # <= Skip creation of EIPs for the NAT Gateways
  external_nat_ip_ids = "${aws_eip.nat.*.id}"   # <= IPs specified here as input to the module
}

この例では、3つのNATゲートウェイをプロビジョニングするため(

single_nat_gateway = false
3つのサブネットがあるため)、3つのIPを割り当てることに注意してください。一方、、の場合、
single_nat_gateway = true
1つの
aws_eip.nat
IPを割り当てるだけで済みます。モジュールへのIPの受け渡しは、2つの変数
reuse_nat_ips = true
とを設定することによって行われます
external_nat_ip_ids = "${aws_eip.nat.*.id}"

NATゲートウェイのシナリオ

このモジュールは、NATゲートウェイを作成するための3つのシナリオをサポートします。それぞれについて、対応するセクションでさらに詳しく説明します。

  • サブネットごとに1つのNATゲートウェイ(デフォルトの動作)
    • enable_nat_gateway = true
    • single_nat_gateway = false
    • one_nat_gateway_per_az = false
  • 単一のNATゲートウェイ
    • enable_nat_gateway = true
    • single_nat_gateway = true
    • one_nat_gateway_per_az = false
  • アベイラビリティーゾーンごとに1つのNATゲートウェイ
    • enable_nat_gateway = true
    • single_nat_gateway = false
    • one_nat_gateway_per_az = true

single_nat_gateway
とが両方
one_nat_gateway_per_az
に設定されている場合は
true
single_nat_gateway
が優先されます。

サブネットごとに1つのNATゲートウェイ(デフォルト)

デフォルトでは、モジュールは

max()
、プライベートサブネットリスト(、、、、
database_subnets
および)
elasticache_subnets
に基づいて作成するNATゲートウェイの数を決定します。後者はNATゲートウェイを介したインターネットアクセスがないように設計されているため、モジュールはの数を考慮しません。たとえば、構成が次のようになっている場合:
private_subnets
redshift_subnets
intra_subnets

database_subnets    = ["10.0.21.0/24", "10.0.22.0/24"]
elasticache_subnets = ["10.0.31.0/24", "10.0.32.0/24"]
private_subnets     = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24", "10.0.4.0/24", "10.0.5.0/24"]
redshift_subnets    = ["10.0.41.0/24", "10.0.42.0/24"]
intra_subnets       = ["10.0.51.0/24", "10.0.52.0/24", "10.0.53.0/24"]

次に、プライベートサブネットCIDRブロックが指定さ

5
れているため、NATゲートウェイが作成されます。
5

単一のNATゲートウェイ

の場合

single_nat_gateway = true
、すべてのプライベートサブネットは、この単一のNATゲートウェイを介してインターネットトラフィックをルーティングします。NATゲートウェイは、ブロック内の最初のパブリックサブネットに配置されます
public_subnets

アベイラビリティーゾーンごとに1つのNATゲートウェイ

one_nat_gateway_per_az = true
およびの場合
single_nat_gateway = false
、モジュールはで指定した各アベイラビリティーゾーンに1つのNATゲートウェイを配置します
var.azs
。この機能フラグの使用には、いくつかの要件があります。

  • 変数を指定する
    var.azs
    必要があります。
  • で指定されたパブリックサブネットCIDRブロックの数は、で指定されたアベイラビリティーゾーンの数以上である
    public_subnets
    必要
    var.azs
    があります。これは、各NATゲートウェイに展開先の専用パブリックサブネットがあることを確認するためです。

「プライベート」サブネットと「イントラ」サブネット

デフォルトでは、NATゲートウェイが有効になっている場合、プライベートサブネットは、上記のオプションを使用して構成されたNATゲートウェイを指すインターネットトラフィックのルートで構成されます。

インターネットルーティングを持たないプライベートサブネットが必要な場合(RFC1918カテゴリ1サブネットの意味で)、

intra_subnets
を指定する必要があります。ユースケースの例は、VPC内でのAWS Lambda関数の設定です。ここで、AWS Lambda関数は、AWSサービスの内部リソースまたはVPCエンドポイントにトラフィックを渡すだけで済みます。

AWSLambda関数は受信したトラフィックに比例してElasticNetworkInterfaceを割り当てます(続きを読む)ので、生成するトラフィックを完全にVPCの内部に保ちながら、そのような割り当てに大きなプライベートサブネットを割り当てると便利です。

intra_subnet_tags
他のサブネットタイプと同様に、タグを追加できます。

VPCフローログ

VPCフローログを使用すると、特定のネットワークインターフェイス(ENI)、サブネット、またはVPC全体のIPトラフィックをキャプチャできます。このモジュールは、VPC全体のVPCフローログの有効化または無効化をサポートします。サブネットまたはENIのVPCフローログが必要な場合は、aws_flow_logリソースを使用してこのモジュールの外部で管理する必要があります。

VPCフローログの例

デフォルト

file_format
plain-text
です。
parquet
ログをApacheParquet形式で書き込むように指定することもできます。

flow_log_file_format = "parquet"

権限の境界

組織でVPCフローログロールにアクセス許可境界をアタッチする必要がある場合は、アクセス許可境界ポリシーのARNを

vpc_flow_log_permissions_boundary
引数として指定してください。フローログを公開するために必要なIAMポリシーの詳細をご覧ください。

条件付き作成

count
Terraform 0.13より前は、モジュールブロックで指定できませんでした。古い(0.13より前の)バージョンのTerraformでモジュールのリソースの作成を切り替えたい場合は、
create_vpc
引数を使用できます。

# This VPC will not be created
module "vpc" {
  source = "terraform-aws-modules/vpc/aws"

  create_vpc = false
  # ... omitted
}

RDSインスタンスへのパブリックアクセス

次の引数を指定することで、RDSインスタンスにパブリックアクセスできると便利な場合があります(本番環境では推奨されません)。

  create_database_subnet_group           = true
  create_database_subnet_route_table     = true
  create_database_internet_gateway_route = true

  enable_dns_hostnames = true
  enable_dns_support   = true

ネットワークアクセス制御リスト(ACLまたはNACL)

このモジュールは、ネットワークACLとルールを管理できます。VPCが作成されると、AWSはデフォルトのネットワークACLを作成します。これは、このモジュールを使用して制御できます(

manage_default_network_acl = true
)。

また、各タイプのサブネットには、サブネットごとにカスタムルールを持つ独自のネットワークACLがある場合があります。たとえば、

public_dedicated_network_acl = true
パブリックサブネットに専用のネットワークACLを使用するように設定します。の値を設定
public_inbound_acl_rules
public_outbound_acl_rules
、パブリックサブネットに必要なすべてのNACLルールを指定します(
variables.tf
デフォルト値と構造についてはを参照してください)。

デフォルトでは、すべてのサブネットがデフォルトのネットワークACLに関連付けられています。

Redshiftクラスターへのパブリックアクセス

次の引数を指定することで、Redshiftクラスターにパブリックアクセスできると便利な場合があります(たとえば、Kinesisでアクセスする必要がある場合-KinesisのVPCエンドポイントはまだRedshiftでサポートされていません)。

  enable_public_redshift = true  # <= By default Redshift subnets will be associated with the private route table

トランジットゲートウェイ(TGW)の統合

このVPCモジュールを、TGWリソースとVPCアタッチメントの作成を処理するterraform -aws-transit-gatewayモジュールと統合することができます。そこにある完全な例を参照してください。

貢献

問題/質問/機能のリクエストを問題セクションで報告します。

完全な貢献ガイドラインはここでカバーされています

要件

名前 バージョン
テラフォーム > = 0.13.1
aws > = 3.63

プロバイダー

名前 バージョン
aws > = 3.63

モジュール

モジュールはありません。

資力

名前 タイプ
aws_cloudwatch_log_group.flow_log 資源
aws_customer_gateway.this 資源
aws_db_subnet_group.database 資源
aws_default_network_acl.this 資源
aws_default_route_table.default 資源
aws_default_security_group.this 資源
aws_default_vpc.this 資源
aws_egress_only_internet_gateway.this 資源
aws_eip.nat 資源
aws_elasticache_subnet_group.elasticache 資源
aws_flow_log.this 資源
aws_iam_policy.vpc_flow_log_cloudwatch 資源
aws_iam_role.vpc_flow_log_cloudwatch 資源
aws_iam_role_policy_attachment.vpc_flow_log_cloudwatch 資源
aws_internet_gateway.this 資源
aws_nat_gateway.this 資源
aws_network_acl.database 資源
aws_network_acl.elasticache 資源
aws_network_acl.intra 資源
aws_network_acl.outpost 資源
aws_network_acl.private 資源
aws_network_acl.public 資源
aws_network_acl.redshift 資源
aws_network_acl_rule.database_inbound 資源
aws_network_acl_rule.database_outbound 資源
aws_network_acl_rule.elasticache_inbound 資源
aws_network_acl_rule.elasticache_outbound 資源
aws_network_acl_rule.intra_inbound 資源
aws_network_acl_rule.intra_outbound 資源
aws_network_acl_rule.outpost_inbound 資源
aws_network_acl_rule.outpost_outbound 資源
aws_network_acl_rule.private_inbound 資源
aws_network_acl_rule.private_outbound 資源
aws_network_acl_rule.public_inbound 資源
aws_network_acl_rule.public_outbound 資源
aws_network_acl_rule.redshift_inbound 資源
aws_network_acl_rule.redshift_outbound 資源
aws_redshift_subnet_group.redshift 資源
aws_route.database_internet_gateway 資源
aws_route.database_ipv6_egress 資源
aws_route.database_nat_gateway 資源
aws_route.private_ipv6_egress 資源
aws_route.private_nat_gateway 資源
aws_route.public_internet_gateway 資源
aws_route.public_internet_gateway_ipv6 資源
aws_route_table.database 資源
aws_route_table.elasticache 資源
aws_route_table.intra 資源
aws_route_table.private 資源
aws_route_table.public 資源
aws_route_table.redshift 資源
aws_route_table_association.database 資源
aws_route_table_association.elasticache 資源
aws_route_table_association.intra 資源
aws_route_table_association.outpost 資源
aws_route_table_association.private 資源
aws_route_table_association.public 資源
aws_route_table_association.redshift 資源
aws_route_table_association.redshift_public 資源
aws_subnet.database 資源
aws_subnet.elasticache 資源
aws_subnet.intra 資源
aws_subnet.outpost 資源
aws_subnet.private 資源
aws_subnet.public 資源
aws_subnet.redshift 資源
aws_vpc.this 資源
aws_vpc_dhcp_options.this 資源
aws_vpc_dhcp_options_association.this 資源
aws_vpc_ipv4_cidr_block_association.this 資源
aws_vpn_gateway.this 資源
aws_vpn_gateway_attachment.this 資源
aws_vpn_gateway_route_propagation.intra 資源
aws_vpn_gateway_route_propagation.private 資源
aws_vpn_gateway_route_propagation.public 資源
aws_iam_policy_document.flow_log_cloudwatch_assume_role 情報源
aws_iam_policy_document.vpc_flow_log_cloudwatch 情報源

入力

名前 説明 タイプ デフォルト 必須
amazon_side_asn ゲートウェイのAmazon側の自律システム番号(ASN)。デフォルトでは、仮想プライベートゲートウェイは現在のデフォルトのAmazonASNで作成されます。
string
"64512"
番号
assign_ipv6_address_on_creation サブネットにIPv6アドレスを割り当てます。IPv6CIDRを変更するには無効にする必要があります。これは、map_public_ip_on_launchに相当するIPv6です。
bool
false
番号
azs リージョン内のアベイラビリティーゾーンの名前またはIDのリスト
list(string)
[]
番号
cidr VPCのCIDRブロック。デフォルト値は有効なCIDRですが、AWSでは受け入れられないため、オーバーライドする必要があります
string
"0.0.0.0/0"
番号
create_database_internet_gateway_route パブリックデータベースアクセス用のインターネットゲートウェイルートを作成する必要があるかどうかを制御します
bool
false
番号
create_database_nat_gateway_route データベースサブネットへのインターネットアクセスを提供するためにNATゲートウェイルートを作成する必要があるかどうかを制御します
bool
false
番号
create_database_subnet_group データベースサブネットグループを作成するかどうかを制御します(nb database_subnetsも設定する必要があります)
bool
true
番号
create_database_subnet_route_table データベース用に個別のルートテーブルを作成する必要があるかどうかを制御します
bool
false
番号
create_egress_only_igw 出力専用インターネットゲートウェイを作成するかどうかと、それに関連するルートを制御します。
bool
true
番号
create_elasticache_subnet_group elasticacheサブネットグループを作成する必要があるかどうかを制御します
bool
true
番号
create_elasticache_subnet_route_table エラスティック用の個別のルートテーブルを作成する必要があるかどうかを制御します
bool
false
番号
create_flow_log_cloudwatch_iam_role VPCフローログのIAMロールを作成するかどうか
bool
false
番号
create_flow_log_cloudwatch_log_group VPCフローログのCloudWatchロググループを作成するかどうか
bool
false
番号
create_igw パブリックサブネットおよびそれらを接続する関連ルート用にインターネットゲートウェイを作成するかどうかを制御します。
bool
true
番号
create_redshift_subnet_group 赤方偏移サブネットグループを作成する必要があるかどうかを制御します
bool
true
番号
create_redshift_subnet_route_table Redshift用に個別のルートテーブルを作成する必要があるかどうかを制御します
bool
false
番号
create_vpc VPCを作成するかどうかを制御します(ほとんどすべてのリソースに影響します)
bool
true
番号
customer_gateway_tags カスタマーゲートウェイの追加タグ
map(string)
{}
番号
customer_gateways カスタマーゲートウェイの属性のマップ(BGP ASNおよびゲートウェイのインターネットルーティング可能な外部IPアドレス)
map(map(any))
{}
番号
database_acl_tags データベースサブネットネットワークACLの追加タグ
map(string)
{}
番号
database_dedicated_network_acl データベースサブネットに専用のネットワークACL(デフォルトではない)とカスタムルールを使用するかどうか
bool
false
番号
database_inbound_acl_rules データベースサブネットのインバウンドネットワークACLルール
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
番号
database_outbound_acl_rules データベースサブネットのアウトバウンドネットワークACLルール
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
番号
database_route_table_tags データベースルートテーブルの追加タグ
map(string)
{}
番号
database_subnet_assign_ipv6_address_on_creation データベースサブネットにIPv6アドレスを割り当てます。IPv6CIDRを変更するには無効にする必要があります。これは、map_public_ip_on_launchに相当するIPv6です。
bool
null
番号
database_subnet_group_name データベースサブネットグループの名前
string
null
番号
database_subnet_group_tags データベースサブネットグループの追加タグ
map(string)
{}
番号
database_subnet_ipv6_prefixes Amazonが提供する/56プレフィックスベース10整数(0〜256)に基づいてIPv6データベースサブネットIDを割り当てます。対応するIPv4サブネットリストと同じ長さである必要があります
list(string)
[]
番号
database_subnet_suffix データベースサブネット名に追加するサフィックス
string
"db"
番号
database_subnet_tags データベースサブネットの追加タグ
map(string)
{}
番号
database_subnets データベースサブネットのリスト
list(string)
[]
番号
default_network_acl_egress デフォルトのネットワークACLに設定する出力ルールのマップのリスト
list(map(string))
[
{
"action": "allow",
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_no": 100,
"to_port": 0
},
{
"action": "allow",
"from_port": 0,
"ipv6_cidr_block": "::/0",
"protocol": "-1",
"rule_no": 101,
"to_port": 0
}
]
番号
default_network_acl_ingress デフォルトのネットワークACLに設定する入力ルールのマップのリスト
list(map(string))
[
{
"action": "allow",
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_no": 100,
"to_port": 0
},
{
"action": "allow",
"from_port": 0,
"ipv6_cidr_block": "::/0",
"protocol": "-1",
"rule_no": 101,
"to_port": 0
}
]
番号
default_network_acl_name デフォルトのネットワークACLで使用される名前
string
null
番号
default_network_acl_tags デフォルトのネットワークACLの追加タグ
map(string)
{}
番号
default_route_table_name デフォルトのルートテーブルで使用される名前
string
null
番号
default_route_table_propagating_vgws 伝播用の仮想ゲートウェイのリスト
list(string)
[]
番号
default_route_table_routes ルートの構成ブロック。https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/default_route_table#routeを参照してください
list(map(string))
[]
番号
default_route_table_tags デフォルトのルートテーブルの追加タグ
map(string)
{}
番号
default_security_group_egress デフォルトのセキュリティグループに設定する出力ルールのマップのリスト
list(map(string))
[]
番号
default_security_group_ingress デフォルトのセキュリティグループに設定する入力ルールのマップのリスト
list(map(string))
[]
番号
default_security_group_name デフォルトのセキュリティグループで使用される名前
string
null
番号
default_security_group_tags デフォルトのセキュリティグループの追加タグ
map(string)
{}
番号
default_vpc_enable_classiclink デフォルトのVPCでClassicLinkを有効にするにはtrueである必要があります
bool
false
番号
default_vpc_enable_dns_hostnames デフォルトのVPCでDNSホスト名を有効にするにはtrueである必要があります
bool
false
番号
default_vpc_enable_dns_support デフォルトのVPCでDNSサポートを有効にするにはtrueである必要があります
bool
true
番号
default_vpc_name デフォルトのVPCで使用される名前
string
null
番号
default_vpc_tags デフォルトVPCの追加タグ
map(string)
{}
番号
dhcp_options_domain_name DHCPオプションセットのDNS名を指定します(enable_dhcp_optionsをtrueに設定する必要があります)
string
""
番号
dhcp_options_domain_name_servers DHCPオプションセットのDNSサーバーアドレスのリストを指定します。デフォルトはAWS提供です(enable_dhcp_optionsをtrueに設定する必要があります)
list(string)
[
"AmazonProvidedDNS"
]
番号
dhcp_options_netbios_name_servers DHCPオプションセットのnetbiosサーバーのリストを指定します(enable_dhcp_optionsをtrueに設定する必要があります)
list(string)
[]
番号
dhcp_options_netbios_node_type DHCPオプションセットのnetbiosnode_typeを指定します(enable_dhcp_optionsをtrueに設定する必要があります)
string
""
番号
dhcp_options_ntp_servers DHCPオプションセットのNTPサーバーのリストを指定します(enable_dhcp_optionsをtrueに設定する必要があります)
list(string)
[]
番号
dhcp_options_tags DHCPオプションセットの追加タグ(enable_dhcp_optionsをtrueに設定する必要があります)
map(string)
{}
番号
elasticache_acl_tags ElasticacheサブネットネットワークACLの追加タグ
map(string)
{}
番号
elasticache_dedicated_network_acl 専用ネットワークACL(デフォルトではない)とelasticacheサブネットのカスタムルールを使用するかどうか
bool
false
番号
elasticache_inbound_acl_rules ElasticacheサブネットのインバウンドネットワークACLルール
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
番号
elasticache_outbound_acl_rules ElasticacheサブネットのアウトバウンドネットワークACLルール
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
番号
elasticache_route_table_tags elasticacheルートテーブルの追加タグ
map(string)
{}
番号
elasticache_subnet_assign_ipv6_address_on_creation ElasticacheサブネットにIPv6アドレスを割り当てます。IPv6CIDRを変更するには無効にする必要があります。これは、map_public_ip_on_launchに相当するIPv6です。
bool
null
番号
elasticache_subnet_group_name elasticacheサブネットグループの名前
string
null
番号
elasticache_subnet_group_tags elasticacheサブネットグループの追加タグ
map(string)
{}
番号
elasticache_subnet_ipv6_prefixes Assigns IPv6 elasticache subnet id based on the Amazon provided /56 prefix base 10 integer (0-256). Must be of equal length to the corresponding IPv4 subnet list
list(string)
[]
no
elasticache_subnet_suffix Suffix to append to elasticache subnets name
string
"elasticache"
no
elasticache_subnet_tags Additional tags for the elasticache subnets
map(string)
{}
no
elasticache_subnets A list of elasticache subnets
list(string)
[]
no
enable_classiclink Should be true to enable ClassicLink for the VPC. Only valid in regions and accounts that support EC2 Classic.
bool
null
no
enable_classiclink_dns_support Should be true to enable ClassicLink DNS Support for the VPC. Only valid in regions and accounts that support EC2 Classic.
bool
null
no
enable_dhcp_options Should be true if you want to specify a DHCP options set with a custom domain name, DNS servers, NTP servers, netbios servers, and/or netbios server type
bool
false
no
enable_dns_hostnames Should be true to enable DNS hostnames in the VPC
bool
false
no
enable_dns_support Should be true to enable DNS support in the VPC
bool
true
no
enable_flow_log Whether or not to enable VPC Flow Logs
bool
false
no
enable_ipv6 Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block.
bool
false
no
enable_nat_gateway Should be true if you want to provision NAT Gateways for each of your private networks
bool
false
no
enable_public_redshift Controls if redshift should have public routing table
bool
false
no
enable_vpn_gateway Should be true if you want to create a new VPN Gateway resource and attach it to the VPC
bool
false
no
external_nat_ip_ids List of EIP IDs to be assigned to the NAT Gateways (used in combination with reuse_nat_ips)
list(string)
[]
no
external_nat_ips List of EIPs to be used for
nat_public_ips
output (used in combination with reuse_nat_ips and external_nat_ip_ids)
list(string)
[]
no
flow_log_cloudwatch_iam_role_arn The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group. When flow_log_destination_arn is set to ARN of Cloudwatch Logs, this argument needs to be provided.
string
""
no
flow_log_cloudwatch_log_group_kms_key_id The ARN of the KMS Key to use when encrypting log data for VPC flow logs.
string
null
no
flow_log_cloudwatch_log_group_name_prefix Specifies the name prefix of CloudWatch Log Group for VPC flow logs.
string
"/aws/vpc-flow-log/"
no
flow_log_cloudwatch_log_group_retention_in_days Specifies the number of days you want to retain log events in the specified log group for VPC flow logs.
number
null
no
flow_log_destination_arn The ARN of the CloudWatch log group or S3 bucket where VPC Flow Logs will be pushed. If this ARN is a S3 bucket the appropriate permissions need to be set on that bucket's policy. When create_flow_log_cloudwatch_log_group is set to false this argument must be provided.
string
""
no
flow_log_destination_type Type of flow log destination. Can be s3 or cloud-watch-logs.
string
"cloud-watch-logs"
no
flow_log_file_format (Optional) The format for the flow log. Valid values:
plain-text
,
parquet
.
string
"plain-text"
no
flow_log_hive_compatible_partitions (Optional) Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3.
bool
false
no
flow_log_log_format The fields to include in the flow log record, in the order in which they should appear.
string
null
no
flow_log_max_aggregation_interval パケットのフローがキャプチャされ、フローログレコードに集約される最大時間間隔。有効な値:
60
秒または
600
秒。
number
600
番号
flow_log_per_hour_partition (オプション)1時間ごとにフローログを分割するかどうかを示します。これにより、クエリのコストと応答時間が削減されます。
bool
false
番号
flow_log_traffic_type キャプチャするトラフィックのタイプ。有効な値:ACCEPT、REJECT、ALL。
string
"ALL"
番号
igw_tags インターネットゲートウェイの追加タグ
map(string)
{}
番号
instance_tenancy VPCに起動されたインスタンスのテナンシーオプション
string
"default"
番号
intra_acl_tags サブネット内ネットワークACLの追加タグ
map(string)
{}
番号
intra_dedicated_network_acl 専用ネットワークACL(デフォルトではない)とイントラサブネットのカスタムルールを使用するかどうか
bool
false
番号
intra_inbound_acl_rules サブネット内インバウンドネットワークACL
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
番号
intra_outbound_acl_rules イントラサブネットアウトバウンドネットワークACL
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
番号
intra_route_table_tags イントラルートテーブルの追加タグ
map(string)
{}
番号
intra_subnet_assign_ipv6_address_on_creation イントラサブネットにIPv6アドレスを割り当てます。IPv6CIDRを変更するには無効にする必要があります。これは、map_public_ip_on_launchに相当するIPv6です。
bool
null
番号
intra_subnet_ipv6_prefixes Amazonが提供する/56プレフィックスベース10整数(0〜256)に基づいてIPv6イントラサブネットIDを割り当てます。対応するIPv4サブネットリストと同じ長さである必要があります
list(string)
[]
番号
intra_subnet_suffix イントラサブネット名に追加するサフィックス
string
"intra"
番号
intra_subnet_tags イントラサブネット用の追加タグ
map(string)
{}
番号
intra_subnets イントラサブネットのリスト
list(string)
[]
番号
manage_default_network_acl デフォルトのネットワークACLを採用および管理するにはtrueである必要があります
bool
false
番号
manage_default_route_table デフォルトのルートテーブルを管理するにはtrueである必要があります
bool
false
番号
manage_default_security_group デフォルトのセキュリティグループを採用および管理するには、trueである必要があります
bool
false
番号
manage_default_vpc デフォルトのVPCを採用および管理するにはtrueである必要があります
bool
false
番号
map_public_ip_on_launch 起動時にパブリックIPを自動割り当てしたくない場合はfalseにする必要があります
bool
true
番号
名前 すべてのリソースで識別子として使用される名前
string
""
番号
nat_eip_tags NATEIPの追加タグ
map(string)
{}
番号
nat_gateway_destination_cidr_block プライベートNATゲートウェイのカスタム宛先ルートを渡すために使用されます。指定しない場合、デフォルトの0.0.0.0/0が宛先ルートとして使用されます。
string
"0.0.0.0/0"
番号
nat_gateway_tags NATゲートウェイ用の追加タグ
map(string)
{}
番号
one_nat_gateway_per_az アベイラビリティーゾーンごとに1つのNATゲートウェイのみが必要な場合はtrueである必要があります。
var.azs
を設定する必要があり、
public_subnets
作成される数はで指定されたアベイラビリティーゾーンの数以上になるようにします
var.azs
bool
false
番号
outpost_acl_tags 前哨基地ネットワークACLの追加タグ
map(string)
{}
番号
outpost_arn サブネットを作成する前哨基地のARN。
string
null
番号
outpost_az 前哨基地が停泊しているアリゾナ州。
string
null
番号
outpost_dedicated_network_acl 専用ネットワークACL(デフォルトではない)と前哨基地サブネットのカスタムルールを使用するかどうか
bool
false
番号
outpost_inbound_acl_rules 前哨サブネットインバウンドネットワークACL
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
番号
outpost_outbound_acl_rules 前哨基地のサブネットアウトバウンドネットワークACL
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
番号
outpost_subnet_assign_ipv6_address_on_creation 前哨基地サブネットにIPv6アドレスを割り当てます。IPv6CIDRを変更するには無効にする必要があります。これは、map_public_ip_on_launchに相当するIPv6です。
bool
null
番号
outpost_subnet_ipv6_prefixes Amazonが提供する/56プレフィックスベース10整数(0〜256)に基づいてIPv6前哨サブネットIDを割り当てます。対応するIPv4サブネットリストと同じ長さである必要があります
list(string)
[]
番号
outpost_subnet_suffix 前哨基地のサブネット名に追加するサフィックス
string
"outpost"
番号
outpost_subnet_tags 前哨基地のサブネット用の追加タグ
map(string)
{}
番号
outpost_subnets VPC内の前哨基地サブネットのリスト
list(string)
[]
番号
private_acl_tags プライベートサブネットネットワークACLの追加タグ
map(string)
{}
番号
private_dedicated_network_acl Whether to use dedicated network ACL (not default) and custom rules for private subnets
bool
false
no
private_inbound_acl_rules Private subnets inbound network ACLs
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
no
private_outbound_acl_rules Private subnets outbound network ACLs
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
no
private_route_table_tags Additional tags for the private route tables
map(string)
{}
no
private_subnet_assign_ipv6_address_on_creation Assign IPv6 address on private subnet, must be disabled to change IPv6 CIDRs. This is the IPv6 equivalent of map_public_ip_on_launch
bool
null
no
private_subnet_ipv6_prefixes Assigns IPv6 private subnet id based on the Amazon provided /56 prefix base 10 integer (0-256). Must be of equal length to the corresponding IPv4 subnet list
list(string)
[]
no
private_subnet_suffix Suffix to append to private subnets name
string
"private"
no
private_subnet_tags Additional tags for the private subnets
map(string)
{}
no
private_subnets A list of private subnets inside the VPC
list(string)
[]
no
propagate_intra_route_tables_vgw Should be true if you want route table propagation
bool
false
no
propagate_private_route_tables_vgw Should be true if you want route table propagation
bool
false
no
propagate_public_route_tables_vgw Should be true if you want route table propagation
bool
false
no
public_acl_tags Additional tags for the public subnets network ACL
map(string)
{}
no
public_dedicated_network_acl Whether to use dedicated network ACL (not default) and custom rules for public subnets
bool
false
no
public_inbound_acl_rules Public subnets inbound network ACLs
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
no
public_outbound_acl_rules Public subnets outbound network ACLs
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
no
public_route_table_tags Additional tags for the public route tables
map(string)
{}
no
public_subnet_assign_ipv6_address_on_creation Assign IPv6 address on public subnet, must be disabled to change IPv6 CIDRs. This is the IPv6 equivalent of map_public_ip_on_launch
bool
null
no
public_subnet_ipv6_prefixes Assigns IPv6 public subnet id based on the Amazon provided /56 prefix base 10 integer (0-256). Must be of equal length to the corresponding IPv4 subnet list
list(string)
[]
no
public_subnet_suffix Suffix to append to public subnets name
string
"public"
no
public_subnet_tags Additional tags for the public subnets
map(string)
{}
no
public_subnets A list of public subnets inside the VPC
list(string)
[]
no
putin_khuylo Do you agree that Putin doesn't respect Ukrainian sovereignty and territorial integrity? More info: https://en.wikipedia.org/wiki/Putin_khuylo!
bool
true
no
redshift_acl_tags Additional tags for the redshift subnets network ACL
map(string)
{}
no
redshift_dedicated_network_acl Whether to use dedicated network ACL (not default) and custom rules for redshift subnets
bool
false
no
redshift_inbound_acl_rules Redshift subnets inbound network ACL rules
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
no
redshift_outbound_acl_rules Redshift subnets outbound network ACL rules
list(map(string))
[
{
"cidr_block": "0.0.0.0/0",
"from_port": 0,
"protocol": "-1",
"rule_action": "allow",
"rule_number": 100,
"to_port": 0
}
]
no
redshift_route_table_tags Additional tags for the redshift route tables
map(string)
{}
no
redshift_subnet_assign_ipv6_address_on_creation Assign IPv6 address on redshift subnet, must be disabled to change IPv6 CIDRs. This is the IPv6 equivalent of map_public_ip_on_launch
bool
null
no
redshift_subnet_group_name Name of redshift subnet group
string
null
no
redshift_subnet_group_tags Additional tags for the redshift subnet group
map(string)
{}
no
redshift_subnet_ipv6_prefixes Assigns IPv6 redshift subnet id based on the Amazon provided /56 prefix base 10 integer (0-256). Must be of equal length to the corresponding IPv4 subnet list
list(string)
[]
no
redshift_subnet_suffix Suffix to append to redshift subnets name
string
"redshift"
no
redshift_subnet_tags Additional tags for the redshift subnets
map(string)
{}
no
redshift_subnets A list of redshift subnets
list(string)
[]
no
reuse_nat_ips Should be true if you don't want EIPs to be created for your NAT Gateways and will instead pass them in via the 'external_nat_ip_ids' variable
bool
false
no
secondary_cidr_blocks List of secondary CIDR blocks to associate with the VPC to extend the IP Address pool
list(string)
[]
no
single_nat_gateway Should be true if you want to provision a single shared NAT Gateway across all of your private networks
bool
false
no
tags A map of tags to add to all resources
map(string)
{}
no
vpc_flow_log_permissions_boundary The ARN of the Permissions Boundary for the VPC Flow Log IAM Role
string
null
no
vpc_flow_log_tags Additional tags for the VPC Flow Logs
map(string)
{}
no
vpc_tags Additional tags for the VPC
map(string)
{}
no
vpn_gateway_az The Availability Zone for the VPN Gateway
string
null
no
vpn_gateway_id ID of VPN Gateway to attach to the VPC
string
""
no
vpn_gateway_tags Additional tags for the VPN gateway
map(string)
{}
no

Outputs

Name Description
azs A list of availability zones specified as argument to this module
cgw_arns List of ARNs of Customer Gateway
cgw_ids List of IDs of Customer Gateway
database_internet_gateway_route_id ID of the database internet gateway route
database_ipv6_egress_route_id ID of the database IPv6 egress route
database_nat_gateway_route_ids List of IDs of the database nat gateway route
database_network_acl_arn ARN of the database network ACL
database_network_acl_id ID of the database network ACL
database_route_table_association_ids List of IDs of the database route table association
database_route_table_ids List of IDs of database route tables
database_subnet_arns List of ARNs of database subnets
database_subnet_group ID of database subnet group
database_subnet_group_name Name of database subnet group
database_subnets List of IDs of database subnets
database_subnets_cidr_blocks List of cidr_blocks of database subnets
database_subnets_ipv6_cidr_blocks List of IPv6 cidr_blocks of database subnets in an IPv6 enabled VPC
default_network_acl_id The ID of the default network ACL
default_route_table_id The ID of the default route table
default_security_group_id The ID of the security group created by default on VPC creation
default_vpc_arn The ARN of the Default VPC
default_vpc_cidr_block The CIDR block of the Default VPC
default_vpc_default_network_acl_id The ID of the default network ACL of the Default VPC
default_vpc_default_route_table_id The ID of the default route table of the Default VPC
default_vpc_default_security_group_id The ID of the security group created by default on Default VPC creation
default_vpc_enable_dns_hostnames Whether or not the Default VPC has DNS hostname support
default_vpc_enable_dns_support Whether or not the Default VPC has DNS support
default_vpc_id The ID of the Default VPC
default_vpc_instance_tenancy インスタンスのテナンシーはデフォルトVPC内でスピンアップします
default_vpc_main_route_table_id デフォルトVPCに関連付けられたメインルートテーブルのID
dhcp_options_id DHCPオプションのID
egress_only_internet_gateway_id 出力専用インターネットゲートウェイのID
elasticache_network_acl_arn ElasticacheネットワークACLのARN
elasticache_network_acl_id ElasticacheネットワークACLのID
elasticache_route_table_association_ids ElasticacheルートテーブルアソシエーションのIDのリスト
elasticache_route_table_ids ElasticacheルートテーブルのIDのリスト
elasticache_subnet_arns elasticacheサブネットのARNのリスト
elasticache_subnet_group elasticacheサブネットグループのID
elasticache_subnet_group_name elasticacheサブネットグループの名前
elasticache_subnets ElasticacheサブネットのIDのリスト
elasticache_subnets_cidr_blocks elasticacheサブネットのcidr_blocksのリスト
elasticache_subnets_ipv6_cidr_blocks IPv6対応VPCのelasticacheサブネットのIPv6cidr_blocksのリスト
igw_arn インターネットゲートウェイのARN
igw_id インターネットゲートウェイのID
intra_network_acl_arn イントラネットワークACLのARN
intra_network_acl_id イントラネットワークACLのID
intra_route_table_association_ids イントラルートテーブルアソシエーションのIDのリスト
intra_route_table_ids イントラルートテーブルのIDのリスト
intra_subnet_arns イントラサブネットのARNのリスト
intra_subnets イントラサブネットのIDのリスト
intra_subnets_cidr_blocks イントラサブネットのcidr_blocksのリスト
intra_subnets_ipv6_cidr_blocks IPv6対応VPCのイントラサブネットのIPv6cidr_blocksのリスト
名前 このモジュールの引数として指定されたVPCの名前
nat_ids AWSNATゲートウェイ用に作成されたElasticIPの割り当てIDのリスト
nat_public_ips AWSNATゲートウェイ用に作成されたパブリックElasticIPのリスト
natgw_ids NATゲートウェイIDのリスト
outpost_network_acl_arn 前哨ネットワークACLのARN
outpost_network_acl_id 前哨ネットワークACLのID
outpost_subnet_arns 前哨基地サブネットのARNのリスト
outpost_subnets 前哨基地サブネットのIDのリスト
outpost_subnets_cidr_blocks 前哨基地サブネットのcidr_blocksのリスト
outpost_subnets_ipv6_cidr_blocks IPv6対応VPCの前哨基地サブネットのIPv6cidr_blocksのリスト
private_ipv6_egress_route_ids ipv6出力ルートのIDのリスト
private_nat_gateway_route_ids プライベートNATゲートウェイルートのIDのリスト
private_network_acl_arn プライベートネットワークACLのARN
private_network_acl_id プライベートネットワークACLのID
private_route_table_association_ids プライベートルートテーブルアソシエーションのIDのリスト
private_route_table_ids プライベートルートテーブルのIDのリスト
private_subnet_arns プライベートサブネットのARNのリスト
private_subnets プライベートサブネットのIDのリスト
private_subnets_cidr_blocks プライベートサブネットのcidr_blocksのリスト
private_subnets_ipv6_cidr_blocks IPv6対応VPC内のプライベートサブネットのIPv6cidr_blocksのリスト
public_internet_gateway_ipv6_route_id IPv6インターネットゲートウェイルートのID
public_internet_gateway_route_id インターネットゲートウェイルートのID
public_network_acl_arn パブリックネットワークACLのARN
public_network_acl_id パブリックネットワークACLのID
public_route_table_association_ids パブリックルートテーブルアソシエーションのIDのリスト
public_route_table_ids パブリックルートテーブルのIDのリスト
public_subnet_arns パブリックサブネットのARNのリスト
public_subnets パブリックサブネットのIDのリスト
public_subnets_cidr_blocks パブリックサブネットのcidr_blocksのリスト
public_subnets_ipv6_cidr_blocks IPv6対応VPC内のパブリックサブネットのIPv6cidr_blocksのリスト
redshift_network_acl_arn 赤方偏移ネットワークACLのARN
redshift_network_acl_id 赤方偏移ネットワークACLのID
redshift_public_route_table_association_ids パブリックredshidtルートテーブルアソシエーションのIDのリスト
redshift_route_table_association_ids 赤方偏移ルートテーブルアソシエーションのIDのリスト
redshift_route_table_ids 赤方偏移ルートテーブルのIDのリスト
redshift_subnet_arns 赤方偏移サブネットのARNのリスト
redshift_subnet_group 赤方偏移サブネットグループのID
redshift_subnets 赤方偏移サブネットのIDのリスト
redshift_subnets_cidr_blocks 赤方偏移サブネットのcidr_blocksのリスト
redshift_subnets_ipv6_cidr_blocks IPv6対応VPCの赤方偏移サブネットのIPv6cidr_blocksのリスト
this_customer_gateway カスタマーゲートウェイ属性のマップ
vgw_arn VPNゲートウェイのARN
vgw_id VPNゲートウェイのID
vpc_arn VPCのARN
vpc_cidr_block VPCのCIDRブロック
vpc_enable_dns_hostnames VPCがDNSホスト名をサポートしているかどうか
vpc_enable_dns_support VPCがDNSをサポートしているかどうか
vpc_flow_log_cloudwatch_iam_role_arn ログをCloudwatchロググループにプッシュするときに使用されるIAMロールのARN
vpc_flow_log_destination_arn VPCフローログの宛先のARN
vpc_flow_log_destination_type VPCフローログの宛先のタイプ
vpc_flow_log_id フローログリソースのID
vpc_id VPCのID
vpc_instance_tenancy インスタンスのテナンシーはVPC内でスピンアップします
vpc_ipv6_association_id IPv6CIDRブロックのアソシエーションID
vpc_ipv6_cidr_block IPv6CIDRブロック
vpc_main_route_table_id このVPCに関連付けられているメインルートテーブルのID
vpc_owner_id VPCを所有するAWSアカウントのID
vpc_secondary_cidr_blocks VPCのセカンダリCIDRブロックのリスト

著者

モジュールは、これらの素晴らしい貢献者の助けを借りて、AntonBabenkoによって保守されています。

ライセンス

Apache2ライセンス。詳細については、ライセンスを参照してください。

ロシアとベラルーシのユーザー向けの追加情報