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が作成されます。
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)になるようです。
インスタンスタイプ設定
インスタンスタイプを設定するには、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-lib.aws_rds module · AWS CDK
Language | Package
Attention Required! | Cloudflare
Aurora Serverlessの導入時に気をつけるべきこと | DevelopersIO
オンデマンドに自動スケールする Amazon Aurora Serverless を採用する機会がありましたので、導入時の参考になりそうなポイントを紹介します。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント