如何访问 CDK 创建的 EC2 实例?
How can I access an EC2 instance created by CDK?
我正在使用此 CDK 配置基础设施 class:
// imports
export interface AppStackProps extends cdk.StackProps {
repository: ecr.Repository
}
export class AppStack extends cdk.Stack {
public readonly service: ecs.BaseService
constructor(app: cdk.App, id: string, props: AppStackProps) {
super(app, id, props)
const vpc = new ec2.Vpc(this, 'main', { maxAzs: 2 })
const cluster = new ecs.Cluster(this, 'x-workers', { vpc })
cluster.addCapacity('x-workers-asg', {
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.MICRO)
})
const logging = new ecs.AwsLogDriver({ streamPrefix: "x-logs", logRetention: logs.RetentionDays.ONE_DAY })
const taskDef = new ecs.Ec2TaskDefinition(this, "x-task")
taskDef.addContainer("x-container", {
image: ecs.ContainerImage.fromEcrRepository(props.repository),
memoryLimitMiB: 512,
logging,
})
this.service = new ecs.Ec2Service(this, "x-service", {
cluster,
taskDefinition: taskDef,
})
}
}
当我检查 AWS 面板时,我看到创建的实例没有密钥对。
在这种情况下如何访问实例?
您可以转到您的 AWS 账户 > EC2 > 密钥对,创建一个新的密钥对,然后您可以将密钥名称传递给正在创建的集群:
const cluster = new ecs.Cluster(this, 'x-workers', { vpc })
cluster.addCapacity('x-workers-asg', {
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.MICRO),
keyName: "x" // this can be a parameter if you prefer
})
我通过阅读 this article CloudFormation 得到了这个想法。
我正在使用此 CDK 配置基础设施 class:
// imports
export interface AppStackProps extends cdk.StackProps {
repository: ecr.Repository
}
export class AppStack extends cdk.Stack {
public readonly service: ecs.BaseService
constructor(app: cdk.App, id: string, props: AppStackProps) {
super(app, id, props)
const vpc = new ec2.Vpc(this, 'main', { maxAzs: 2 })
const cluster = new ecs.Cluster(this, 'x-workers', { vpc })
cluster.addCapacity('x-workers-asg', {
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.MICRO)
})
const logging = new ecs.AwsLogDriver({ streamPrefix: "x-logs", logRetention: logs.RetentionDays.ONE_DAY })
const taskDef = new ecs.Ec2TaskDefinition(this, "x-task")
taskDef.addContainer("x-container", {
image: ecs.ContainerImage.fromEcrRepository(props.repository),
memoryLimitMiB: 512,
logging,
})
this.service = new ecs.Ec2Service(this, "x-service", {
cluster,
taskDefinition: taskDef,
})
}
}
当我检查 AWS 面板时,我看到创建的实例没有密钥对。
在这种情况下如何访问实例?
您可以转到您的 AWS 账户 > EC2 > 密钥对,创建一个新的密钥对,然后您可以将密钥名称传递给正在创建的集群:
const cluster = new ecs.Cluster(this, 'x-workers', { vpc })
cluster.addCapacity('x-workers-asg', {
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.MICRO),
keyName: "x" // this can be a parameter if you prefer
})
我通过阅读 this article CloudFormation 得到了这个想法。