Skip to content

Repository to play with terraform and AWS common usage resources

Notifications You must be signed in to change notification settings

alvarosaavedrau/aws-terraform-commons

Repository files navigation

aws-terraform-commons

Repository to play with terraform and AWS common usage resources.

This architecture is an example from Stephane Maarek AWS SysOps course.

architecture

TO-DO

  • Add RDS to diagram architecture.
  • Add second private subnet to diagram architecture.
  • Add output to the RDS reader instance.

Requirements

Name Version
terraform >= 1.8.2
aws >= 5.50.0

Providers

Name Version
aws >= 5.50.0
http n/a

Modules

No modules.

Resources

Name Type
aws_db_subnet_group.rds resource
aws_eip.publicA resource
aws_iam_role.rds resource
aws_iam_role_policy_attachment.rds_attach resource
aws_instance.private resource
aws_instance.public resource
aws_internet_gateway.dev resource
aws_key_pair.personal resource
aws_nat_gateway.publicA resource
aws_rds_cluster.rds_cluster resource
aws_rds_cluster_instance.rds_instance resource
aws_rds_cluster_instance.rds_replica_reader resource
aws_route.public_internet_gateway resource
aws_route_table.private resource
aws_route_table.public resource
aws_route_table_association.privateA resource
aws_route_table_association.publicA resource
aws_security_group.private resource
aws_security_group.public resource
aws_subnet.privateA resource
aws_subnet.privateB resource
aws_subnet.publicA resource
aws_vpc.dev resource
aws_ami.amzn-linux-2023-ami data source
aws_iam_policy.AmazonRDSEnhancedMonitoringRole data source
http_http.myip data source

Inputs

Name Description Type Default Required
access_key n/a string n/a yes
common_tags Common tags to the resources map(string) n/a yes
instance_type Type of EC2 instance to provision string "t2.micro" no
name n/a string n/a yes
personal_account_id List of personal account IDs to deny terraform create list(string) n/a yes
public_key_path Path to the public key to create the key pair string n/a yes
rds_backup_retention_period RDS backup retention period number n/a yes
rds_cluster_engine RDS cluster engine string n/a yes
rds_cluster_maintenance_window RDS maintenance window string n/a yes
rds_cluster_name Name of the RDS cluster string n/a yes
rds_cluster_version Postgre version to use string n/a yes
rds_database_name RDS database name string n/a yes
rds_deletion_protection Enable RDS deletion protection bool n/a yes
rds_instance_insights_retention_period RDS instance insights retention period number n/a yes
rds_instance_minor_version RDS instance minor version bool n/a yes
rds_instance_monitoring_interval RDS instance monitoring interval, if > 0 enhanced monitoring enabled string n/a yes
rds_instance_name n/a string n/a yes
rds_instance_performance_insights RDS instance performance insights bool n/a yes
rds_instance_type RDS instance type string n/a yes
rds_port RDS port number n/a yes
rds_skip_final_snapshot Skip RDS final snapshot string n/a yes
rds_storage_encrypted Encrypt RDS storage bool n/a yes
rds_username Username to connect to RDS string n/a yes
region n/a string n/a yes
secret_key n/a string n/a yes

Outputs

Name Description
aws_rds_cluster_instance_reader n/a
aws_rds_cluster_instance_writer n/a
aws_rds_cluster_username n/a
aws_rds_port n/a
ec2_private_ip n/a
ec2_public_ip n/a
rds_cluster_database_name n/a

About

Repository to play with terraform and AWS common usage resources

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published