본문 바로가기
INFRA/Operation

Terraform 리소스에 대한 이해 - AWS 3편

by BTC_Dana 2022. 10. 4.

 

안녕하세요!
하씨가문의 영광입니다!

지난주 Terraform AWS EC2까지 다루었는데요!
이번에는 AWS의 DB를 다뤄보도록 하겠습니다:)
Don't have a good day, Have a great day!

목차

  1. aws_db_subnet_group
  2. aws_db_instance
  3. aws_db_security_group
  4. aws_db_parameter_group

 

1. aws_db_subnet_group
resource "aws_db_subnet_group" "default" {
  name       = "main"
  subnet_ids = [aws_subnet.frontend.id, aws_subnet.backend.id]

  tags = {
    Name = "My DB subnet group"
  }
}
필수 설명 옵션 설명
name DB 서브넷 그룹의 이름입니다. name_prefix 이름에 붙일 접두사로 고유한 이름을 지정합니다.
subnet_ids VPC 서브넷를 지정할 ID 목록입니다. description DB 서브넷 그룹에 대한 설명입니다.
tags 리소스에 할당할 태그입니다.
2. aws_db_instance
resource "aws_db_instance" "default" {
  allocated_storage    = 10
  db_name              = "mydb"
  engine               = "mysql"
  engine_version       = "5.7"
  instance_class       = "db.t3.micro"
  username             = "foo"
  password             = "foobarbaz"
  parameter_group_name = "default.mysql5.7"
  skip_final_snapshot  = true
}
  • 자주 사용하는 리소스 기준으로 작성하겠습니다.
필수 설명 옵션 설명
db_name DB의 이름을 지정합니다. availability_zone RDS 인스턴스의 가용용역을 지정합니다.
instace_class DB 인스턴스 타입을 설정합니다. backup_window 자동 백업이 생성되는 범위를 지정합니다.
username DB에 접속할 사용자를 생성합니다. delete_automated_backups DB 인스턴스가 삭제된 직후 백업을 제거할지 여부를 지정합니다.
password DB에 접속하는 사용자의 비밀번호를 지정합니다. deletion_protection DB 인스턴스에 삭제 방지 기능 활성화를 선택합니다.
parameter_group_name DB의 파라미터 그룹을 설정합니다. multi_az RDS 인스턴스의 다중 AZ를 선택할지를 지정합니다.
engine DB의 엔진을 선택합니다. option_group_name DB에 연결할 옵션 그룹의 이름입니다.
engine_version DB의 사용할 엔진 버전을 선택합니다. port DB가 연결을 수락하는 포트입니다.
vpc_security_group_ids DB에 연결할 VPC보안 그룹 목록입니다.
3. aws_db_security_group
resource "aws_db_security_group" "default" {
  name = "rds_sg"

  ingress {
    cidr = "10.0.0.0/24"
  }
}
필수 설명 옵션 설명
name DB 보안 그룹의 이름을 지정합니다. description DB 보안 그룹에 대한 설명입니다.
ingress 수신 규칙 목록을 지정합니다. tags 리소스에 할당할 태그를 지정합니다.
  • ingress의 인수 목록입니다.
필수 설명
cidr DB에 설정할 cidr를 지정합니다.
security_group_name 권한을 부여할 보안 그룹의 이름을 지정합니다.
security_group_id 권한을 부여할 보안 그룹의 ID를 지정합니다.
security_group_owner_id 보안 그룹의 소유자 ID를 지정합니다.

 

4. aws_db_parameter_group
resource "aws_db_parameter_group" "default" {
  name   = "rds-pg"
  family = "mysql5.6"

  parameter {
    name  = "character_set_server"
    value = "utf8"
  }

  parameter {
    name  = "character_set_client"
    value = "utf8"
  }
}
필수 설명 옵션 설명
name DB 파라미터 그룹의 이름을 지정합니다. name_prefix 지정된 접두사로 시작하는 고유 이름을 지정합니다.
family DB 파라미터 그룹의 버전을 선택합니다. parameter DB에 적용할 매개변수 목록입니다.
tags 리소스에 적용할 태그를 지정합니다.

 

이렇게 Terraform 기반 AWS DB 리소스들을 알아봤는데요!
DB를 구성할 때는 사용자의 기준에 맞게 설정하면 어플리케이션의 구동을
보다 편리하게 다룰 수 있어요!
오늘도 읽어주셔서 감사합니다!

댓글