Skip to content
← All projects

Cloud infrastructure

AWS Cloud Practical Labs

Hands-on labs covering IAM, EC2, S3, custom VPC networking, CloudTrail, CloudWatch, EventBridge and SNS in an AWS Free Tier account.

Type
Self-directed hands-on labs
Account
AWS Free Tier account
Domains
Identity · Compute · Network · Storage
Status
Ongoing

Lab approach

I used an AWS Free Tier account so each concept had an observable result: an EC2 instance reachable over SSH, a subnet with a working route, an IAM policy with a defined scope and an alarm delivered through SNS.

What I built

Identity & access

IAM
  • Created IAM users and organised them into groups
  • Wrote and attached permission policies
  • Worked through least-privilege permission design

Compute

EC2Elastic IPKey PairsSecurity Groups
  • Launched EC2 instances and connected over SSH with key pairs
  • Configured security groups as instance-level firewalls
  • Allocated and attached Elastic IPs for stable addressing

Storage

S3
  • Created buckets and configured access policies
  • Enabled and tested versioning
  • Worked through public vs. private object access

Networking

VPCSubnetsInternet GatewayRoute Tables
  • Built a custom VPC from scratch rather than using the default
  • Carved out subnets and attached an internet gateway
  • Configured route tables to control egress

Observability

CloudWatchCloudTrailSNSEventBridge
  • Configured CloudWatch metrics and alarms
  • Enabled CloudTrail for API-level audit logging
  • Wired SNS notifications and EventBridge rules

Account concepts

OrganizationsBillingSupport
  • Studied AWS Organizations and multi-account structure
  • Worked with billing, budgets and cost visibility
  • Reviewed the support plan tiers
AWS networking, audit and alerting lab flowsAn EC2 instance reaches the internet through its subnet route table and an internet gateway. CloudTrail captures API activity. A CloudWatch alarm sends a notification through SNS. EventBridge rules were configured separately.VPC NETWORK LABEC2 instanceinstance in subnetsubnet routeRoute table0.0.0.0/0 routetargetInternet gatewayVPC attachmentInternetAUDIT LABAWS API activitycaptured byCloudTrailALERTING LABMetric / test eventknown triggerCloudWatch alarmthreshold reachedSNS notificationdelivery verifiedEventBridge rules were configured as a separate event-routing exercise.
Lab flows verified separately: VPC egress, CloudTrail audit capture, and CloudWatch notifications through SNS.

Where the networking background paid off

The networking model transferred directly: VPC CIDR planning, subnet boundaries, route tables, internet-gateway routes and stateful security-group rules. The new work was learning AWS resource boundaries and how those pieces connect.

IAM applied familiar access-control ideas such as users, groups, policies and least privilege through AWS identities and permission policies.

What broke

  1. SSH connection refused after launching an instance

    I traced the failed connection through the security-group inbound rule, key-pair permissions and the instance's network placement instead of treating SSH as a single check.

  2. Custom VPC with no route out

    The internet gateway was attached, but the subnet's route table had no default route to it. Adding the route made the dependency between subnet association, route table and gateway explicit.

  3. IAM permission denials

    I traced which policy, attached at which level, was or was not granting an action, then fixed the denial by narrowing permissions rather than widening them.

  4. Verifying the audit and alerting path

    A test event had to be captured and an SNS notification delivered before I treated the alerting path as complete.

Where this connects

These labs inform the MartialXPro scale-out plan: EC2 inside a custom VPC, IAM-scoped access, S3 for generated documents and CloudWatch for visibility. The current product still runs on one Ubuntu host.

Use the up and down arrow keys to choose a result, Enter to open it, and Escape to close search.