{"id":40748,"date":"2023-10-02T21:17:09","date_gmt":"2023-10-02T21:17:09","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=40748"},"modified":"2023-10-02T21:17:10","modified_gmt":"2023-10-02T21:17:10","slug":"terraform-create-new-rds-instance-new-database-in-existing-rds-instance","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/terraform-create-new-rds-instance-new-database-in-existing-rds-instance\/","title":{"rendered":"Terraform: Create New RDS instance &amp; New Database in Existing RDS Instance"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Create New RDS instance: Module <\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/registry.terraform.io\/modules\/terraform-aws-modules\/rds\/aws\/latest\" target=\"_blank\" rel=\"noopener\">https:\/\/registry.terraform.io\/modules\/terraform-aws-modules\/rds\/aws\/latest<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">module <span class=\"hljs-string\">\"db\"<\/span> {\r\n  source = <span class=\"hljs-string\">\"terraform-aws-modules\/rds\/aws\"<\/span>\r\n\r\n  identifier = <span class=\"hljs-string\">\"demodb\"<\/span>\r\n\r\n  engine            = <span class=\"hljs-string\">\"mysql\"<\/span>\r\n  engine_version    = <span class=\"hljs-string\">\"5.7\"<\/span>\r\n  instance_class    = <span class=\"hljs-string\">\"db.t3a.large\"<\/span>\r\n  allocated_storage = <span class=\"hljs-number\">5<\/span>\r\n\r\n  db_name  = <span class=\"hljs-string\">\"demodb\"<\/span>\r\n  username = <span class=\"hljs-string\">\"user\"<\/span>\r\n  port     = <span class=\"hljs-string\">\"3306\"<\/span>\r\n\r\n  iam_database_authentication_enabled = <span class=\"hljs-keyword\">true<\/span>\r\n\r\n  vpc_security_group_ids = &#91;<span class=\"hljs-string\">\"sg-12345678\"<\/span>]\r\n\r\n  maintenance_window = <span class=\"hljs-string\">\"Mon:00:00-Mon:03:00\"<\/span>\r\n  backup_window      = <span class=\"hljs-string\">\"03:00-06:00\"<\/span>\r\n\r\n  <span class=\"hljs-comment\"># Enhanced Monitoring - see example for details on how to create the role<\/span>\r\n  <span class=\"hljs-comment\"># by yourself, in case you don't want to create it automatically<\/span>\r\n  monitoring_interval    = <span class=\"hljs-string\">\"30\"<\/span>\r\n  monitoring_role_name   = <span class=\"hljs-string\">\"MyRDSMonitoringRole\"<\/span>\r\n  create_monitoring_role = <span class=\"hljs-keyword\">true<\/span>\r\n\r\n  tags = {\r\n    Owner       = <span class=\"hljs-string\">\"user\"<\/span>\r\n    Environment = <span class=\"hljs-string\">\"dev\"<\/span>\r\n  }\r\n\r\n  <span class=\"hljs-comment\"># DB subnet group<\/span>\r\n  create_db_subnet_group = <span class=\"hljs-keyword\">true<\/span>\r\n  subnet_ids             = &#91;<span class=\"hljs-string\">\"subnet-12345678\"<\/span>, <span class=\"hljs-string\">\"subnet-87654321\"<\/span>]\r\n\r\n  <span class=\"hljs-comment\"># DB parameter group<\/span>\r\n  family = <span class=\"hljs-string\">\"mysql5.7\"<\/span>\r\n\r\n  <span class=\"hljs-comment\"># DB option group<\/span>\r\n  major_engine_version = <span class=\"hljs-string\">\"5.7\"<\/span>\r\n\r\n  <span class=\"hljs-comment\"># Database Deletion Protection<\/span>\r\n  deletion_protection = <span class=\"hljs-keyword\">true<\/span>\r\n\r\n  parameters = &#91;\r\n    {\r\n      name  = <span class=\"hljs-string\">\"character_set_client\"<\/span>\r\n      value = <span class=\"hljs-string\">\"utf8mb4\"<\/span>\r\n    },\r\n    {\r\n      name  = <span class=\"hljs-string\">\"character_set_server\"<\/span>\r\n      value = <span class=\"hljs-string\">\"utf8mb4\"<\/span>\r\n    }\r\n  ]\r\n\r\n  options = &#91;\r\n    {\r\n      option_name = <span class=\"hljs-string\">\"MARIADB_AUDIT_PLUGIN\"<\/span>\r\n\r\n      option_settings = &#91;\r\n        {\r\n          name  = <span class=\"hljs-string\">\"SERVER_AUDIT_EVENTS\"<\/span>\r\n          value = <span class=\"hljs-string\">\"CONNECT\"<\/span>\r\n        },\r\n        {\r\n          name  = <span class=\"hljs-string\">\"SERVER_AUDIT_FILE_ROTATIONS\"<\/span>\r\n          value = <span class=\"hljs-string\">\"37\"<\/span>\r\n        },\r\n      ]\r\n    },\r\n  ]\r\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">New Database in Existing RDS Instance<\/h2>\n\n\n\n<p>If you want to create a database in an existing RDS instance, you can use the <code>aws_rds_database<\/code> resource instead of the <code>rds_database<\/code> module. The <code>aws_rds_database<\/code> resource allows you to specify the identifier of the existing RDS instance that you want to create the database in.<\/p>\n\n\n\n<p>For example, the following Terraform configuration would create a database called <code>my_database<\/code> in the RDS instance with the identifier <code>my_existing_rds_instance_identifier<\/code>:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">resource <span class=\"hljs-string\">\"aws_rds_database\"<\/span> <span class=\"hljs-string\">\"my_database\"<\/span> {\r\n  db_instance_identifier = <span class=\"hljs-string\">\"my_existing_rds_instance_identifier\"<\/span>\r\n  name = <span class=\"hljs-string\">\"my_database\"<\/span>\r\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Create New RDS instance: Module New Database in Existing RDS Instance If you want to create a database in an existing RDS instance, you can use the aws_rds_database resource instead&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-40748","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/40748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=40748"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/40748\/revisions"}],"predecessor-version":[{"id":40749,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/40748\/revisions\/40749"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=40748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=40748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=40748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}