説明
バックアップ保持期間は、自動バックアップをいつまで残すかを決め、復旧可能な時点とデータ保護に影響します。本番データベースでは、障害や操作ミスに備えて必要な復旧期間を明確にする必要があります。
以下の Aurora の例では、保持期間を省略しても自動バックアップは無効になりません。Aurora の自動バックアップは無効化できず、保持期間は 1~35 日です。AWS プロバイダー v6.14.0 の aws_rds_cluster.backup_retention_period の既定値は 1 日です。
想定される影響
- 復旧計画の不明確さ: 必要な時点まで復旧できるかを判断しにくくなる場合があります。
- データ損失のリスク: 保持期間が要件より短いと、必要な復旧データが残らない可能性があります。
- 運用基準の不統一: 環境ごとにバックアップ基準が異なると、確認や監査が難しくなります。
対処方法
- 復旧要件に合わせて
backup_retention_periodを明示してください。 - サービスの重要度に応じた保持基準を定め、一貫して適用してください。
- 実際に復元できる時点を確認し、定期的な復元テストを運用手順に含めてください。
例
Aurora クラスター設定の抜粋です。インスタンスとネットワークを別途設定し、リージョンとアベイラビリティーゾーンを合わせてください。var.db_password にはエンジン要件に適合するパスワードを安全に渡し、パスワードが含まれる可能性のある Terraform の状態も保護してください。
既定の保持期間を使用
hcl
resource "aws_rds_cluster" "example" {
cluster_identifier = "aurora-cluster-demo"
engine = "aurora-postgresql"
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
database_name = "mydb"
master_username = "foo"
master_password = var.db_password
preferred_backup_window = "07:00-09:00"
}
保持期間を明示
hcl
resource "aws_rds_cluster" "example" {
cluster_identifier = "aurora-cluster-demo"
engine = "aurora-postgresql"
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
database_name = "mydb"
master_username = "foo"
master_password = var.db_password
backup_retention_period = 5
preferred_backup_window = "07:00-09:00"
}
最初の例はプロバイダーの既定の保持期間を使い、次の例は 5 日を明示します。5 日がすべてのサービスに適するわけではないため、業務上の復旧要件に基づいて決めてください。