Amazon EC2

Compute · AWS
Explanation pending

1 concept teaches Amazon EC2, so everything below is real — but the written explanation hasn't been authored yet. It appears in the build report as work to do, and nothing invented fills the gap in the meantime.

Properties CloudSynth teachesderived from synthesized templates

These are the CloudFormation properties you actually configure in the lessons — read out of the template the reference solution synthesizes, so this list can't drift from what's taught.

ResourcePropertyTaught in
AWS::EC2::InstanceAvailabilityZoneec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::InstanceIamInstanceProfileec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::InstanceImageIdec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::InstanceInstanceTypeec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::InstanceNetworkInterfacesec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::InstanceUserDataec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::RouteDestinationCidrBlockec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::RouteGatewayIdec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::RouteRouteTableIdec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::RouteTableVpcIdec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::SecurityGroupGroupDescriptionec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::SecurityGroupSecurityGroupEgressec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::SecurityGroupSecurityGroupIngressec2-03-security-group, ec2-04-user-data
AWS::EC2::SecurityGroupVpcIdec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::SubnetAvailabilityZoneec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::SubnetCidrBlockec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::SubnetMapPublicIpOnLaunchec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::SubnetVpcIdec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::SubnetRouteTableAssociationRouteTableIdec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::SubnetRouteTableAssociationSubnetIdec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::VPCCidrBlockec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::VPCEnableDnsHostnamesec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::VPCEnableDnsSupportec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::VPCInstanceTenancyec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::VPCGatewayAttachmentInternetGatewayIdec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data
AWS::EC2::VPCGatewayAttachmentVpcIdec2-02-launch-instance, ec2-03-security-group, ec2-04-user-data

Security & best practice

CloudSynth grades your infrastructure against the same cdk-nag rules real teams run in CI. These are the rules that actually fire on the lessons' templates:

AwsSolutions-EC23The Security Group allows for 0.0.0.0/0 or ::/0 inbound access. Large port ranges, when open, expose instances to unwanted attacks. More than that, they make traceability of vulnerabilities very difficult. For instance, your web servers may only require 80 and 443 ports to be open, but not all. One of the most common mistakes observed is when all ports for 0.0.0.0/0 range are open in a rush to access the instance. EC2 instances must expose only to those ports enabled on the corresponding security group level.
AwsSolutions-EC26The resource creates one or more EBS volumes that have encryption disabled. With EBS encryption, you aren't required to build, maintain, and secure your own key management infrastructure. EBS encryption uses KMS keys when creating encrypted volumes and snapshots. This helps protect data at rest.
AwsSolutions-EC28The EC2 instance/AutoScaling launch configuration does not have detailed monitoring enabled. Monitoring data helps make better decisions on architecting and managing compute resources.
AwsSolutions-EC29The EC2 instance is not part of an ASG and has Termination Protection disabled. Termination Protection safety feature enabled in order to protect the instances from being accidentally terminated.
AwsSolutions-VPC7The VPC does not have an associated Flow Log. VPC Flow Logs capture network flow information for a VPC, subnet, or network interface and stores it in Amazon CloudWatch Logs. Flow log data can help customers troubleshoot network issues; for example, to diagnose why specific traffic is not reaching an instance, which might be a result of overly restrictive security group rules.

For your role

DevOps / Platform
Relevant to this role — role note not yet written.
Solutions Architect
Relevant to this role — role note not yet written.

Build it, graded

Reading is half of it. Everything above you can go build in the browser — your CDK code synthesized and graded against these exact properties.

concept
Launch a virtual server on EC2
5 lessons · 3 graded checkpoints
Start free →