AWS VPC 與 EC2
Vibe Prompt
「幫我用 AWS CDK (TypeScript) 建立:VPC(2 個公有子網、2 個私有子網)、EC2 t3.micro、Security Group(開放 22 和 80 埠)、Elastic IP。」
CDK 程式碼
import * as cdk from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
const vpc = new ec2.Vpc(this, 'MyVpc', {
maxAzs: 2,
subnetConfiguration: [
{ name: 'Public', subnetType: ec2.SubnetType.PUBLIC, cidrMask: 24 },
{ name: 'Private', subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS, cidrMask: 24 },
],
});
const sg = new ec2.SecurityGroup(this, 'WebSG', { vpc });
sg.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(80));
sg.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(22));
const instance = new ec2.Instance(this, 'WebServer', {
vpc,
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
machineImage: ec2.MachineImage.latestAmazonLinux2023(),
securityGroup: sg,
keyName: 'my-key-pair',
});
new cdk.CfnOutput(this, 'PublicIP', { value: instance.instancePublicIp });
AWS CLI
aws ec2 describe-instances
aws ec2 stop-instances --instance-ids i-123456
aws ec2 start-instances --instance-ids i-123456