Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions examples/external-subnets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Simple VPC with External Subnets and Network ACLs

Configuration in this directory creates set of VPC resources along with network ACLs for external subnets.

## Usage

To run this example you need to execute:

```bash
$ terraform init
$ terraform plan
$ terraform apply
```

Note that this example may create resources which can cost money (AWS Elastic IP, for example). Run `terraform destroy` when you don't need these resources.

102 changes: 102 additions & 0 deletions examples/external-subnets/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
provider "aws" {
region = local.region
}

locals {
name = "ex-${replace(basename(path.cwd), "_", "-")}"
region = "eu-west-1"

external_subnets = {
example = {
subnets = {
eu-central-1a = "10.0.201.0/24"
eu-central-1b = "10.0.202.0/24"
eu-central-1c = "10.0.203.0/24"
}
acls = {
inbound = []
outbound = []
}
}
}


tags = {
Example = local.name
GithubRepo = "terraform-aws-vpc"
GithubOrg = "terraform-aws-modules"
}
}

################################################################################
# VPC Module
################################################################################

module "vpc" {
source = "../../"

name = local.name
cidr = "10.0.0.0/16"

azs = ["${local.region}a", "${local.region}b", "${local.region}c"]
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_ipv6 = true

enable_nat_gateway = false
single_nat_gateway = true

public_subnet_tags = {
Name = "overridden-name-public"
}

tags = local.tags

vpc_tags = {
Name = "vpc-name"
}
}

################################################################################
# VPC Module External Subnets
################################################################################

module "external_subnets" {
source = "../../modules/external-subnets"

name = local.name

vpc_id = module.vpc.vpc_id
vgw_id = module.vpc.vgw_id

external_subnets = local.external_subnets

tags = local.tags

depends_on = [
module.vpc
]
}

################################################################################
# VPC Module Network ACLs
################################################################################

module "network_acls" {
source = "../../modules/network-acls"

vpc_id = module.vpc.vpc_id
subnet_ids = module.external_subnets.external_subnets

acl_name = "example"

tags = {
Owner = "user"
Environment = "dev"
}

depends_on = [
module.vpc
]
}
Loading