作成するRDSの構造
パラメータグループ
rds.tf
# ---------------------------------------------
# RDS parameter group
# ---------------------------------------------
resource "aws_db_parameter_group" "mysql_standalone_parametergroup" {
name = "${var.project}-${var.environment}-mysql-standalone-parametergroup"
family = "mysql8.0"
parameter {
name = "character_set_database"
value = "utf8mb4"
}
parameter {
name = "character_set_server"
value = "utf8mb4"
}
}
オプショングループ
※今回は空のオプショングループを作成
rds.tf
# ---------------------------------------------
# RDS option group
# ---------------------------------------------
resource "aws_db_option_group" "mysql_standalone_optiongroup" {
name = "${var.project}-${var.environment}-mysql-standalone-optiongroup"
engine_name = "mysql"
major_engine_version = "8.0"
}
サブネットグループ
RDSを展開する先を設定する
rds.tf
# ---------------------------------------------
# RDS subnet group
# ---------------------------------------------
resource "aws_db_subnet_group" "mysql_standalone_subnetgroup" {
name = "${var.project}-${var.environment}-mysql-standalone-subnetgroup"
subnet_ids = [aws_subnet.private_subnet_1a.id, aws_subnet.private_subnet_1c.id]
tags = {
Name = "${var.project}-${var.environment}-mysql-standalone-subnetgroup"
Project = var.project
Env = var.environment
}
}
RDS作成
基本設定
項目 | 型 | 説明 |
---|---|---|
engine | string | データベースエンジン |
engine_version | string | データベースエンジンのバージョン |
identifier | string | RDSインスタンスリソース名 |
instance_class | string | インスタンスタイプ |
username | string | マスターDBのユーザー名 |
password | string | マスターDBのパスワード |
tags | object | タグ |
ストレージ
項目 | 型 | 説明 |
---|---|---|
allocated_storage | string | 割り当てるストレージサイズ(ギガバイト) |
max_allcated_storage | string | オートスケールさせる最大ストレージサイズ |
storage_type | enum | "standard","gp2","io1" |
storage_encrypted | string | DBを暗号化するKMS鍵IDまたはfalse |
他にも設定は膨大にある。疲れたので割愛(ネットワーク、DB設定、etc...)