AWS CDKで既存VPCのプライベートサブネット上にRDS(PostgreSQL)をデプロイする方法
項目 | バージョン |
---|---|
CDK | 2.27.0 |
AWS CDKで既存VPCを流用し、既存プライベートサブネット上にRDSをデプロイする方法です。
サブネットグループ
サブネットグループは事前に作成されているものとします。
既存サブネットグループは以下のように呼び出すことができます。
// サブネットグループ名がprivateの場合 import * as rds from 'aws-cdk-lib/aws-rds'; // ... rds.SubnetGroup.fromSubnetGroupName(this, id, 'private')
vpc
既存vpcは以下のように呼び出すことができます。
import * as ec2 from 'aws-cdk-lib/aws-ec2'; // ... const vpc = ec2.Vpc.fromLookup(this, 'Vpc', { vpcId: 'vpc-xxxxxxxxxxxxxxxxx' // VPCのIDを指定 }) // 既存VPC
lib配下のts修正
tsファイルを修正します。
import { Stack, StackProps, aws_secretsmanager } 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 = ec2.Vpc.fromLookup(this, 'Vpc', { vpcId: 'vpc-xxxxxxxxxxxxxxxxx' // VPCのID }) // 既存VPC // シークレット const newSecret = new aws_secretsmanager.Secret( this, 'DBCredentialsSecret', { secretName: 'secret-test', generateSecretString: { excludePunctuation: true, includeSpace: false, generateStringKey: 'password', secretStringTemplate: JSON.stringify({ username: 'hoge', }) } } ); // RDS(postgreSQL) const postgres = new rds.DatabaseInstance(this, 'Instance', { engine: rds.DatabaseInstanceEngine.postgres({ version: rds.PostgresEngineVersion.VER_12, // バージョン12指定 }), vpc, // vpc変数指定 vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_ISOLATED }, subnetGroup: rds.SubnetGroup.fromSubnetGroupName(this, id, 'private'), // サブネットグループ名=privateを使用 credentials: rds.Credentials.fromSecret(newSecret) // シークレットにRDS情報格納 }); } }
これでデプロイします。
cdk deploy
RDSが作成されます。
既存VPCにRDSデプロイする場合は、同時にサブネットグループも作成する、もしくは事前に作成しておく必要があります。
参考サイト
aws-cdk-lib.aws_rds module · AWS CDK
Language | Package
interface ISubnetGroup · AWS CDK
# interface ISubnetGroup
AWS CDKでRDS(PostgreSQL)をデプロイする方法
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント