hayderimran7 / terraform-aws-microservice

Boilerplate Terraform Module for creating resources for typical micro services.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Microservice Boilerplate

Build Status Tag

License

This Terraform module can create typical resources needed for most microservices.

Examples

Usage

DynamoDB Microservice

module "microservice" {
  source = "github.com/flaconi/terraform-aws-microservice"

  env  = "playground"
  name = "sample"

  # iam_user_enabled creates an user with keys, with `iam_role_enabled` the user can switch into the role created by `iam_role_enabled`
  # For this example we're only creating a role with access to Dynamodb
  iam_user_enabled = false

  # iam_role_enabled creates a role.
  iam_role_enabled = true

  # Sample principal which can assume into this role
  #iam_role_principals_arns = ["arn:aws:iam::12374567890:root"]

  iam_inline_policies = [
   {
     name = "s3-access"
     statements = [
       {
         actions   = ["s3:ListBucket"]
         resources = ["arn:aws:s3:::test"]
       },
       {
         actions   = ["s3:get*"]
         resources = ["arn:aws:s3:::test/*"]
       }
     ]
   },
   {
     name = "kinesis-full-access"
     statements = [
       {
         actions   = ["kinesis:*"]
         resources = ["*"]
       },
     ]
   }
  ]


  # -------------------------------------------------------------------------------------------------
  # DynamoDB
  # This module re-uses an implementation of the module https://github.com/cloudposse/terraform-aws-dynamodb
  # -------------------------------------------------------------------------------------------------
  # `dynamodb_enabled` is set to true to enable Dynamodb
  dynamodb_enabled = true
  dynamodb_hash_key  = "HashKey"
  dynamodb_range_key = "RangeKey"

  # dynamodb_attributes = []
  # dynamodb_global_secondary_index_map = []
  # dynamodb_local_secondary_index_map = []

  tags = {
    Name = "sample"
  }
}

Redis

module "ms_sample_redis" {
  source = "github.com/flaconi/terraform-aws-microservice"

  env  = "playground"
  name = "sample"

  vpc_tag_filter = {
    "Name"= "dev-vpc",
    "env"= "dev"
  }

  # redis_enabled - Set to false to prevent the module from creating any redis resources
  redis_enabled = true

  # redis_cluster_id_override - Use only lowercase, numbers and -, _., only use when it needs to be different from `var.name`
  # redis_cluster_id_override = ""

  # redis_subnet_tag_filter sets the datasource to match the subnet_id's where the RDS will be located
  redis_subnet_tag_filter = {
    "Name" = "dev-redis-subnet*"
    "env"  = "dev"
  }
  # redis_allowed_subnet_cidrs - List of CIDRs/subnets which should be able to connect to the Redis cluster
  redis_allowed_subnet_cidrs = ["127.0.0.1/32"]

  # redis_shards_count - Number of shards
  redis_shards_count = 1

  # Number of replica nodes in each node group
  redis_replicas_count = 1

  # redis_port - Redis Port
  # redis_port = 6379

  # redis_instance_type - Redis instance type
  redis_instance_type = "cache.t2.micro"

  # redis_group_engine_version - Redis engine version to be used
  # redis_group_engine_version = "5.0.0"

  # redis_group_parameter_group_name - Redis parameter group name"
  # redis_group_parameter_group_name = "default.redis5.0.cluster.on"

  # redis_snapshot_window - Redis snapshot window
  # redis_snapshot_window = "00:00-05:00"

  # redis_maintenance_window - Redis maintenance window
  # redis_maintenance_window = "mon:10:00-mon:12:00"

  tags = {
    Name = "sample"
  }

RDS

module "ms_sample_rds" {
  source = "github.com/flaconi/terraform-aws-microservice"

  env  = "playground"
  name = "sample"

  vpc_tag_filter = {
    "Name"= "dev-vpc",
    "env"= "dev"
  }

  # rds_subnet_tag_filter sets the datasource to match the subnet_id's where the RDS will be located
  rds_subnet_tag_filter = {
    "Name" = "dev-rds-subnet*"
    "env"  = "dev"
  }

