AWS CDKでRDS(PostgreSQL)をデプロイする方法

AWS CDKでRDS(PostgreSQL)をデプロイする方法

項目 バージョン
CDK 2.27.0

AWS CDKでRDS(PostgreSQL)デプロイする方法です。

Amazon Aurora

vpcのデプロイは以下コードでは省略しています。

import { Stack, StackProps, Duration } from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import { Construct } from 'constructs';
import * as rds from 'aws-cdk-lib/aws-rds';

export class Sample001Stack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    const vpc = // 省略

    const cluster = new rds.ServerlessCluster(this, 'RDS', {
      engine: rds.DatabaseClusterEngine.AURORA_POSTGRESQL,
      parameterGroup: rds.ParameterGroup.fromParameterGroupName(this, 'ParameterGroup', 'default.aurora-postgresql10'),
      vpc, // vpcを定義しておく必要がある
      vpcSubnets: {
        subnetType: ec2.SubnetType.PRIVATE_ISOLATED, // プライベートサブネット上に作成
      },
      scaling: {
        autoPause: Duration.minutes(10), // default is to pause after 5 minutes of idle time
        minCapacity: rds.AuroraCapacityUnit.ACU_8, // default is 2 Aurora capacity units (ACUs)
        maxCapacity: rds.AuroraCapacityUnit.ACU_32, // default is 16 Aurora capacity units (ACUs)
      }
    });
  }
}

ここでは、サーバレス、Aurora PostgreSQLにしています。

これでデプロイします。

cdk deploy

RDSが作成されます。

AWS CDKでRDS(PostgreSQL)をデプロイする方法

PostgreSQL

以下は、インスタンス、PostgreSQLのデプロイするコードです。

import { Stack, StackProps, Duration } from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import { Construct } from 'constructs';
import * as rds from 'aws-cdk-lib/aws-rds';

export class Sample001Stack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    const vpc = // 省略

    const cluster = new rds.DatabaseInstance(this, 'Instance', {
      engine: rds.DatabaseInstanceEngine.postgres({
        version: rds.PostgresEngineVersion.VER_14_2, // バージョン指定
      }),
      vpc, // vpcを定義しておく必要がある
      vpcSubnets: {
        subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
      }
    });
  }
}

これでデプロイします。

cdk deploy

RDSが作成されます。デフォルトは、標準クラス(db.md5.large)になるようです。

AWS CDKでRDS(PostgreSQL)をデプロイする方法

インスタンスタイプ設定

インスタンスタイプを設定するには、instanceTypeオプションを1行追加します。

const cluster = new rds.DatabaseInstance(this, 'Instance', {
  engine: rds.DatabaseInstanceEngine.postgres({
    version: rds.PostgresEngineVersion.VER_14_2, // バージョン指定
  }),
  // add start
  instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MEDIUM),
  // add end
  vpc,
  vpcSubnets: {
    subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
  }
});

これでデプロイします。

cdk deploy

RDSが作成されます。バースト可能クラスになり、db.t3.mediumになっていることが確認できます。

AWS CDKでRDS(PostgreSQL)をデプロイする方法

参考サイト

aws-cdk-lib.aws_rds module · AWS CDK
Language | Package
Creating Aurora Cluster with Postgresql with CDK
Running CDK with db-stack that contains: this.cluster = new DatabaseCluster(this, 'ProductDatabase', { defaultDatabaseNa...
Aurora Serverlessの導入時に気をつけるべきこと | DevelopersIO
オンデマンドに自動スケールする Amazon Aurora Serverless を採用する機会がありましたので、導入時の参考になりそうなポイントを紹介します。

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

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