Vpc

A VPC with public and private subnets across availability zones and a locked-down default security group. NAT, SSM bastion and flow logs are opt-in.

Networking · anvil:aws:Vpc

Infrastructure

import { App } from '@anvil-cloud/sdk';
import * as anvil from '@anvil-cloud/sdk';

export default new App({
  run(ctx) {
    const network = new anvil.aws.Vpc('network', {
      cidr: '10.0.0.0/16',
      availabilityZones: 2,
      nat: { natType: 'fck-nat' },
      bastion: {},
    });

    ctx.export('vpcId', network.vpcId);
  },
});
import anvil_cloud as anvil

def infra(ctx: anvil.Context):
    network = anvil.aws.Vpc("network",
        cidr="10.0.0.0/16",
        availability_zones=2,
        nat={"nat_type": "fck-nat"},
        bastion={},
    )

    ctx.export("vpc_id", network.vpc_id)

anvil.App(run=infra)
package main

import (
    "github.com/anvil-cloud/anvil/sdk/go/anvil"
    anvilaws "github.com/anvil-cloud/anvil/sdk/go/anvil/aws"
    "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
    anvil.Run(anvil.AppConfig{
        Run: func(ctx *anvil.Context) error {
            network, err := anvilaws.NewVpc(ctx.PulumiCtx(), "network", &anvilaws.VpcArgs{
                Cidr:              pulumi.String("10.0.0.0/16"),
                AvailabilityZones: pulumi.Int(2),
                Nat:               &anvilaws.VpcNatArgsArgs{NatType: anvilaws.VpcNatType_Fck_Nat},
                Bastion:           &anvilaws.VpcBastionArgsArgs{},
            })
            if err != nil {
                return err
            }

            ctx.Export("vpcId", network.VpcId)
            return nil
        },
    })
}

← Back to Vpc docs