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

▶ 목차
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를 구성할 때는 사용자의 기준에 맞게 설정하면 어플리케이션의 구동을
보다 편리하게 다룰 수 있어요!
오늘도 읽어주셔서 감사합니다!

'INFRA > Operation' 카테고리의 다른 글
쿠버네티스 이론 STEP13 Scheduling 3 Cordon & Uncordon & Drain (0) | 2022.10.05 |
---|---|
Terraform 리소스에 대한 이해 - AWS 2편 (0) | 2022.10.04 |
쿠버네티스 이론STEP12 Scheduling 2 Affinity & AntiAffinity (0) | 2022.10.04 |
쿠버네티스 이론STEP11 Scheduling 1 Taint & Toleration (0) | 2022.09.27 |
Terraform 리소스에 대한 이해 - AWS 1편 (2) | 2022.09.19 |
댓글