VPCEndpointService
The VPCEndpointService resource lets you create and manage AWS EC2 VPCEndpointServices that enable private connectivity between VPCs and services without exposing the services to the public internet.
Minimal Example
Create a basic VPC Endpoint Service using a Network Load Balancer.
ts
import AWS from "alchemy/aws/control";
const vpcEndpointService = await AWS.EC2.VPCEndpointService("myVpcEndpointService", {
NetworkLoadBalancerArns: [
"arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/my-load-balancer/50dc6c495c0c9188"
],
AcceptanceRequired: false
});
Advanced Configuration
Configure a VPC Endpoint Service with additional options like contributor insights and tags.
ts
const advancedVpcEndpointService = await AWS.EC2.VPCEndpointService("advancedVpcEndpointService", {
NetworkLoadBalancerArns: [
"arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/my-load-balancer/50dc6c495c0c9188"
],
ContributorInsightsEnabled: true,
Tags: [
{ Key: "Environment", Value: "Production" },
{ Key: "Project", Value: "MyProject" }
]
});
Using Gateway Load Balancers
Create a VPC Endpoint Service that uses a Gateway Load Balancer for connecting to services.
ts
const gatewayVpcEndpointService = await AWS.EC2.VPCEndpointService("gatewayVpcEndpointService", {
GatewayLoadBalancerArns: [
"arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/gateway/my-gateway-lb/1234567890abcdef"
],
PayerResponsibility: "ServiceOwner"
});
Specifying Supported Regions
Set up a VPC Endpoint Service that specifies supported regions for the service.
ts
const regionalVpcEndpointService = await AWS.EC2.VPCEndpointService("regionalVpcEndpointService", {
NetworkLoadBalancerArns: [
"arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/my-load-balancer/50dc6c495c0c9188"
],
SupportedRegions: [
"us-east-1",
"us-west-2"
]
});