LoginSignup
0
0

CDK For TerraformでAuroraを管理している際に拡張モニタリングを反映する際にエラーが発生

  • エラー内容
A MonitoringRoleARN value is required if you specify a MonitoringInterval value other than 0.

元々の定義

new aws.rdsClusterInstance.RdsClusterInstance(this, `auroraclusterinstance`, {
          identifier: auroraInstanceName,
          clusterIdentifier: AuroraCluster.clusterIdentifier, 
          engine: "aurora-postgresql",
          instanceClass:  "db.t4g.medium",
          autoMinorVersionUpgrade: false,
          promotionTier: i == 0 ? 1 : 2,
          dbParameterGroupName:  "instance-psql14-group",
          caCertIdentifier: "rds-ca-rsa4096-g1",           // 証明書
          applyImmediately: false, // 即時適用
          performanceInsightsEnabled: true, // パフォーマンスインサイト有効
          monitoringInterval:  0, // 拡張モニタリング設定
        });

拡張モニタリングを有効にするにはmonitoringIntervalの値を0以外にする必要があるが、その場合はMonitoringRoleARNを指定する必要があります。

変更した定義

new aws.rdsClusterInstance.RdsClusterInstance(this, `auroraclusterinstance`, {
          identifier: auroraInstanceName,
          clusterIdentifier: AuroraCluster.clusterIdentifier, 
          engine: "aurora-postgresql",
          instanceClass:  "db.t4g.medium",
          autoMinorVersionUpgrade: false,
          promotionTier: i == 0 ? 1 : 2,
          dbParameterGroupName:  "instance-psql14-group",
          caCertIdentifier: "rds-ca-rsa4096-g1",           // 証明書
          applyImmediately: false, // 即時適用
          performanceInsightsEnabled: true, // パフォーマンスインサイト有効
          monitoringInterval:  15, // 拡張モニタリング設定
          monitoringRoleArn: `arn:aws:iam::${accountId}:role/rds-monitoring-role`, // 拡張モニタリング有効時のIAMロール
});

拡張モニタリングを有効にするためmonitoringIntervalの値を15、
monitoringRoleArnにロールを設定するようにしました。

ただこの設定だと再び拡張モニタリングを無効にしたときに以下エラーになってしまいます。

 Error: updating RDS Cluster Instance (aurorainstance): InvalidParameterCombination: You must specify a MonitoringInterval value other than 0 when you specify a MonitoringRoleARN value.

0にする場合はmonitoringRoleArnの指定はしないようにする必要があります。

そのため最終的な定義は以下のようにしました。

          monitoringInterval: IndividualConfig.rdsConfig.monitoringInterval || 0, // 拡張モニタリングの有効化 0は無効 
          //       拡張モニタリング有効時のみIAMロールを設定する。そうしないとエラーになる。
          ...(IndividualConfig.rdsConfig.monitoringInterval > 0 && {
            monitoringRoleArn: `arn:aws:iam::${accountId}:role/rds-monitoring-role`, // 拡張モニタリング有効時のIAMロール
          }),          

monitoringIntervalを外部パラメータとしてもち、0以上だった場合は
IAMロールを設定するというように分岐ロジックを実装しました。

これによりエラーが発生せず、拡張モタリングのパラメータ指定だけで
有効無効の制御ができるようになりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0