Terraformを使用してAWS RDS for OracleのログをCloudWatchに出力するためには、以下の手順に従う必要があります。
- AWS RDS for Oracleインスタンスの作成:
- CloudWatchログへのエクスポート設定:
以下は、Terraformコードの例です。このコードはRDS for Oracleインスタンスを作成し、指定されたログをCloudWatchにエクスポートする設定も行います。
provider "aws" {
region = "us-west-2" # 適宜変更してください
}
resource "aws_db_instance" "oracle" {
allocated_storage = 20
engine = "oracle-se2"
instance_class = "db.t3.medium"
name = "yourdbname"
username = "yourusername"
password = "yourpassword"
db_subnet_group_name = "your-db-subnet-group"
backup_retention_period = 7
multi_az = false
publicly_accessible = false
# ログをCloudWatchにエクスポートするための設定
enabled_cloudwatch_logs_exports = ["alert", "audit", "listener", "trace"]
parameter_group_name = "default.oracle-se2-19" # 適切なパラメータグループを指定してください
tags = {
Name = "Oracle-RDS"
}
}
# オプションとして、ロググループの設定も行えます
resource "aws_cloudwatch_log_group" "rds_alert_log" {
name = "/aws/rds/instance/${aws_db_instance.oracle.id}/alert"
retention_in_days = 7
}
resource "aws_cloudwatch_log_group" "rds_audit_log" {
name = "/aws/rds/instance/${aws_db_instance.oracle.id}/audit"
retention_in_days = 7
}
resource "aws_cloudwatch_log_group" "rds_listener_log" {
name = "/aws/rds/instance/${aws_db_instance.oracle.id}/listener"
retention_in_days = 7
}
resource "aws_cloudwatch_log_group" "rds_trace_log" {
name = "/aws/rds/instance/${aws_db_instance.oracle.id}/trace"
retention_in_days = 7
}
説明:
aws_db_instanceリソースでRDSインスタンスを作成しています。enabled_cloudwatch_logs_exportsでエクスポートするログの種類を指定しています(”alert”, “audit”, “listener”, “trace”)。- 各ログタイプのCloudWatchロググループを作成しています(オプション)。
このコードを適用するためには、最初にIAMポリシーが適切に設定されていること、またはRDSインスタンスが適切なロールを持っていることを確認してください。これにより、RDSインスタンスはログをCloudWatchにエクスポートする許可を持つことができます。
ご不明点がありましたら、どうぞお知らせください。

コメント