  # rds_enabled enables RDS
  rds_enabled = true

  # rds_allowed_subnet_cidrs specifices the allowed subnets
  #rds_allowed_subnet_cidrs = ["127.0.0.1/32"]

  # rds_admin_user sets the admin user, defaults to admin
  # rds_admin_user          = "demouser"
  # rds_identifier_override overrides the name of the RDS instance, instead of `var.name`
  # rds_identifier_override = "overridename"

  # rds_engine sets the RDS instance engine
  # rds_engine = "mysql"

  # rds_major_engine_version RDS instance major engine version
  # rds_major_engine_version = 5.7

  # rds_family Parameter Group"
  # rds_family = "mysql5.7"

  # rds_node_type sets VM type which should be taken for nodes in the RDS instance
  # rds_node_type = "db.t3.micro"

  # rds_multi_az sets multi-az
  # rds_multi_az = true

  # rds_storage_type sets the RDS storage type
  # rds_storage_type = "gp2"

  # rds_allocated_storage sets the RDS storage size in Gb
  # rds_allocated_storage = "20"

  # rds_admin_pass sets the password in case `rds_admin_pass` is set to false
  # rds_admin_pass = ""

  # rds_use_random_password switched on sets a random password for the rds instance
  # rds_use_random_password = true

  # rds_parameter_group_name Parameter group for database
  # rds_parameter_group_name = ""

  # rds_option_group_name option groups for database
  # rds_option_group_name = ""

  # rds_port TCP port where DB accept connections
  # rds_port = "3306"

  # rds_db_subnet_group_name Subnet groups for RDS instance
  # rds_db_subnet_group_name = ""

  # rds_backup_retention_period Retention period for DB snapshots in days
  rds_backup_retention_period = 14
  # rds_deletion_protection Protect RDS instance from deletion
  rds_deletion_protection = false
  # rds_skip_final_snapshot Protect RDS instance from deletion
  rds_skip_final_snapshot = true
  # rds_storage_encrypted - enable encryption for RDS instance storage"
  rds_storage_encrypted = true
  # rds_kms_key_id - KMS key ARN for storage encryption, defaults to "" = RDS/KMS
  rds_kms_key_id = ""
  # rds_maintenance_window - Window of RDS Maintenance
  rds_maintenance_window = "Mon:16:00-Mon:18:00"
  # rds_backup_window - Backup Window
  rds_backup_window = "03:00-06:00"

  tags = {
    Name = "sample"
  }
}

Resources

The following resources CAN be created:

