AWS CDKで()をつけること

個人的(こじんてき)()っかかったところのメモです。
コード(れい)はいずれもTypescript(ばん)になります。

EC2インスタンスのディスク容量(ようりょう)指定(してい)仕方(しかた)

(なに)指定(してい)せずに作成(さくせい)するとストレージは8GBで作成(さくせい)されます。
EBSストレージを作成(さくせい)してルートボリューム(/dev/xvda )にアタッチしても駄目(だめ)でした。
Instance.instance.blockDeviceMappings設定(せってい)してやると上手(うま)くいきました。

import {Instance} from '@aws-cdk/aws-ec2';
import {Construct, Stack, StackProps} from '@aws-cdk/core';

export default class Ec2Stack extends Stack {

    constructor(scope: Construct, id: string, props: StackProps) {
        const instance: Instance = new Instance(this, 'Ec2', {
            /* 省略 */
        });
    
        this.instance.instance.creditSpecification = {
            cpuCredits: 'standard' // T3 Unlimitedを無効化
        };
        this.instance.instance.blockDeviceMappings = [{
            deviceName: '/dev/xvda', 
            ebs: {volumeSize: 100} // ストレージ容量を設定(単位はGB)
        }];
    }
}

RDSのVPCサブネット

RDSのインスタンスやAuroraクラスターはPublicサブネットには配置(はいち)できません。 かといってPrivateサブネットに配置(はいち)すると勝手(かって)にNATゲートウェイが作成(さくせい)され、コイツが意外(いがい)金食(かねく)いです。
Isolatedというのにしたらいい(かん)じになりました。

import {SubnetType} from '@aws-cdk/aws-ec2';
import {DatabaseCluster, DatabaseInstance} from '@aws-cdk/aws-rds';
import {Construct, Stack, StackProps} from '@aws-cdk/core';

export default class RdsStack extends Stack {
    constructor(scope: Construct, id: string, props: StackProps) {
        if (props.env === 'production') {
            // 本番環境
            const cluster: DatabaseCluster = new DatabaseCluster(this, 'Rds', {
                ︙
                instanceProps: {
                    ︙
                    vpcSubnets: {subetType: SubnetType.ISOLATED}
                }
            });
        } else {
            // ステージング
            const instance: DatabaseInstance = new DatabaseInstance(this, 'Rds', {
                ︙
                vpcPlacement: {subnetType: SubnetType.ISOLATED}
            });
        }
    }
}