Skip to content

Consumer

Progress checklist

demo.sh up-consumer builds a dedicated private VPC for the lab in that Region (Sydney 10.80.0.0/16, Auckland 10.81.0.0/16): one subnet, a route table, an S3 gateway endpoint, SSM interface endpoints, and two probe EC2 instances (AL2023 + Ubuntu 24.04) with no public IP. You do not bring your own VPC.

Run it for both Sydney and Auckland before allowlist / prove.

Consumer VPC from up-consumer Per Region, demo.sh creates a private lab VPC with AL2023 and Ubuntu probe EC2s, an S3 gateway endpoint, and SSM interface endpoints. Probes reach the regional package bucket through the gateway with no public IP or NAT. up-consumer: lab VPC + S3 gateway + dual-OS probes ap-southeast-2 (Sydney) Lab VPC 10.80.0.0/16 AL2023 + Ubuntu no public IP S3 gateway route table SSM interface x3 no NAT / private subnet pkgs primary …-pkgs-…-syd ap-southeast-6 (Auckland) Lab VPC 10.81.0.0/16 AL2023 + Ubuntu no public IP S3 gateway route table SSM interface x2 no ec2messages in akl pkgs replica …-pkgs-…-akl Run once per Region | shared account | tear down with demo.sh down
  1. Sydney:

    Terminal window
    export AWS_PROFILE=sandbox
    ./scripts/demo.sh up-consumer syd
    up-consumer syd complete: vpc=vpc-<id> al2023=i-<id> ubuntu=i-<id> gateway_vpce=vpce-<id>
  2. Auckland:

    Terminal window
    export AWS_PROFILE=sandbox
    ./scripts/demo.sh up-consumer akl
    up-consumer akl complete: vpc=vpc-<id> al2023=i-<id> ubuntu=i-<id> gateway_vpce=vpce-<id>

    In Auckland, com.amazonaws.ap-southeast-6.ec2messages does not exist. The script skips it and keeps ssm + ssmmessages. SSM Run Command still works once instances are Online.

Wait until both OS probes report SSM Online in each Region (often 1–2 minutes after launch). Load instance IDs once:

Terminal window
SYD_AL="$(jq -r .consumers.syd.al2023.instance_id .lab-state.json)"
SYD_UB="$(jq -r .consumers.syd.ubuntu.instance_id .lab-state.json)"
AKL_AL="$(jq -r .consumers.akl.al2023.instance_id .lab-state.json)"
AKL_UB="$(jq -r .consumers.akl.ubuntu.instance_id .lab-state.json)"
Terminal window
aws ssm describe-instance-information \
--filters "Key=InstanceIds,Values=${SYD_AL}" \
--region ap-southeast-2 \
--query 'InstanceInformationList[0].PingStatus' --output text
Online
Terminal window
aws ssm describe-instance-information \
--filters "Key=InstanceIds,Values=${SYD_UB}" \
--region ap-southeast-2 \
--query 'InstanceInformationList[0].PingStatus' --output text
Online
Terminal window
jq .consumers.syd .lab-state.json
{
"region": "ap-southeast-2",
"bucket": "ps3p-pkgs-**ACCOUNT**-syd",
"vpc_id": "vpc-<id>",
"subnet_id": "subnet-<id>",
"route_table_id": "rtb-<id>",
"created_vpc": true,
"gateway_vpce_id": "vpce-<id>",
"s3_vpce_id": "vpce-<id>",
"created_s3_vpce": true,
"instance_profile": "ps3p-syd-<suffix>-ec2",
"role_name": "ps3p-syd-<suffix>-ec2",
"sg_ec2": "sg-<id>",
"sg_ssm": "sg-<id>",
"ssm_vpce_ids": [
"vpce-<id>",
"vpce-<id>",
"vpce-<id>"
],
"al2023": {
"instance_id": "i-<id>",
"ami_id": "ami-<id>",
"os": "al2023"
},
"ubuntu": {
"instance_id": "i-<id>",
"ami_id": "ami-<id>",
"os": "ubuntu"
}
}
Terminal window
aws ssm describe-instance-information \
--filters "Key=InstanceIds,Values=${AKL_AL}" \
--region ap-southeast-6 \
--query 'InstanceInformationList[0].PingStatus' --output text
Online
Terminal window
aws ssm describe-instance-information \
--filters "Key=InstanceIds,Values=${AKL_UB}" \
--region ap-southeast-6 \
--query 'InstanceInformationList[0].PingStatus' --output text
Online
Terminal window
jq .consumers.akl .lab-state.json
{
"region": "ap-southeast-6",
"bucket": "ps3p-pkgs-**ACCOUNT**-akl",
"vpc_id": "vpc-<id>",
"subnet_id": "subnet-<id>",
"route_table_id": "rtb-<id>",
"created_vpc": true,
"gateway_vpce_id": "vpce-<id>",
"s3_vpce_id": "vpce-<id>",
"created_s3_vpce": true,
"instance_profile": "ps3p-akl-<suffix>-ec2",
"role_name": "ps3p-akl-<suffix>-ec2",
"sg_ec2": "sg-<id>",
"sg_ssm": "sg-<id>",
"ssm_vpce_ids": [
"vpce-<id>",
"vpce-<id>"
],
"al2023": {
"instance_id": "i-<id>",
"ami_id": "ami-<id>",
"os": "al2023"
},
"ubuntu": {
"instance_id": "i-<id>",
"ami_id": "ami-<id>",
"os": "ubuntu"
}
}
Check Syd Akl
VPC CIDR 10.80.0.0/16 10.81.0.0/16
S3 gateway vpce-<id> vpce-<id>
AL2023 i-<id> @ 10.80.1.x i-<id> @ 10.81.1.x
Ubuntu i-<id> @ 10.80.1.x i-<id> @ 10.81.1.x
Public IP none none
SSM Online on both Online on both
SSM interface VPCEs 3 (ssm, ssmmessages, ec2messages) 2 (ssm, ssmmessages; no ec2messages)

Allowlist