はじめに
こんばんは。
今回は以下の本を読んで勉強中です。
前回の記事はこちら
今回は第13章です。
バージョンは以下です。
$ terraform --version Terraform v1.0.3
本題
第13章 データストア
RDSとElastiCacheについて学べます。
terraform関係なく良く使ったことある機能です。
RDS
### セキュリティグループ module "mysql_sg" { source = "./security_group" name = "mysql-sg" vpc_id = module.vpc.vpc_id port = 3306 cidr_blocks = ["0.0.0.0/0"] } ### パラメータグループ resource "aws_db_parameter_group" "default" { name = "example" family = "mysql5.7" parameter { name = "character_set_database" value = "utf8mb4" } parameter { name = "character_set_server" value = "utf8mb4" } } ### オプショングループ resource "aws_db_option_group" "default" { name = "example" engine_name = "mysql" major_engine_version = "5.7" option { option_name = "MARIADB_AUDIT_PLUGIN" } } ### サブネットグループ resource "aws_db_subnet_group" "default" { name = "example" subnet_ids = [module.network.private_subnet_0_id, module.network.private_subnet_1_id] } ### DBインスタンス作成 resource "aws_db_instance" "default" { identifier = "example" engine = "mysql" engine_version = "5.7.25" instance_class = "db.t3.small" allocated_storage = 20 max_allocated_storage = 100 storage_type = "gp2" storage_encrypted = true kms_key_id = aws_kms_alias.default.arn username = "admin" password = "pasword!!" multi_az = false publicly_accessible = false backup_window = "09:10-09:40" backup_retention_period = 30 maintenance_window = "mon:10:10-mon:10:40" auto_minor_version_upgrade = false deletion_protection = false # terraform destoryで削除可能にするためfalse skip_final_snapshot = true # スナップショット作成をスキップする port = 3306 apply_immediately = false vpc_security_group_ids = [module.mysql_sg.security_group_id] parameter_group_name = aws_db_parameter_group.default.name option_group_name = aws_db_option_group.default.name db_subnet_group_name = aws_db_subnet_group.default.name lifecycle { ignore_changes = [password] } }
ElastiCache
### セキュリティグループ module "redis_sg" { source = "./security_group" name = "redis-sg" vpc_id = module.vpc.vpc_id port = 6379 cidr_blocks = ["0.0.0.0/0"] } ### パラメータグループ resource "aws_elasticache_parameter_group" "default" { name = "example" family = "redis5.0" parameter { name = "cluster-enabled" value = "no" } } ### サブネットグループ resource "aws_elasticache_subnet_group" "default" { name = "example" subnet_ids = [module.network.private_subnet_0_id, module.network.private_subnet_1_id] } ### Redisサーバ作成 resource "aws_elasticache_replication_group" "default" { replication_group_id = "default" replication_group_description = "Cluster Disabled" engine = "redis" engine_version = "5.0.4" number_cache_clusters = 1 # レプリカノードは作らない node_type = "cache.t3.micro" snapshot_window = "09:10-10:10" snapshot_retention_limit = 7 maintenance_window = "mon:10:40-mon:11:40" automatic_failover_enabled = false port = 6379 apply_immediately = false security_group_ids = [module.redis_sg.security_group_id] parameter_group_name = aws_elasticache_parameter_group.default.name subnet_group_name = aws_elasticache_subnet_group.default.name }
終わりに
金・土はガッツリ仕事で、日は家族の用事でめちゃめちゃ大変な週末でした。
そろそろこの本も半分来たな。
来週からまたがんばります!