Consumer
Progress checklist
Overview
Section titled “Overview”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.
-
Sydney:
Terminal window export AWS_PROFILE=sandbox./scripts/demo.sh up-consumer sydup-consumer syd complete: vpc=vpc-<id> al2023=i-<id> ubuntu=i-<id> gateway_vpce=vpce-<id> -
Auckland:
Terminal window export AWS_PROFILE=sandbox./scripts/demo.sh up-consumer aklup-consumer akl complete: vpc=vpc-<id> al2023=i-<id> ubuntu=i-<id> gateway_vpce=vpce-<id>In Auckland,
com.amazonaws.ap-southeast-6.ec2messagesdoes not exist. The script skips it and keepsssm+ssmmessages. SSM Run Command still works once instances are Online.
Verify
Section titled “Verify”Wait until both OS probes report SSM Online in each Region (often 1–2 minutes
after launch). Load instance IDs once:
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)"Sydney
Section titled “Sydney”aws ssm describe-instance-information \ --filters "Key=InstanceIds,Values=${SYD_AL}" \ --region ap-southeast-2 \ --query 'InstanceInformationList[0].PingStatus' --output textOnlineaws ssm describe-instance-information \ --filters "Key=InstanceIds,Values=${SYD_UB}" \ --region ap-southeast-2 \ --query 'InstanceInformationList[0].PingStatus' --output textOnlinejq .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" }}Auckland
Section titled “Auckland”aws ssm describe-instance-information \ --filters "Key=InstanceIds,Values=${AKL_AL}" \ --region ap-southeast-6 \ --query 'InstanceInformationList[0].PingStatus' --output textOnlineaws ssm describe-instance-information \ --filters "Key=InstanceIds,Values=${AKL_UB}" \ --region ap-southeast-6 \ --query 'InstanceInformationList[0].PingStatus' --output textOnlinejq .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) |