SlideShare a Scribd company logo
Hands-On
Terraform Module for
AWS Landing Zone
registry.terraform.io/modules/MitocGroup/landing-zone
2018: AWS Landing Zone
Secure Multi-Accounts Strategy
AWS Landing Zone is a solution that helps customers more quickly set up
a secure, multi-account AWS environment based on AWS best practices.
https://aws.amazon.com/solutions/aws-landing-zone
AWS Landing Zone  AWS Control Tower
2019: AWS Control Tower
“AWS Landing Zone” as a Service
AWS Control Tower provides the easiest way to set up and govern a
new, secure, multi-account AWS environment based on best practices
established through AWS’ experience working with thousands of
enterprises as they move to the cloud.
https://aws.amazon.com/controltower
AWS Landing Zone  AWS Control Tower
Existing Resources
Although CloudFormation
added recently the ability to
import existing resources,
current ALZ implementation
still doesn’t support an easy
and flexible process to reuse
existing AWS environments.
Customers Feedback (1/3)
Below are 3 key issues identified by enterprise customers
working hands-on with our professional services organization.
AWS Single Sign-On
Although AWS SSO is an
amazing service, most of our
customers would not replace
their existing SSO solutions.
Current ALZ implementation
doesn’t allow switching it with
something like Azure AD, Okta
or PingIdentity.
CloudFormation
Enterprise customers who are
already using Terraform as
their default infrastructure-as-
code solution often avoid
CloudFormation based
implementations, sometimes
justifying as out of scope.
Customers Feedback (2/3)
Below are 3 key issues identified by enterprise customers
working hands-on with our professional services organization.
Existing Resources
Although CloudFormation
added recently the ability to
import existing resources,
current ALZ implementation
still doesn’t support an easy
and flexible process to reuse
existing AWS environments.
AWS Single Sign-On
Although AWS SSO is an
amazing service, most of our
customers would not replace
their existing SSO solutions.
Current ALZ implementation
doesn’t allow switching it with
something like Azure AD, Okta
or PingIdentity.
CloudFormation
Enterprise customers who are
already using Terraform as
their default infrastructure-as-
code solution often avoid
CloudFormation based
implementations, sometimes
justifying as out of scope.
Existing Resources
Although CloudFormation
added recently the ability to
import existing resources,
current ALZ implementation
still doesn’t support an easy
and flexible process to reuse
existing AWS environments.
Customers Feedback (3/3)
Below are 3 key issues identified by enterprise customers
working hands-on with our professional services organization.
AWS Single Sign-On
Although AWS SSO is an
amazing service, most of our
customers would not replace
their existing SSO solutions.
Current ALZ implementation
doesn’t allow switching it with
something like Azure AD, Okta
or PingIdentity.
CloudFormation
Enterprise customers who are
already using Terraform as
their default infrastructure-as-
code solution often avoid
CloudFormation based
implementations, sometimes
justifying as out of scope.
About Presenter
Eugene
ISTRATI
@eistrati
▪ CTO, Tech Partner @ Mitoc Group
▪ Ex-AWS, ex-Hearst, ex-GrubHub
▪ Certified AWS Solutions Architect
▪ 20 Years in IT; 10 Years in Cloud
Computing; 5 Years in Enterprise IT
▪ Focusing on: Automation, DevOps,
Serverless
Terraform Module for
AWS Landing Zone
https://registry.terraform.io/modules/MitocGroup/landing-zone
1. ALZ Module’s Providers
2. ALZ Module’s Components
3. ALZ Module’s TFVARs
4. ALZ Module’s Terraform Backend
5. Light Demo: ALZ Module in Action
Agenda for Today
https://registry.terraform.io/modules/MitocGroup/landing-zone
https://registry.terraform.io/modules/MitocGroup/landing-zone
▪ Publicly available on TF Registry:
https://registry.terraform.io
CODE EDITOR
module "landing_zone" {
source = "MitocGroup/landing-zone/aws"
version = "0.2.4"
landing_zone_providers = var.landing_zone_providers
landing_zone_components = var.landing_zone_components
terraform_backend = var.terraform_backend
}
Landing Zone Module’s Anatomy (1/3)
▪ Publicly available on TF Registry:
https://registry.terraform.io
▪ Expected input: list of providers
and components
CODE EDITOR
module "landing_zone" {
source = "MitocGroup/landing-zone/aws"
version = "0.2.4"
landing_zone_providers = var.landing_zone_providers
landing_zone_components = var.landing_zone_components
terraform_backend = var.terraform_backend
}
Landing Zone Module’s Anatomy (2/3)
▪ Publicly available on TF Registry:
https://registry.terraform.io
▪ Expected input: list of providers
and components
▪ Optional input: terraform
backend
CODE EDITOR
module "landing_zone" {
source = "MitocGroup/landing-zone/aws"
version = "0.2.4"
landing_zone_providers = var.landing_zone_providers
landing_zone_components = var.landing_zone_components
terraform_backend = var.terraform_backend
}
Landing Zone Module’s Anatomy (3/3)
ALZ Module’s Providers
1 Module’s Provider === 1 AWS Account + Region
▪ Required: default provider
CODE EDITOR
landing_zone_providers = {
default = {
account_id = "123456789012"
region = "us-east-1"
},
core_account_security = {
account_id = ”987654321098"
region = "us-west-2"
}
[...]
}
Landing Zone Module’s Providers (1/5)
▪ Required: default provider
– AWS account’s ID
– Account’s default region
CODE EDITOR
landing_zone_providers = {
default = {
account_id = "123456789012"
region = "us-east-1"
},
core_account_security = {
account_id = ”987654321098"
region = "us-west-2"
}
[...]
}
Landing Zone Module’s Providers (2/5)
▪ Required: default provider
– AWS account’s ID
– Account’s default region
▪ Required: another provider
CODE EDITOR
landing_zone_providers = {
default = {
account_id = "123456789012"
region = "us-east-1"
},
core_account_security = {
account_id = ”987654321098"
region = "us-west-2"
}
[...]
}
Landing Zone Module’s Providers (3/5)
▪ Required: default provider
– AWS account’s ID
– Account’s default region
▪ Required: another provider
– AWS account’s ID
– Account’s default region
CODE EDITOR
landing_zone_providers = {
default = {
account_id = "123456789012"
region = "us-east-1"
},
core_account_security = {
account_id = ”987654321098"
region = "us-west-2"
}
[...]
}
Landing Zone Module’s Providers (4/5)
▪ Required: default provider
– AWS account’s ID
– Account’s default region
▪ Required: another provider
– AWS account’s ID
– Account’s default region
▪ Provider’s key name is used as
prefix in landing zone variables
CODE EDITOR
landing_zone_providers = {
default = {
account_id = "123456789012"
region = "us-east-1"
},
core_account_security = {
account_id = ”987654321098"
region = "us-west-2"
}
[...]
}
Landing Zone Module’s Providers (5/5)
ALZ Module’s Components
Microservices Architecture + Immutable TF Configurations
▪ Immutable LZ components –
shifted focus from TF to TFVAR
CODE EDITOR
landing_zone_components = {
landing_zone_vpc = ”default.tfvars"
landing_zone_subnet = ”default.tfvars”
[…]
}
Landing Zone Module’s Components (1/3)
▪ Immutable LZ components –
shifted focus from TF to TFVAR
▪ Can be local or remote (on S3)
CODE EDITOR
landing_zone_components = {
landing_zone_vpc = "s3://terraform-aws-landing-
zone/components/landing_zone_vpc/default.tfvars"
landing_zone_subnet = "default.tfvars”
[…]
}
Landing Zone Module’s Components (2/3)
▪ Immutable LZ components –
shifted focus from TF to TFVAR
▪ Can be local or remote (on S3)
▪ Can be 1 TFVAR or multiple
CODE EDITOR
landing_zone_components = {
landing_zone_vpc = "s3://terraform-aws-landing-
zone/components/landing_zone_vpc/default.tfvars"
landing_zone_subnet = "s3://terraform-aws-landing-
zone/components/landing_zone_subnet/*.tfvars”
[…]
}
Landing Zone Module’s Components (3/3)
ALZ Module’s TFVARs
▪ List providers supported by
current component
CODE EDITOR
landing_zone_providers = ["default"]
default_provider = {
landing_zone_vpc_resource = {
config_0 = {
cidr_block = "172.16.0.0/16"
instance_tenancy = "default"
enable_dns_support = "true"
enable_classiclink = "false"
enable_dns_hostnames = "false"
enable_classiclink_dns_support = "false"
}
}
}
Landing Zone Module’s TFVARs (1/5)
▪ List providers supported by
current component
▪ Define provider’s values as
`[provider_key_name]_provider`
CODE EDITOR
landing_zone_providers = ["default"]
default_provider = {
landing_zone_vpc_resource = {
config_0 = {
cidr_block = "172.16.0.0/16"
instance_tenancy = "default"
enable_dns_support = "true"
enable_classiclink = "false"
enable_dns_hostnames = "false"
enable_classiclink_dns_support = "false"
}
}
}
Landing Zone Module’s TFVARs (2/5)
▪ List providers supported by
current component
▪ Define provider’s values as
`[provider_key_name]_provider`
▪ Define component’s values as
`[component_key_name]_resource`
CODE EDITOR
landing_zone_providers = ["default"]
default_provider = {
landing_zone_vpc_resource = {
config_0 = {
cidr_block = "172.16.0.0/16"
instance_tenancy = "default"
enable_dns_support = "true"
enable_classiclink = "false"
enable_dns_hostnames = "false"
enable_classiclink_dns_support = "false"
}
}
}
Landing Zone Module’s TFVARs (3/5)
▪ List providers supported by
current component
▪ Define provider’s values as
`[provider_key_name]_provider`
▪ Define component’s values as
`[component_key_name]_resource`
▪ Define each resource as iteratable
config: `config_0`, `config_1`, etc
CODE EDITOR
landing_zone_providers = ["default"]
default_provider = {
landing_zone_vpc_resource = {
config_0 = {
cidr_block = "172.16.0.0/16"
instance_tenancy = "default"
enable_dns_support = "true"
enable_classiclink = "false"
enable_dns_hostnames = "false"
enable_classiclink_dns_support = "false"
}
}
}
Landing Zone Module’s TFVARs (4/5)
▪ List providers supported by
current component
▪ Define provider’s values as
`[provider_key_name]_provider`
▪ Define component’s values as
`[component_key_name]_resource`
▪ Define each resource as iteratable
config: `config_0`, `config_1`, etc
▪ Define resource specific
key value pairs
CODE EDITOR
landing_zone_providers = ["default"]
default_provider = {
landing_zone_vpc_resource = {
config_0 = {
cidr_block = "172.16.0.0/16"
instance_tenancy = "default"
enable_dns_support = "true"
enable_classiclink = "false"
enable_dns_hostnames = "false"
enable_classiclink_dns_support = "false"
}
}
}
Landing Zone Module’s TFVARs (5/5)
ALZ Module’s
Terraform Backend
(optional)
CODE EDITOR
terraform_backend = {
backend = "local"
path = "/tmp/.terrahub/landing_zone"
}
Landing Zone Module’s Backend (1/2)
CODE EDITOR
terraform_backend = {
backend = "s3"
region = "us-east-1"
bucket = "terraform-aws-landing-zone"
key = "components"
}
CODE EDITOR
terraform_backend = {
backend = "local"
path = "/tmp/.terrahub/landing_zone"
}
Landing Zone Module’s Backend (2/2)
CODE EDITOR
terraform_backend = {
backend = "s3"
region = "us-east-1"
bucket = "terraform-aws-landing-zone"
key = "components"
}
Light Demo:
ALZ Module in Action
1. ALZ Module’s Providers
2. ALZ Module’s Components
3. ALZ Module’s TFVARs
4. ALZ Module’s Terraform Backend
5. Light Demo: ALZ Module in Action
In Summary
Calling Out Contributors:
Thank You!
https://registry.terraform.io/modules/MitocGroup/landing-zone
eistrati euliancom vcalmic You
&

More Related Content

PPTX
Terraform for azure: the good, the bad and the ugly -
PDF
Integrating Terraform and Consul
PPTX
Shipping logs to splunk from a container in aws howto
PPTX
20171122 aws usergrp_coretech-spn-cicd-aws-v01
PPTX
Aws landing zone. journey to the cloud
PDF
Deploying in the Cloud: Why and How
PPTX
Using Amazon RDS to power enterprise applications (Peoplesoft)
PDF
Presentation deploying cloud based services
Terraform for azure: the good, the bad and the ugly -
Integrating Terraform and Consul
Shipping logs to splunk from a container in aws howto
20171122 aws usergrp_coretech-spn-cicd-aws-v01
Aws landing zone. journey to the cloud
Deploying in the Cloud: Why and How
Using Amazon RDS to power enterprise applications (Peoplesoft)
Presentation deploying cloud based services

What's hot (6)

PDF
8 Source Code Cloudstack Developer Day
PDF
PaaS: An Introduction
PPTX
Oracle Solutions on AWS : May 2014
PPTX
Oracle Peoplesoft on AWS: A quick introduction
PDF
Oracle COTS Applications on AWS
PPTX
Azure realtime-interview questions - part 7
8 Source Code Cloudstack Developer Day
PaaS: An Introduction
Oracle Solutions on AWS : May 2014
Oracle Peoplesoft on AWS: A quick introduction
Oracle COTS Applications on AWS
Azure realtime-interview questions - part 7
Ad

Similar to Hands-on with the Terraform Module for AWS Landing Zone Indy Cloud Conf 2020 (20)

PPTX
Hands-On Terraform Module for AWS Landing Zone at HashiTalks2020
PPTX
Azure diario de abordo
PDF
Building a SaaS using WSO2 Stratos
PDF
AWS-services.pdf
PDF
AWS_Certified_Solutions_Architect_Associate_SAA-C03_Slides_Tutorials_Dojo.pdf
PDF
Refactoring Web Services on AWS cloud (PaaS & SaaS)
PDF
Optimized landing zone deployment for SaaS.pdf
PDF
Migrating Enterprise Applications to AWS
PPTX
AWS-LZA-CommunityDay_Aotearoa_ppt_v1.pptx
PPTX
Aws big picture_overview
PDF
Getting Started with AWS - Enterprise Landing Zone for Terraform Learning & D...
PDF
WSO2 Stratos 2 - Your all in one Cloud Platform
PPTX
How Hudl and Cloud Cruiser Leverage Sumo Logic's Unified Logs and Metrics
PPTX
Microsoft cloud stack
PDF
saa3_wk5.pdf
PDF
Rapid deployment of Sitecore on AWS
PDF
Citrix cloud platform 4.2 data sheet
PDF
Azure stack all you need to know
PPTX
Hybrid - Azure Arc customers cases study
PPTX
analytic engine - a common big data computation service on the aws
Hands-On Terraform Module for AWS Landing Zone at HashiTalks2020
Azure diario de abordo
Building a SaaS using WSO2 Stratos
AWS-services.pdf
AWS_Certified_Solutions_Architect_Associate_SAA-C03_Slides_Tutorials_Dojo.pdf
Refactoring Web Services on AWS cloud (PaaS & SaaS)
Optimized landing zone deployment for SaaS.pdf
Migrating Enterprise Applications to AWS
AWS-LZA-CommunityDay_Aotearoa_ppt_v1.pptx
Aws big picture_overview
Getting Started with AWS - Enterprise Landing Zone for Terraform Learning & D...
WSO2 Stratos 2 - Your all in one Cloud Platform
How Hudl and Cloud Cruiser Leverage Sumo Logic's Unified Logs and Metrics
Microsoft cloud stack
saa3_wk5.pdf
Rapid deployment of Sitecore on AWS
Citrix cloud platform 4.2 data sheet
Azure stack all you need to know
Hybrid - Azure Arc customers cases study
analytic engine - a common big data computation service on the aws
Ad

More from Mitoc Group (17)

PPTX
Terraform for Serverless - Best Practices
PDF
The Ultimate Publisher's Need-to-Know Guide to Ad Blockers
PPTX
How Serverless Computing Enables Microservices and Micropayment
PPTX
How Serverless Computing Enables Microservices and Micropayment
PPTX
Serverless Microservices - Real life story of a Web App that uses AngularJS, ...
PPTX
Building Scalable Web Applications using Microservices Architecture and Serve...
PPTX
Building Scalable Web Applications using Microservices Architecture and NodeJ...
PPTX
Serverless Microservices - Real life story of a Web App that uses AWS Lambda
PPTX
Microservices Architecture for Content Management Systems using AWS Lambda an...
PPTX
Microservices Architecture for Web Applications using Serverless Computing wi...
PPTX
Microservices Architecture for Web Applications using AWS Lambda and more
PPTX
Microservices Architecture for Web Applications using Amazon AWS Cloud
PPTX
Microservices Architecture for Content Management Systems using AWS Lambda an...
PPTX
Microservices Architecture for Digital Platforms using Serverless AWS
PPTX
Microservices Architecture for MEAN Applications using Serverless AWS
PPTX
Build Web Applications using Microservices on Node.js and Serverless AWS
PPTX
ARC201 Microservices Architecture @ AWS re:Invent 2015
Terraform for Serverless - Best Practices
The Ultimate Publisher's Need-to-Know Guide to Ad Blockers
How Serverless Computing Enables Microservices and Micropayment
How Serverless Computing Enables Microservices and Micropayment
Serverless Microservices - Real life story of a Web App that uses AngularJS, ...
Building Scalable Web Applications using Microservices Architecture and Serve...
Building Scalable Web Applications using Microservices Architecture and NodeJ...
Serverless Microservices - Real life story of a Web App that uses AWS Lambda
Microservices Architecture for Content Management Systems using AWS Lambda an...
Microservices Architecture for Web Applications using Serverless Computing wi...
Microservices Architecture for Web Applications using AWS Lambda and more
Microservices Architecture for Web Applications using Amazon AWS Cloud
Microservices Architecture for Content Management Systems using AWS Lambda an...
Microservices Architecture for Digital Platforms using Serverless AWS
Microservices Architecture for MEAN Applications using Serverless AWS
Build Web Applications using Microservices on Node.js and Serverless AWS
ARC201 Microservices Architecture @ AWS re:Invent 2015

Recently uploaded (20)

PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PDF
Download FL Studio Crack Latest version 2025 ?
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
Complete Guide to Website Development in Malaysia for SMEs
PDF
Cost to Outsource Software Development in 2025
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PDF
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
PDF
Autodesk AutoCAD Crack Free Download 2025
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
PPTX
history of c programming in notes for students .pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Oracle Fusion HCM Cloud Demo for Beginners
Download FL Studio Crack Latest version 2025 ?
Advanced SystemCare Ultimate Crack + Portable (2025)
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Monitoring Stack: Grafana, Loki & Promtail
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
Designing Intelligence for the Shop Floor.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
Complete Guide to Website Development in Malaysia for SMEs
Cost to Outsource Software Development in 2025
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
iTop VPN Free 5.6.0.5262 Crack latest version 2025
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
Autodesk AutoCAD Crack Free Download 2025
Digital Systems & Binary Numbers (comprehensive )
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
history of c programming in notes for students .pptx

Hands-on with the Terraform Module for AWS Landing Zone Indy Cloud Conf 2020

  • 1. Hands-On Terraform Module for AWS Landing Zone registry.terraform.io/modules/MitocGroup/landing-zone
  • 2. 2018: AWS Landing Zone Secure Multi-Accounts Strategy AWS Landing Zone is a solution that helps customers more quickly set up a secure, multi-account AWS environment based on AWS best practices. https://aws.amazon.com/solutions/aws-landing-zone
  • 3. AWS Landing Zone  AWS Control Tower
  • 4. 2019: AWS Control Tower “AWS Landing Zone” as a Service AWS Control Tower provides the easiest way to set up and govern a new, secure, multi-account AWS environment based on best practices established through AWS’ experience working with thousands of enterprises as they move to the cloud. https://aws.amazon.com/controltower
  • 5. AWS Landing Zone  AWS Control Tower
  • 6. Existing Resources Although CloudFormation added recently the ability to import existing resources, current ALZ implementation still doesn’t support an easy and flexible process to reuse existing AWS environments. Customers Feedback (1/3) Below are 3 key issues identified by enterprise customers working hands-on with our professional services organization. AWS Single Sign-On Although AWS SSO is an amazing service, most of our customers would not replace their existing SSO solutions. Current ALZ implementation doesn’t allow switching it with something like Azure AD, Okta or PingIdentity. CloudFormation Enterprise customers who are already using Terraform as their default infrastructure-as- code solution often avoid CloudFormation based implementations, sometimes justifying as out of scope.
  • 7. Customers Feedback (2/3) Below are 3 key issues identified by enterprise customers working hands-on with our professional services organization. Existing Resources Although CloudFormation added recently the ability to import existing resources, current ALZ implementation still doesn’t support an easy and flexible process to reuse existing AWS environments. AWS Single Sign-On Although AWS SSO is an amazing service, most of our customers would not replace their existing SSO solutions. Current ALZ implementation doesn’t allow switching it with something like Azure AD, Okta or PingIdentity. CloudFormation Enterprise customers who are already using Terraform as their default infrastructure-as- code solution often avoid CloudFormation based implementations, sometimes justifying as out of scope.
  • 8. Existing Resources Although CloudFormation added recently the ability to import existing resources, current ALZ implementation still doesn’t support an easy and flexible process to reuse existing AWS environments. Customers Feedback (3/3) Below are 3 key issues identified by enterprise customers working hands-on with our professional services organization. AWS Single Sign-On Although AWS SSO is an amazing service, most of our customers would not replace their existing SSO solutions. Current ALZ implementation doesn’t allow switching it with something like Azure AD, Okta or PingIdentity. CloudFormation Enterprise customers who are already using Terraform as their default infrastructure-as- code solution often avoid CloudFormation based implementations, sometimes justifying as out of scope.
  • 9. About Presenter Eugene ISTRATI @eistrati ▪ CTO, Tech Partner @ Mitoc Group ▪ Ex-AWS, ex-Hearst, ex-GrubHub ▪ Certified AWS Solutions Architect ▪ 20 Years in IT; 10 Years in Cloud Computing; 5 Years in Enterprise IT ▪ Focusing on: Automation, DevOps, Serverless
  • 10. Terraform Module for AWS Landing Zone https://registry.terraform.io/modules/MitocGroup/landing-zone
  • 11. 1. ALZ Module’s Providers 2. ALZ Module’s Components 3. ALZ Module’s TFVARs 4. ALZ Module’s Terraform Backend 5. Light Demo: ALZ Module in Action Agenda for Today
  • 14. ▪ Publicly available on TF Registry: https://registry.terraform.io CODE EDITOR module "landing_zone" { source = "MitocGroup/landing-zone/aws" version = "0.2.4" landing_zone_providers = var.landing_zone_providers landing_zone_components = var.landing_zone_components terraform_backend = var.terraform_backend } Landing Zone Module’s Anatomy (1/3)
  • 15. ▪ Publicly available on TF Registry: https://registry.terraform.io ▪ Expected input: list of providers and components CODE EDITOR module "landing_zone" { source = "MitocGroup/landing-zone/aws" version = "0.2.4" landing_zone_providers = var.landing_zone_providers landing_zone_components = var.landing_zone_components terraform_backend = var.terraform_backend } Landing Zone Module’s Anatomy (2/3)
  • 16. ▪ Publicly available on TF Registry: https://registry.terraform.io ▪ Expected input: list of providers and components ▪ Optional input: terraform backend CODE EDITOR module "landing_zone" { source = "MitocGroup/landing-zone/aws" version = "0.2.4" landing_zone_providers = var.landing_zone_providers landing_zone_components = var.landing_zone_components terraform_backend = var.terraform_backend } Landing Zone Module’s Anatomy (3/3)
  • 17. ALZ Module’s Providers 1 Module’s Provider === 1 AWS Account + Region
  • 18. ▪ Required: default provider CODE EDITOR landing_zone_providers = { default = { account_id = "123456789012" region = "us-east-1" }, core_account_security = { account_id = ”987654321098" region = "us-west-2" } [...] } Landing Zone Module’s Providers (1/5)
  • 19. ▪ Required: default provider – AWS account’s ID – Account’s default region CODE EDITOR landing_zone_providers = { default = { account_id = "123456789012" region = "us-east-1" }, core_account_security = { account_id = ”987654321098" region = "us-west-2" } [...] } Landing Zone Module’s Providers (2/5)
  • 20. ▪ Required: default provider – AWS account’s ID – Account’s default region ▪ Required: another provider CODE EDITOR landing_zone_providers = { default = { account_id = "123456789012" region = "us-east-1" }, core_account_security = { account_id = ”987654321098" region = "us-west-2" } [...] } Landing Zone Module’s Providers (3/5)
  • 21. ▪ Required: default provider – AWS account’s ID – Account’s default region ▪ Required: another provider – AWS account’s ID – Account’s default region CODE EDITOR landing_zone_providers = { default = { account_id = "123456789012" region = "us-east-1" }, core_account_security = { account_id = ”987654321098" region = "us-west-2" } [...] } Landing Zone Module’s Providers (4/5)
  • 22. ▪ Required: default provider – AWS account’s ID – Account’s default region ▪ Required: another provider – AWS account’s ID – Account’s default region ▪ Provider’s key name is used as prefix in landing zone variables CODE EDITOR landing_zone_providers = { default = { account_id = "123456789012" region = "us-east-1" }, core_account_security = { account_id = ”987654321098" region = "us-west-2" } [...] } Landing Zone Module’s Providers (5/5)
  • 23. ALZ Module’s Components Microservices Architecture + Immutable TF Configurations
  • 24. ▪ Immutable LZ components – shifted focus from TF to TFVAR CODE EDITOR landing_zone_components = { landing_zone_vpc = ”default.tfvars" landing_zone_subnet = ”default.tfvars” […] } Landing Zone Module’s Components (1/3)
  • 25. ▪ Immutable LZ components – shifted focus from TF to TFVAR ▪ Can be local or remote (on S3) CODE EDITOR landing_zone_components = { landing_zone_vpc = "s3://terraform-aws-landing- zone/components/landing_zone_vpc/default.tfvars" landing_zone_subnet = "default.tfvars” […] } Landing Zone Module’s Components (2/3)
  • 26. ▪ Immutable LZ components – shifted focus from TF to TFVAR ▪ Can be local or remote (on S3) ▪ Can be 1 TFVAR or multiple CODE EDITOR landing_zone_components = { landing_zone_vpc = "s3://terraform-aws-landing- zone/components/landing_zone_vpc/default.tfvars" landing_zone_subnet = "s3://terraform-aws-landing- zone/components/landing_zone_subnet/*.tfvars” […] } Landing Zone Module’s Components (3/3)
  • 28. ▪ List providers supported by current component CODE EDITOR landing_zone_providers = ["default"] default_provider = { landing_zone_vpc_resource = { config_0 = { cidr_block = "172.16.0.0/16" instance_tenancy = "default" enable_dns_support = "true" enable_classiclink = "false" enable_dns_hostnames = "false" enable_classiclink_dns_support = "false" } } } Landing Zone Module’s TFVARs (1/5)
  • 29. ▪ List providers supported by current component ▪ Define provider’s values as `[provider_key_name]_provider` CODE EDITOR landing_zone_providers = ["default"] default_provider = { landing_zone_vpc_resource = { config_0 = { cidr_block = "172.16.0.0/16" instance_tenancy = "default" enable_dns_support = "true" enable_classiclink = "false" enable_dns_hostnames = "false" enable_classiclink_dns_support = "false" } } } Landing Zone Module’s TFVARs (2/5)
  • 30. ▪ List providers supported by current component ▪ Define provider’s values as `[provider_key_name]_provider` ▪ Define component’s values as `[component_key_name]_resource` CODE EDITOR landing_zone_providers = ["default"] default_provider = { landing_zone_vpc_resource = { config_0 = { cidr_block = "172.16.0.0/16" instance_tenancy = "default" enable_dns_support = "true" enable_classiclink = "false" enable_dns_hostnames = "false" enable_classiclink_dns_support = "false" } } } Landing Zone Module’s TFVARs (3/5)
  • 31. ▪ List providers supported by current component ▪ Define provider’s values as `[provider_key_name]_provider` ▪ Define component’s values as `[component_key_name]_resource` ▪ Define each resource as iteratable config: `config_0`, `config_1`, etc CODE EDITOR landing_zone_providers = ["default"] default_provider = { landing_zone_vpc_resource = { config_0 = { cidr_block = "172.16.0.0/16" instance_tenancy = "default" enable_dns_support = "true" enable_classiclink = "false" enable_dns_hostnames = "false" enable_classiclink_dns_support = "false" } } } Landing Zone Module’s TFVARs (4/5)
  • 32. ▪ List providers supported by current component ▪ Define provider’s values as `[provider_key_name]_provider` ▪ Define component’s values as `[component_key_name]_resource` ▪ Define each resource as iteratable config: `config_0`, `config_1`, etc ▪ Define resource specific key value pairs CODE EDITOR landing_zone_providers = ["default"] default_provider = { landing_zone_vpc_resource = { config_0 = { cidr_block = "172.16.0.0/16" instance_tenancy = "default" enable_dns_support = "true" enable_classiclink = "false" enable_dns_hostnames = "false" enable_classiclink_dns_support = "false" } } } Landing Zone Module’s TFVARs (5/5)
  • 34. CODE EDITOR terraform_backend = { backend = "local" path = "/tmp/.terrahub/landing_zone" } Landing Zone Module’s Backend (1/2) CODE EDITOR terraform_backend = { backend = "s3" region = "us-east-1" bucket = "terraform-aws-landing-zone" key = "components" }
  • 35. CODE EDITOR terraform_backend = { backend = "local" path = "/tmp/.terrahub/landing_zone" } Landing Zone Module’s Backend (2/2) CODE EDITOR terraform_backend = { backend = "s3" region = "us-east-1" bucket = "terraform-aws-landing-zone" key = "components" }
  • 37. 1. ALZ Module’s Providers 2. ALZ Module’s Components 3. ALZ Module’s TFVARs 4. ALZ Module’s Terraform Backend 5. Light Demo: ALZ Module in Action In Summary
  • 38. Calling Out Contributors: Thank You! https://registry.terraform.io/modules/MitocGroup/landing-zone eistrati euliancom vcalmic You &