[Terraform] RDS Snapshot

과제의 목표

스냅샷 복원을 이용하여 RDS를 구축 하는 것이다.

resource "aws_db_instance" "rds" {
  // DB 인스턴스 설정
  engine                 = "oracle-se2"
  license_model          = "license-included"
  identifier             = "tokyo-stg-rds-gh"
  //복원 할 스냅샷 지정
  snapshot_identifier    = "tokyo-stg-rds-gh-1234"
  //인스턴스 구성
  instance_class         = "db.r5.large"
  //스토리지
  storage_type           = "gp2"
  allocated_storage      = 1712
  storage_encrypted      = true 
  max_allocated_storage  = 0
  //multi_az
  multi_az               = false
  //서브넷과 연결
  db_subnet_group_name   = "private-rds-subnets"
  vpc_security_group_ids = [
    data.aws_security_group.office_oracle.id,
    aws_security_group.rds_sg.id
  ]
  //추가 구성 
  parameter_group_name       = "oracle-se2-19-kst"
  option_group_name          = "rds-gh-ora-se2-19-opt-grp"
 }

위의 코드에서 가장 중요한 포인트는 snapshot_identifier이다.


왜냐하면

과제의 키 포인트는 스냅샷을 만드는게 아닌,

이미 만들어진 스냅샷을 활용해 rds를 복원하는 것이기 때문이다.


만약, 우리의 목표가 스냅샷 tokyo-stg-rds-gh-1234로 만들어라 했다면

  //복원 할 스냅샷 지정
  snapshot_identifier    = "tokyo-stg-rds-gh-1234"

위의 코드를 지우고 아래와 같은 코드를 추가해야 한다.

resource "aws_db_snapshot" "rds_snapshot-gh" {
  db_instance_identifier = aws_db_instance.bar.identifier 
  db_snapshot_identifier = "tokyo-stg-rds-gh-1234"
}