Рубрики
Uncategorized

Как добавить подсети в VPC в AWS, используя пулумы и Голан

В предыдущем посте я посмотрел на пулуби, чтобы создать VPC. В этом посте я пойду на шаги, чтобы добавить … Помечено с Go, DevOps.

В предыдущем пост Я посмотрел на Пулуби создать VPC. В этом посте я пойду на шаги, чтобы добавить некоторые подсети к нему.

Полный проект доступен на Гадость .

Конфигурация

А подсеть Это логическое разбиение вашей сети, поэтому в случае подсети в VPC они будут разделить VPC на меньшие куски. VPC охватывает все зоны доступности области, в то время как подсеть находится только внутри одной зоны доступности. Чтобы убедиться, что приложение, которое вы запускаете внутри вашего VPC, могут перемещаться из одной зоны доступности в другую, если есть неудача, вам нужно иметь как минимум двумя зонами доступности. Каждая из зон также нужен свой собственный блок CIDR. Конфигурация ниже, которую вы можете скопировать/вставить в файл YAML из предыдущего блога, имеет два параметра. Параметр VPC: подсеть-зоны Имеет разделенный запятыми список всех зон доступности, в которых необходимо создать подсеть. Параметр VPC: подсеть-IPS Имеет разделенный запятой список блоков CIDR для каждой из подсетей.

vpc:subnet-zones: "us-east-1a,us-east-1c"
vpc:subnet-ips: "172.32.32.0/20,172.32.80.0/20"

Вы можете использовать командную строку, как SULUMI CONFIGN SET VPC: подсеть-зоны «US-EAST-1A, US-EAST-1C» Чтобы добавить эти новые переменные конфигурации, или вы можете добавить их непосредственно в файл yaml. Файл YAML со всей конфигурацией называется Пулуби. <Имя вашего проекта> .yaml Отказ

Создание подсетей

Код ниже является расширением из кода, созданного в предыдущем пост Отказ Таким образом, вы можете скопировать/вставить этот фрагмент в свой код GO. Прогулка по коду, он получает конфигурацию для зон ( подсеть ) и блоки CIDR ( подседатели ) из файла yaml. Код читает переменную и разбивает его на разделитель запяты. Для каждой из зон это создаст новую подсеть внутри VPC (см. Подсетерарги ) и дать ему имя на основе имени VPC. Последний шаг в Диапазон Цикл — это добавить новый идентификатор на массив подсетей для экспорта в консоль пула.

// Create the required number of subnets
subnets := make(map[string]interface{})
subnets["subnet_ids"] = make([]interface{}, 0)

subnetZones := strings.Split(getEnv(ctx, "vpc:subnet-zones", "unknown"), ",")
subnetIPs := strings.Split(getEnv(ctx, "vpc:subnet-ips", "unknown"), ",")

for idx, availabilityZone := range subnetZones {
    subnetArgs := &ec2.SubnetArgs{
        Tags: tags,
        VpcId: vpc.ID(),
        CidrBlock: subnetIPs[idx],
        AvailabilityZone: availabilityZone,
    }

    subnet, err := ec2.NewSubnet(ctx, fmt.Sprintf("%s-subnet-%d", vpcName, idx), subnetArgs)
    if err != nil {
        fmt.Println(err.Error())
        return err
    }

    subnets["subnet_ids"] = append(subnets["subnet_ids"].([]interface{}), subnet.ID())
}

ctx.Export("SUBNET-IDS", subnets["subnet_ids"])

Запуск кода

Как и в предыдущее время, последнее, что нужно сделать, это запустить пуловка вверх Чтобы сказать пулуби, чтобы пойти добавить подсети к вашим VPC! Если вы используете тот же проект и стек, Pulumi автоматически поймет, что ему необходимо добавить подсети к существующему VPC и не создаст новую VPC.

$ pulumi up
Previewing update (builderstack):

     Type Name Plan       
     pulumi:pulumi:Stack builder-builderstack             
 + ├─ aws:ec2:Subnet myPulumiVPC-subnet-1 create     
 + └─ aws:ec2:Subnet myPulumiVPC-subnet-0 create     

Outputs:
  + SUBNET-IDS: [
  + [0]: output
  + [1]: output
    ]

Resources:
    + 2 to create
    2 unchanged

Do you want to perform this update? yes
Updating (builderstack):

     Type Name Status      
     pulumi:pulumi:Stack builder-builderstack              
 + ├─ aws:ec2:Subnet myPulumiVPC-subnet-1 created     
 + └─ aws:ec2:Subnet myPulumiVPC-subnet-0 created     

Outputs:
  + SUBNET-IDS: [
  + [0]: "subnet-"
  + [1]: "subnet-"
    ]
    VPC-ID : "vpc-"

Resources:
    + 2 created
    2 unchanged

Duration: 8s

Permalink: https://app.pulumi.com/retgits/builder/builderstack/updates/2

Постоянная ссылка в нижней части вывода требует от консоли пуловой консоли, где вы можете увидеть все детали выполнения вашего приложения и созданные ресурсы.

Консоль пульвы также имеет действительно полезные ссылки на консоль AWS, чтобы увидеть ресурсы.

Оригинал: «https://dev.to/retgits/how-to-add-subnets-to-a-vpc-in-aws-using-pulumi-and-golang-37kj»