  • 1 IAM Role
  • 1 IAM User
  • 1 DynamoDB
  • 1 RDS Instance
  • 1 Policy for accessing Dynamodb from the IAM Role
  • 1 Redis cluster with required networking components

Inputs

Name Description Type Default Required
env The environment name to which this project will be applied against (e.g.: common, dev, prod, testing) string n/a yes
name The name of the microservice, the dependent resources will be created with this name interpolated string n/a yes
tags tags to propagate to the resources map(any) n/a yes
additional_sg_names_for_rds Name(s) of the additional VPC Security Group(s) to be attached to the RDS instance. list(string) [] no
aws_route53_rds_subdomain_override To set a custom RDS DNS record subdomain instead of the RDS instance ID string "" no
aws_route53_record_ttl Time to live for DNS record used by the endpoints string "60" no
aws_route53_zone_endpoints_enabled To enable the lookup of the domain used for RDS/Redis private endpoint string "false" no
aws_route53_zone_private_endpoint_enabled To enable the lookup of the domain used for RDS/Redis private endpoint, we need to set this to true string "true" no
aws_route53_zone_public_endpoint_enabled To enable the lookup of the domain used for RDS/Redis public endpoint, we need to set this to true string "true" no
dynamodb2_attributes Additional DynamoDB attributes in the form of a list of mapped values list [] no
dynamodb2_autoscale_max_read_capacity DynamoDB autoscaling max read capacity number "20" no
dynamodb2_autoscale_max_write_capacity DynamoDB autoscaling max write capacity number "20" no
dynamodb2_autoscale_min_read_capacity DynamoDB autoscaling min read capacity number "5" no
dynamodb2_autoscale_min_write_capacity DynamoDB autoscaling min write capacity number "5" no
dynamodb2_autoscale_read_target The target value for DynamoDB read autoscaling number "50" no
dynamodb2_autoscale_write_target The target value for DynamoDB write autoscaling number "50" no
dynamodb2_enable_autoscaler Flag to enable/disable DynamoDB autoscaling bool "true" no
dynamodb2_enabled Set to false to prevent the module from creating any dynamodb resources string "false" no
dynamodb2_global_secondary_index_map Additional global secondary indexes in the form of a list of mapped values object [] no
dynamodb2_hash_key DynamoDB table Hash Key string "" no
dynamodb2_hash_key_type Hash Key type, which must be a scalar type: S, N, or B for (S)tring, (N)umber or (B)inary data string "S" no
dynamodb2_local_secondary_index_map Additional local secondary indexes in the form of a list of mapped values object [] no
dynamodb2_name_override define dynamodb2_name_override to set a name differnt from var.name string "" no
dynamodb2_range_key DynamoDB table Range Key string "" no
dynamodb2_range_key_type Range Key type, which must be a scalar type: S, N, or B for (S)tring, (N)umber or (B)inary data string "S" no
dynamodb3_attributes Additional DynamoDB attributes in the form of a list of mapped values list [] no
dynamodb3_autoscale_max_read_capacity DynamoDB autoscaling max read capacity number "20" no
dynamodb3_autoscale_max_write_capacity DynamoDB autoscaling max write capacity number "20" no
dynamodb3_autoscale_min_read_capacity DynamoDB autoscaling min read capacity number "5" no
dynamodb3_autoscale_min_write_capacity DynamoDB autoscaling min write capacity number "5" no
dynamodb3_autoscale_read_target The target value for DynamoDB read autoscaling number "50" no
dynamodb3_autoscale_write_target The target value for DynamoDB write autoscaling number "50" no
dynamodb3_enable_autoscaler Flag to enable/disable DynamoDB autoscaling bool "true" no
dynamodb3_enabled Set to false to prevent the module from creating any dynamodb resources string "false" no
dynamodb3_global_secondary_index_map Additional global secondary indexes in the form of a list of mapped values object [] no
dynamodb3_hash_key DynamoDB table Hash Key string "" no
dynamodb3_hash_key_type Hash Key type, which must be a scalar type: S, N, or B for (S)tring, (N)umber or (B)inary data string "S" no
dynamodb3_local_secondary_index_map Additional local secondary indexes in the form of a list of mapped values object [] no
dynamodb3_name_override define dynamodb3_name_override to set a name differnt from var.name string "" no
dynamodb3_range_key DynamoDB table Range Key string "" no
dynamodb3_range_key_type Range Key type, which must be a scalar type: S, N, or B for (S)tring, (N)umber or (B)inary data string "S" no
dynamodb_attributes Additional DynamoDB attributes in the form of a list of mapped values list [] no
dynamodb_autoscale_max_read_capacity DynamoDB autoscaling max read capacity number "20" no
dynamodb_autoscale_max_write_capacity DynamoDB autoscaling max write capacity number "20" no
dynamodb_autoscale_min_read_capacity DynamoDB autoscaling min read capacity number "5" no
dynamodb_autoscale_min_write_capacity DynamoDB autoscaling min write capacity number "5" no
dynamodb_autoscale_read_target The target value for DynamoDB read autoscaling number "50" no
dynamodb_autoscale_write_target The target value for DynamoDB write autoscaling number "50" no
dynamodb_enable_autoscaler Flag to enable/disable DynamoDB autoscaling bool "true" no
dynamodb_enabled Set to false to prevent the module from creating any dynamodb resources string "false" no
dynamodb_global_secondary_index_map Additional global secondary indexes in the form of a list of mapped values object [] no
dynamodb_hash_key DynamoDB table Hash Key string "" no
dynamodb_hash_key_type Hash Key type, which must be a scalar type: S, N, or B for (S)tring, (N)umber or (B)inary data string "S" no
dynamodb_local_secondary_index_map Additional local secondary indexes in the form of a list of mapped values object [] no
dynamodb_name_override define dynamodb_name_override to set a name differnt from var.name string "" no
dynamodb_range_key DynamoDB table Range Key string "" no
dynamodb_range_key_type Range Key type, which must be a scalar type: S, N, or B for (S)tring, (N)umber or (B)inary data string "S" no
endpoints_domain The domain / route53 zone we need to add a record with string "" no
iam_inline_policies Policies applied to the assuming role list [] no
iam_role_enabled Set to false to prevent iam role creation string "false" no
iam_role_principals_arns List of ARNs to allow assuming the iam role. Could be AWS services or accounts, Kops nodes, IAM users or groups list(string) [] no
iam_user_enabled Set to false to prevent iam user creation string "false" no
iam_user_path Set the path for the iam user string "/" no
rds_admin_pass Admin user password. At least 8 characters. string "" no
rds_admin_user Admin user name, should default when empty string "admin" no
rds_allocated_storage Storage size in Gb string "20" no
rds_allowed_subnet_cidrs List of CIDRs/subnets which should be able to connect to the RDS instance list(string) [ "127.0.0.1/32" ] no
rds_apply_immediately Specifies whether any database modifications are applied immediately, or during the next maintenance window bool "false" no
rds_auto_minor_version_upgrade Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window bool "false" no
rds_backup_retention_period Retention period for DB snapshots in days string "14" no
rds_backup_window Backup window string "03:00-06:00" no
rds_ca_cert_identifier The identifier of the CA certificate for the DB instance. string "rds-ca-2019" no
rds_copy_tags_to_snapshot On delete, copy all Instance tags to the final snapshot (if final_snapshot_identifier is specified) bool "true" no
rds_db_subnet_group_description Description of the DB subnet group to create string "" no
rds_db_subnet_group_name Subnet groups for RDS instance string "" no
rds_dbname_override RDS DB Name override in case the identifier is not wished as db name string "" no
rds_deletion_protection Protect RDS instance from deletion string "true" no
rds_enable_s3_dump Set to true to allow the module to create RDS DB dump resources. bool "false" no
rds_enabled Set to false to prevent the module from creating any rds resources bool "false" no
rds_enabled_cloudwatch_logs_exports List of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine): alert, audit, error, general, listener, slowquery, trace, postgresql (PostgreSQL), upgrade (PostgreSQL). list(string) [] no
rds_engine RDS instance engine string "mysql" no
rds_engine_version RDS instance engine version string "5.7.19" no
rds_enhanced_monitoring_interval The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. number "0" no
rds_family Parameter Group string "mysql5.7" no
rds_final_snapshot_identifier_override RDS final snapshot identifier override. string "" no
rds_iam_database_authentication_enabled Enable / disable IAM database authentication string "false" no
rds_identifier_override RDS identifier override. Use only lowercase, numbers and -, _., only use when it needs to be different from var.name string "" no
rds_iops The amount of provisioned IOPS. Setting this implies a storage_type of 'io1' number "0" no
rds_kms_key_id KMS key ARN for storage encryption string "" no
rds_license_model License model information for this DB instance. Optional, but required for some DB engines, i.e. Oracle SE1 string "" no
rds_maintenance_window Window of RDS Maintenance string "Mon:16:00-Mon:18:00" no
rds_major_engine_version RDS instance major engine version string "5.7" no
rds_max_allocated_storage Specifies the value for Storage Autoscaling number "0" no
rds_multi_az Replication settings string "true" no
rds_node_type VM type which should be taken for nodes in the RDS instance string "db.t3.micro" no
rds_option_group_description The description of the option group string "" no
rds_option_group_name Option groups for database string "" no
rds_option_group_timeouts Define maximum timeout for deletion of aws_db_option_group resource map(string) { "delete": "15m" } no
rds_option_group_use_name_prefix Determines whether to use option_group_name as is or create a unique name beginning with the option_group_name as the prefix bool "true" no
rds_options A list of RDS Options to apply any [] no
rds_parameter_group_description Description of the DB parameter group to create string "" no
rds_parameter_group_name Parameter group for database string "" no
rds_parameters List of RDS parameters to apply list(map(string)) [] no
rds_performance_insights_enabled Specifies whether Performance Insights are enabled bool "false" no
rds_performance_insights_retention_period The amount of time in days to retain Performance Insights data. Either 7 (7 days) or 731 (2 years). number "7" no
rds_port TCP port where DB accept connections string "3306" no
rds_s3_dump_allowed_ips List of CIDRs allowed to access data on the S3 bucket for RDS DB dumps list(string) [] no
rds_s3_dump_name_prefix The S3 name prefix string "" no
rds_s3_dump_role_arn IAM role ARN to be associated with the RDS instance, for being able to access the S3 dump bucket(s). If this is set, the module will not create the role nor its policy but instead will directly associate the RDS instance with passed role. If this is not set, the module will handle the creation of the IAM policy and the role itself. string "" no
rds_s3_kms_dump_key_additional_role_arns List of IAM role ARNs that are able to access the KMS key used for encrypting RDS dump files in the S3 bucket list(string) [] no
rds_skip_final_snapshot Skip final snapshot on deletion string "false" no
rds_storage_encrypted Enable encryption for RDS instance storage string "true" no
rds_storage_type Storage type string "gp2" no
rds_subnet_tag_filter The Map to filter the subnets of the VPC where the RDS component of the Microservice resides map {} no
rds_timeouts (Optional) Updated Terraform resource management timeouts. Applies to aws_db_instance in particular to permit resource management times map(string) { "create": "40m", "delete": "40m", "update": "80m" } no
rds_use_random_password with rds_use_random_password set to true the RDS database will be configured with a random password string "true" no
redis_allowed_subnet_cidrs List of CIDRs/subnets which should be able to connect to the Redis cluster list(string) [ "127.0.0.1/32" ] no
redis_apply_immediately Specifies whether any modifications are applied immediately, or during the next maintenance window. string "false" no
redis_at_rest_encryption_enabled Redis encrypt storage string "false" no
redis_auto_minor_version_upgrade Redis allow auto minor version upgrade string "true" no
redis_cluster_id_override Redis cluster ID. Use only lowercase, numbers and -, _., only use when it needs to be different from var.name string "" no
redis_enabled Set to false to prevent the module from creating any redis resources string "false" no
redis_group_engine_version Redis engine version to be used string "5.0.0" no
redis_group_parameter_group_name Redis parameter group name string "default.redis5.0.cluster.on" no
redis_instance_type Redis instance type string "cache.m4.large" no
redis_maintenance_window Redis snapshot window string "mon:10:00-mon:12:00" no
redis_multi_az_enabled Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic_failover_enabled must also be enabled. bool "false" no
redis_port Redis port string "6379" no
redis_replicas_count Number of replica nodes in each node group string "1" no
redis_shards_count Number of shards string "1" no
redis_snapshot_window Redis snapshot window string "00:00-05:00" no
redis_subnet_tag_filter The Map to filter the subnets of the VPC where the Redis component of the Microservice resides map {} no
redis_transit_encryption_enabled Redis encrypt transit TLS string "false" no
s3_enabled S3 bucket creation and iam policy creation enabled bool "false" no
s3_force_destroy S3 Force destroy bool "true" no
s3_identifier The S3 Bucket name string "" no
s3_lifecycle_rules S3 Lifecycle rules list [] no
s3_versioning_enabled S3 Versioning enabled bool "true" no
sqs1_delay_seconds define sqs1_delay_seconds string "0" no
sqs1_dlq_enabled Set to false to prevent the module from creating any sqs-dql resources string "false" no
sqs1_enabled Set to false to prevent the module from creating any sqs resources string "false" no
sqs1_fifo_queue Boolean designating a FIFO queue string "false" no
sqs1_max_message_size The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days) string "262144" no
sqs1_name_override define sqs1_name_override to set a name differnt from var.name string "" no
sqs1_receive_wait_time_seconds The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds) string "0" no
sqs1_redrive_policy The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5") string "" no
sqs1_visibility_timeout_seconds The visibility timeout for the queue. An integer from 0 to 43200 (12 hours) string "30" no
sqs2_delay_seconds define sqs2_delay_seconds string "0" no
sqs2_dlq_enabled Set to false to prevent the module from creating any sqs-dql resources string "false" no
sqs2_enabled Set to false to prevent the module from creating any sqs resources string "false" no
sqs2_fifo_queue Boolean designating a FIFO queue string "false" no
sqs2_max_message_size The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days) string "262144" no
sqs2_name_override define sqs2_name_override to set a name differnt from var.name string "" no
sqs2_receive_wait_time_seconds The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds) string "0" no
sqs2_redrive_policy The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5") string "" no
sqs2_visibility_timeout_seconds The visibility timeout for the queue. An integer from 0 to 43200 (12 hours) string "30" no
sqs3_delay_seconds define sqs3_delay_seconds string "0" no
sqs3_dlq_enabled Set to false to prevent the module from creating any sqs-dql resources string "false" no
sqs3_enabled Set to false to prevent the module from creating any sqs resources string "false" no
sqs3_fifo_queue Boolean designating a FIFO queue string "false" no
sqs3_max_message_size The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days) string "262144" no
sqs3_name_override define sqs3_name_override to set a name differnt from var.name string "" no
sqs3_receive_wait_time_seconds The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds) string "0" no
sqs3_redrive_policy The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5") string "" no
sqs3_visibility_timeout_seconds The visibility timeout for the queue. An integer from 0 to 43200 (12 hours) string "30" no
sqs4_delay_seconds define sqs4_delay_seconds string "0" no
sqs4_dlq_enabled Set to false to prevent the module from creating any sqs-dql resources string "false" no
sqs4_enabled Set to false to prevent the module from creating any sqs resources string "false" no
sqs4_fifo_queue Boolean designating a FIFO queue string "false" no
sqs4_max_message_size The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days) string "262144" no
sqs4_name_override define sqs4_name_override to set a name differnt from var.name string "" no
sqs4_receive_wait_time_seconds The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds) string "0" no
sqs4_redrive_policy The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5") string "" no
sqs4_visibility_timeout_seconds The visibility timeout for the queue. An integer from 0 to 43200 (12 hours) string "30" no
sqs5_delay_seconds define sqs5_delay_seconds string "0" no
sqs5_dlq_enabled Set to false to prevent the module from creating any sqs-dql resources string "false" no
sqs5_enabled Set to false to prevent the module from creating any sqs resources string "false" no
sqs5_fifo_queue Boolean designating a FIFO queue string "false" no
sqs5_max_message_size The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days) string "262144" no
sqs5_name_override define sqs5_name_override to set a name differnt from var.name string "" no
sqs5_receive_wait_time_seconds The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds) string "0" no
sqs5_redrive_policy The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5") string "" no
sqs5_visibility_timeout_seconds The visibility timeout for the queue. An integer from 0 to 43200 (12 hours) string "30" no
vpc_tag_filter The map of tags to match the VPC tags with where the RDS or Redis or other networked AWS component of the Microservice resides map {} no

