AWS CDK (Python) でEC2インスタンスをデプロイするスタックを生成するスキル。デフォルトVPC再利用・SSMセッション許可・Amazon Linux 2023構成。
AWS CDK (Python) でEC2インスタンスをデプロイするための CdkEc2Stack を生成します。
新規VPCを作らずデフォルトVPCを再利用し、コストを最小化する構成です。
cdk_ec2_stack.py を以下の内容で作成する:from aws_cdk import Stack
from aws_cdk import aws_ec2 as ec2
from constructs import Construct
class CdkEc2Stack(Stack):
def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
super().__init__(scope, construct_id, **kwargs)
# Reuse the default VPC in the target account/region instead of creating a new one.
vpc = ec2.Vpc.from_lookup(self, "DefaultVpc", is_default=True)
ec2.Instance(
self,
"Instance",
vpc=vpc,
instance_type=ec2.InstanceType("t3.micro"),
machine_image=ec2.MachineImage.latest_amazon_linux2023(),
ssm_session_permissions=True,
)
app.py に以下を追加する:from cdk_ec2_stack import CdkEc2Stack
CdkEc2Stack(
app,
"CdkEc2Stack",
env=cdk.Environment(
account=os.getenv("CDK_DEFAULT_ACCOUNT"),
region=os.getenv("CDK_DEFAULT_REGION"),
),
)
cdk synth CdkEc2Stack でテンプレート生成を確認する。
デプロイするときは cdk deploy CdkEc2Stack を実行する。
ec2.Vpc.from_lookup(is_default=True) でアカウントのデフォルトVPCを参照し、新規VPC作成コストを省く。ssm_session_permissions=True によりSSH不要でインスタンスへ接続可能。キーペア管理が不要になる。MachineImage.latest_amazon_linux2023() で常に最新のAL2023 AMIを使用する。t3.micro。変更する場合は instance_type を修正する。