Skip to content

VPNConnection ​

The VPNConnection resource allows you to create and manage AWS EC2 VPNConnections for establishing secure connections between your on-premises network and your AWS environment.

Minimal Example ​

Create a basic VPN connection with required properties and a couple of common optional ones.

ts
import AWS from "alchemy/aws/control";

const basicVpnConnection = await AWS.EC2.VPNConnection("basicVpnConnection", {
  customerGatewayId: "cgw-12345678",
  type: "ipsec.1",
  remoteIpv4NetworkCidr: "192.168.1.0/24",
  localIpv4NetworkCidr: "10.0.0.0/16",
  tags: [
    { key: "Name", value: "BasicVPNConnection" }
  ]
});

Advanced Configuration ​

Configure a VPN connection with advanced options, including tunnel options and static routes.

ts
const advancedVpnConnection = await AWS.EC2.VPNConnection("advancedVpnConnection", {
  customerGatewayId: "cgw-87654321",
  type: "ipsec.1",
  remoteIpv4NetworkCidr: "172.16.0.0/12",
  localIpv4NetworkCidr: "10.1.0.0/16",
  staticRoutesOnly: true,
  vpnTunnelOptionsSpecifications: [
    {
      tunnelInsideIpVersion: "ipv4",
      preSharedKey: "my-very-secure-pre-shared-key",
      phase1LifetimeSeconds: 86400,
      phase2LifetimeSeconds: 3600,
      rekeyMarginTimeSeconds: 540,
      replayWindowSize: 2048,
      dpdTimeoutSeconds: 30,
      dpdTimeoutAction: "clear",
    }
  ],
  tags: [
    { key: "Name", value: "AdvancedVPNConnection" }
  ]
});

High Availability Setup ​

Create a VPN connection with options for high availability and acceleration.

ts
const highAvailabilityVpnConnection = await AWS.EC2.VPNConnection("highAvailabilityVpnConnection", {
  customerGatewayId: "cgw-11223344",
  type: "ipsec.1",
  remoteIpv4NetworkCidr: "10.2.0.0/16",
  localIpv4NetworkCidr: "10.3.0.0/16",
  enableAcceleration: true,
  outsideIpAddressType: "static",
  tags: [
    { key: "Name", value: "HighAvailabilityVPNConnection" }
  ]
});

Transit Gateway Integration ​

Set up a VPN connection that integrates with a Transit Gateway for enhanced connectivity.

ts
const transitGatewayVpnConnection = await AWS.EC2.VPNConnection("transitGatewayVpnConnection", {
  customerGatewayId: "cgw-55667788",
  type: "ipsec.1",
  remoteIpv4NetworkCidr: "192.168.2.0/24",
  localIpv4NetworkCidr: "10.4.0.0/16",
  transitGatewayId: "tgw-98765432",
  tags: [
    { key: "Name", value: "TransitGatewayVPNConnection" }
  ]
});