diff --git a/terraform-rds/.gitignore b/terraform-rds/.gitignore new file mode 100644 index 0000000000..dc825268a9 --- /dev/null +++ b/terraform-rds/.gitignore @@ -0,0 +1,34 @@ +# Local .terraform directories +**/.terraform/* + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log +crash.*.log + +# Exclude all .tfvars files, which are likely to contain sensitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +*.tfvars +*.tfvars.json + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Include override files you do wish to add to version control using negated pattern +# !example_override.tf + +# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc \ No newline at end of file diff --git a/terraform-rds/.terraform.lock.hcl b/terraform-rds/.terraform.lock.hcl new file mode 100644 index 0000000000..9790f4af82 --- /dev/null +++ b/terraform-rds/.terraform.lock.hcl @@ -0,0 +1,44 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "5.39.0" + constraints = "~> 5.0" + hashes = [ + "h1:1/IdEllzG5FDg+voHrUnYvyoOd321v/ihzWKtNh62SI=", + "zh:01e405306470ed784bc9d38dbaeff394bd2c0f7d58e5592c5d0165c87d84e4b0", + "zh:0328fbd42a91e50601318d2c364a80ebd3b4e5755c85df6fafd2fed80bc54598", + "zh:042420e08d1ef1e2ed51c394539a6db27e031bedb9eaa19db9ccaf9fa93b9b36", + "zh:47dee460b2c06676e16f5070fff71e5e9eb24b74bcd7b4f7b53eea8ebd3c972f", + "zh:49c34f21a05bf5150e3a0a87c997fcd831ae81e3f2df86191e2fdd231525b585", + "zh:4d5a98726216e260296bdc13e562179a743ef4738b65154da697c2d9e9eb5c9b", + "zh:7fb08af13c868d8d20519b373eeb6707a0cea078495123e28e71727993474f53", + "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", + "zh:a57e7e44f79991e55be02f2b147a433b5a2690188be0510409b79e9b00e37009", + "zh:aeeb120cd6245f67ae3e52e13005c2dc1f091787564dd6b39ee6c05b2c239c53", + "zh:b5d39c6e55d0355f9fd93a802355166bd27edaf9acb753b190562474447674b2", + "zh:cfcc1922b380db5f90fd5ffc1e49fb9f316e6c41de4603f65b05d20ace72e15e", + "zh:d221d8cea09229743d2647944c0420a8e9e5d7e3ff088b30cbce85a8b051dcab", + "zh:dccca0239df6d39686b0f0947040b3c0e1270a4bab268c402b742cf5a7759296", + "zh:ef0564fb70e8210db9bf472f662e093a1a1f204a1c1cb46467231be1a78882f3", + ] +} + +provider "registry.terraform.io/hashicorp/null" { + version = "3.2.2" + hashes = [ + "h1:vWAsYRd7MjYr3adj8BVKRohVfHpWQdvkIwUQ2Jf5FVM=", + "zh:3248aae6a2198f3ec8394218d05bd5e42be59f43a3a7c0b71c66ec0df08b69e7", + "zh:32b1aaa1c3013d33c245493f4a65465eab9436b454d250102729321a44c8ab9a", + "zh:38eff7e470acb48f66380a73a5c7cdd76cc9b9c9ba9a7249c7991488abe22fe3", + "zh:4c2f1faee67af104f5f9e711c4574ff4d298afaa8a420680b0cb55d7bbc65606", + "zh:544b33b757c0b954dbb87db83a5ad921edd61f02f1dc86c6186a5ea86465b546", + "zh:696cf785090e1e8cf1587499516b0494f47413b43cb99877ad97f5d0de3dc539", + "zh:6e301f34757b5d265ae44467d95306d61bef5e41930be1365f5a8dcf80f59452", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:913a929070c819e59e94bb37a2a253c228f83921136ff4a7aa1a178c7cce5422", + "zh:aa9015926cd152425dbf86d1abdbc74bfe0e1ba3d26b3db35051d7b9ca9f72ae", + "zh:bb04798b016e1e1d49bcc76d62c53b56c88c63d6f2dfe38821afef17c416a0e1", + "zh:c23084e1b23577de22603cff752e59128d83cfecc2e6819edadd8cf7a10af11e", + ] +} diff --git a/terraform-rds/main.tf b/terraform-rds/main.tf new file mode 100644 index 0000000000..5dd5dee25a --- /dev/null +++ b/terraform-rds/main.tf @@ -0,0 +1,29 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 5.0" + } + } +} + +provider "aws" { + region = "eu-west-2" + access_key = var.aws_access_key_id + secret_key = var.aws_secret_access_key +} + +resource "aws_db_instance" "videosRds" { + identifier = "videos-rds" + allocated_storage = 20 + storage_type = "gp2" + engine = "postgres" + engine_version = "16.1" + instance_class = "db.t3.micro" + publicly_accessible = true + parameter_group_name = "default.postgres16" + vpc_security_group_ids = [var.vpc_security_group_id] + username = "postgres123" + password = var.db_password + skip_final_snapshot = true +} \ No newline at end of file diff --git a/terraform-rds/variables.tf b/terraform-rds/variables.tf new file mode 100644 index 0000000000..0129d2890c --- /dev/null +++ b/terraform-rds/variables.tf @@ -0,0 +1,21 @@ +variable "aws_access_key_id" { + type = string + description = "AWS Access Key ID" +} + +variable "aws_secret_access_key" { + type = string + sensitive = true + description = "AWS Secret Access Key" +} + +variable "vpc_security_group_id" { + type = string + description = "AWS RDS vpc_security_group_id" + default = "sg-07e4fcb5547f26caf" +} + +variable "db_password" { + type = string + description = "db_password" +}