Outputs

Name Description
dynamodb2_global_secondary_index_names DynamoDB secondary index names
dynamodb2_local_secondary_index_names DynamoDB local index names
dynamodb2_table_arn DynamoDB table ARN
dynamodb2_table_id DynamoDB table ID
dynamodb2_table_name DynamoDB table name
dynamodb2_table_stream_arn DynamoDB table stream ARN
dynamodb2_table_stream_label DynamoDB table stream label
dynamodb3_global_secondary_index_names DynamoDB secondary index names
dynamodb3_local_secondary_index_names DynamoDB local index names
dynamodb3_table_arn DynamoDB table ARN
dynamodb3_table_id DynamoDB table ID
dynamodb3_table_name DynamoDB table name
dynamodb3_table_stream_arn DynamoDB table stream ARN
dynamodb3_table_stream_label DynamoDB table stream label
dynamodb_global_secondary_index_names DynamoDB secondary index names
dynamodb_local_secondary_index_names DynamoDB local index names
dynamodb_table_arn DynamoDB table ARN
dynamodb_table_id DynamoDB table ID
dynamodb_table_name DynamoDB table name
dynamodb_table_stream_arn DynamoDB table stream ARN
dynamodb_table_stream_label DynamoDB table stream label
private_rds_endpoint_aws_route53_record Private Redis cluster end-point address (should be used by the service)
private_redis_endpoint_aws_route53_record Private Redis cluster end-point address (should be used by the service)
public_rds_endpoint_aws_route53_record Public Redis cluster end-point address (should be used by the service)
public_redis_endpoint_aws_route53_record Public Redis cluster end-point address (should be used by the service)
rds_this_db_instance_address The address of the RDS instance
rds_this_db_instance_arn The ARN of the RDS instance
rds_this_db_instance_availability_zone The availability zone of the RDS instance
rds_this_db_instance_endpoint The connection endpoint
rds_this_db_instance_hosted_zone_id The canonical hosted zone ID of the DB instance (to be used in a Route 53 Alias record)
rds_this_db_instance_id The RDS instance ID
rds_this_db_instance_name The database name
rds_this_db_instance_password The database password (this password may be old, because Terraform doesn't track it after initial creation)
rds_this_db_instance_port The database port
rds_this_db_instance_resource_id The RDS Resource ID of this instance
rds_this_db_instance_status The RDS instance status
rds_this_db_instance_username The master username for the database
rds_this_db_parameter_group_arn The ARN of the db parameter group
rds_this_db_parameter_group_id The db parameter group id
rds_this_db_subnet_group_arn The ARN of the db subnet group
rds_this_db_subnet_group_id The db subnet group name
redis_port Redis port
sqs1_dlq_queue_arn SQS queue ARN
sqs1_queue_arn SQS queue ARN
sqs1_queue_id SQS queue ID
sqs1_queue_name SQS queue name
sqs2_dlq_queue_arn SQS queue ARN
sqs2_queue_arn SQS queue ARN
sqs2_queue_id SQS queue ID
sqs2_queue_name SQS queue name
sqs3_dlq_queue_arn SQS queue ARN
sqs3_queue_arn SQS queue ARN
sqs3_queue_id SQS queue ID
sqs3_queue_name SQS queue name
sqs4_dlq_queue_arn SQS queue ARN
sqs4_queue_arn SQS queue ARN
sqs4_queue_id SQS queue ID
sqs4_queue_name SQS queue name
sqs5_dlq_queue_arn SQS queue ARN
sqs5_queue_arn SQS queue ARN
sqs5_queue_id SQS queue ID
sqs5_queue_name SQS queue name
this_aws_iam_access_key IAM Access Key of the created user
this_aws_iam_access_key_secret The secret key of the user
this_aws_s3_bucket_arn id of created S3 bucket
this_aws_s3_bucket_id id of created S3 bucket
this_iam_role_arn iam role arn
this_iam_role_name iam role name
this_redis_replication_group_id The AWS Elasticache replication group ID
this_redis_replication_group_number_cache_clusters The AWS Elasticache replication group number cache clusters
this_redis_replication_group_replication_group_id The AWS Elasticache replication group replication group ID
this_redis_subnet_group_id The AWS elasticache subnet group ID
this_redis_subnet_group_name The AWS elasticache subnet group name
this_user_arn ARN of the IAM user
this_user_name IAM user name

License

MIT

Copyright (c) 2019 Flaconi GmbH

About

Boilerplate Terraform Module for creating resources for typical micro services.

License:MIT License


Languages

Language:HCL 93.1%Language:Makefile 6.9%