03-basics: Fix deprecation warnings and postgres version error (#12)

This change updates the s3 bucket resource syntax to use the newer
resource types for specifying versioning and encryption configs.
We also enable auto_minor_version_upgrade for the RDS instance and
switch to only asking for major version 12.

This will just use the default/latest RDS PostgreSQL v12 minor
version. Upside, the specific engine_version provided here will take
longer before it becomes invalid. Minor downside, we are saying its
OK for this RDS instance to undergo minor version upgrades, which
while fine for a toy example like this, is often not great in prod.
This commit is contained in:
Lachlan Mulcahy
2022-09-06 16:53:38 -07:00
committed by GitHub
parent 4012eec6cd
commit 7a3fdaca72
2 changed files with 40 additions and 25 deletions

View File

@@ -27,15 +27,20 @@ provider "aws" {
resource "aws_s3_bucket" "terraform_state" { resource "aws_s3_bucket" "terraform_state" {
bucket = "devops-directive-tf-state" # REPLACE WITH YOUR BUCKET NAME bucket = "devops-directive-tf-state" # REPLACE WITH YOUR BUCKET NAME
force_destroy = true force_destroy = true
versioning { }
enabled = true
}
server_side_encryption_configuration { resource "aws_s3_bucket_versioning" "terraform_bucket_versioning" {
rule { bucket = aws_s3_bucket.terraform_state.id
apply_server_side_encryption_by_default { versioning_configuration {
sse_algorithm = "AES256" status = "Enabled"
} }
}
resource "aws_s3_bucket_server_side_encryption_configuration" "terraform_state_crypto_conf" {
bucket = aws_s3_bucket.terraform_state.bucket
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
} }
} }
} }

View File

@@ -46,15 +46,20 @@ resource "aws_instance" "instance_2" {
resource "aws_s3_bucket" "bucket" { resource "aws_s3_bucket" "bucket" {
bucket = "devops-directive-web-app-data" bucket = "devops-directive-web-app-data"
force_destroy = true force_destroy = true
versioning { }
enabled = true
}
server_side_encryption_configuration { resource "aws_s3_bucket_versioning" "bucket_versioning" {
rule { bucket = aws_s3_bucket.bucket.id
apply_server_side_encryption_by_default { versioning_configuration {
sse_algorithm = "AES256" status = "Enabled"
} }
}
resource "aws_s3_bucket_server_side_encryption_configuration" "bucket_crypto_conf" {
bucket = aws_s3_bucket.bucket.bucket
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
} }
} }
} }
@@ -198,13 +203,18 @@ resource "aws_route53_record" "root" {
} }
resource "aws_db_instance" "db_instance" { resource "aws_db_instance" "db_instance" {
allocated_storage = 20 allocated_storage = 20
storage_type = "standard" # This allows any minor version within the major engine_version
engine = "postgres" # defined below, but will also result in allowing AWS to auto
engine_version = "12.5" # upgrade the minor version of your DB. This may be too risky
instance_class = "db.t2.micro" # in a real production environment.
name = "mydb" auto_minor_version_upgrade = true
username = "foo" storage_type = "standard"
password = "foobarbaz" engine = "postgres"
skip_final_snapshot = true engine_version = "12"
instance_class = "db.t2.micro"
name = "mydb"
username = "foo"
password = "foobarbaz"
skip_final_snapshot = true
} }