использовать существующий vpc и группу безопасности при добавлении экземпляра ec2 - PullRequest
0 голосов
/ 15 января 2019

Существует множество примеров кода, но быстро улучшающийся пакет cdk не помогает мне найти рабочие примеры некоторых (я думал) простых вещей. например, даже импорт, который я нашел в примере, завершается неудачно:

import { VpcNetworkRef } from '@aws-cdk/aws-ec2';
 error TS2724: Module '"../node_modules/@aws-cdk/aws-ec2/lib"' has no exported member 'VpcNetworkRef'. Did you mean 'IVpcNetwork'?

Почему пример кода ec2 не показывает создание необработанных экземпляров ec2?

Что могло бы помочь, это пример кода cdk, который использует жестко закодированные VpcId и SecurityGroupId (я передам их в качестве значений контекста) для создания пары новых подсетей (т. Е. 1 для каждой зоны доступности), в которую мы помещаем пару экземпляров EC2.

Опять же, целевой VPC и SecurityGroup для экземпляров уже существуют. Мы просто (сегодня) создаем новые подсети, добавляя новые наборы экземпляров EC2.

У нас есть множество различных сред (наборы инфраструктуры aws), которые в настоящее время совместно используют одну учетную запись, VPC и группу безопасности. Это изменится, но моя текущая цель - посмотреть, сможем ли мы использовать облачный комплект разработчика для создания новых отличных сред в этой существующей модели. Сегодня у нас есть шаблон CF.

Я не могу сказать, с чего начать. Примеры ссылок на существующие VPC не компилируются.

import { VpcNetworkRef } from '@aws-cdk/aws-ec2';
const vpc = VpcNetworkRef.import(this, 'unused', {vpcId, availabilityZones: ['unused']});

Опять же, целевой VPC и SecurityGroup для экземпляров уже существуют. Мы просто (сегодня) создаем новые подсети, добавляя новые наборы экземпляров EC2.

----- редактировать -------->

Обсуждения по gitter помогли мне ответить на этот вопрос и как добавить голый экземпляр

const vpc - ec2.VpcNetwork.import(this, 'YOUR-VPC-NAME', {
    vpcId: 'your-vpc-id',
    availabilityZones: ['list', 'some', 'zones'],
    publicSubnetIds: ['list', 'some', 'subnets'],
    privateSubnetIds: ['list', 'some', 'more'],
});

const sg = ec2.SecurityGroup.import(this, 'YOUR-SG-NAME', {
    securityGroupId: 'your-sg-id'
});

// can add subnets to existing..
const newSubnet = new ec2.VpcSubnet(this, "a name", {
    availablityZone: "us-west-2b",
    cidrBlock: "a.b.c.d/e",
    vpcId: vpc.vpcId
});

// add bare instance
new ec2.CfnInstance(this, "instance name", {
    imageId: "an ami",
    securityGroupIds: [sg.securityGroupId],
    subnetId: newSubnet.subnetId,
    instanceType: "an instance type",
    tags: [{ key: "key", value: "value"}]
});

Дальнейших ответов не требуется ... для меня.

...