b.b3rn4rd is correct (just tested it) you need the two VPC endpoints for private subnets if you lack a NAT gateway
- com.amazonaws.[region].ec2messages
- com.amazonaws.[region].ssmmessages
but you need one more VPC endpoint for Systems Manager itself
- com.amazonaws.[region].ssm
which you can see from AWS's own troubleshooting steps when the Systems Manager can't connect to the EC2 instance:
Verify connectivity to Systems Manager endpoints on port 443
The best method to verify connectivity depends on your operating
system.
Important: In the following command examples, replace RegionID with
your AWS Region ID.
For a list of Systems Manager endpoints by Region, see AWS Systems
Manager endpoints and quotas.
...
nc -vz ssm.RegionID.amazonaws.com 443
nc -vz ec2messages.RegionID.amazonaws.com 443
nc -vz ssmmessages.RegionID.amazonaws.com 443
Also need to make sure the Security Group the VPC endpoints are in has an inbound rule that allows all inbound TCP traffic from the SG the instances are placed in.