rds for Oracleのロググループに保持期間を設定する

Terraformを使用して、CloudWatch Logsのロググループの保管期間(ログのリテンション期間)を設定するには、aws_cloudwatch_log_group リソースを利用します。既存のRDSインスタンスのロググループに対し、リテンション期間(保管期間)を設定するための方法を検討します。

以下の手順を参考にしてください。まず、RDSインスタンスのログがエクスポートされる先のCloudWatchロググループの名前を特定し、それに対してリテンション期間を設定します。

Terraformコードサンプル

以下は、前述のRDSインスタンスを作成したあとに、そのロググループのリテンション期間を設定するためのコード例です。

  1. ロググループの設定:
  • RDSインスタンスのロググループの名前が /aws/rds/instance/db-instance-identifier/audit であると仮定します。
  • このロググループに対してリテンション期間を設定します。
provider "aws" {
  region = "us-west-2"
}

resource "aws_db_instance" "oracle_rds" {
  allocated_storage         = 20
  storage_type              = "gp2"
  engine                    = "oracle-se2"
  engine_version            = "19.0.0.0.ru-2021-04.rur-2021-04.r1"
  instance_class            = "db.t3.medium"
  name                      = "myoracledb"
  username                  = "admin"
  password                  = "mypassword"
  parameter_group_name      = "default.oracle-se2-19"
  skip_final_snapshot       = true
  publicly_accessible       = false
  multi_az                  = true
  backup_retention_period   = 7
  enabled_cloudwatch_logs_exports = ["audit"]

  vpc_security_group_ids = ["sg-xxxxxxxxx"]

  tags = {
    Name = "my-oracle-rds"
  }
}

resource "aws_cloudwatch_log_group" "rds_audit_log" {
  name              = "/aws/rds/instance/${aws_db_instance.oracle_rds.id}/audit"
  retention_in_days = 30
}

説明

  1. provider “aws”:
    AWSプロバイダーを指定し、リージョンを設定します。
  2. resource “aws_db_instance” “oracle_rds”:
    RDSインスタンスの定義は前述のままです。
  3. resource “aws_cloudwatch_log_group” “rds_audit_log”:
  • name:RDSインスタンスに対応するCloudWatch Logsのロググループの名前を指定します。aws_db_instanceリソースのidを使用して動的にロググループ名を設定しています。
  • retention_in_days:ログのリテンション期間を日数で指定します。ここでは、1か月(30日)を設定しています。

適用手順

  1. 上記のTerraform設定ファイル(例: main.tf)を保存します。
  2. 初期化して必要なプラグインをダウンロードします。 terraform init
  3. プランを作成して設定が正しいか確認します。 terraform plan
  4. 変更を適用してRDSインスタンスを作成し、ロググループのリテンション期間を設定します。 terraform apply

注意事項

  • RDSインスタンスとCloudWatch Logsの設定が正しいことを確認してください。
  • aws_cloudwatch_log_group リソースの name 属性は、RDSインスタンスの識別子と一致するように動的部分(${aws_db_instance.oracle_rds.id})を正確に設定する必要があります。
  • もし既に存在するロググループに対してリテンション期間を設定したい場合は、そのロググループの名前を正確に指定してください。

これにより、RDS for OracleのログをCloudWatch Logsに出力し、それらのログの保管期間を1か月に設定することができます。

コメント

タイトルとURLをコピーしました