This guide uses ONLY the AWS Console web interface. No terminal commands required! Just click, fill forms, and follow the visual steps.
What You'll Build in This Phase
Step 1: AWS Account Setup
Create AWS Account
If you don't have an AWS account yet, let's create one. This is your gateway to all AWS services.
-
1Enter your Email addressUse a business email if possible (e.g., yourname@company.com)
-
2Choose AWS account nameExample: helium-production
-
3Verify your email and set a strong passwordUse a password manager to generate and store it securely
-
4Enter contact informationChoose "Professional" account type for business use
-
5Add payment method (credit card)AWS will charge $1 for verification (refunded immediately)
-
6Complete identity verification (phone call or SMS)Enter the PIN code you receive
-
7Select Basic Support Plan (Free)You can upgrade later if needed
Enable MFA on Root Account
Multi-Factor Authentication (MFA) adds an extra layer of security. This is CRITICAL for your root account.
-
1Click "Assign MFA device" button
-
2Enter device name: root-account-mfa
-
3Select "Authenticator app"Recommended apps: Google Authenticator, Microsoft Authenticator, Authy
-
4Click "Show QR code"
-
5Scan QR code with your authenticator app
-
6Enter two consecutive MFA codes from your appWait for the code to refresh and enter the new one
-
7Click "Add MFA"
Create IAM Admin User
Never use your root account for daily operations. Create an admin user instead.
-
1Click "Create user" button
-
2User name: helium-admin
-
3Check both boxes:✓ Provide user access to the AWS Management Console
✓ I want to create an IAM user -
4Console password: Select "Custom password"Create a strong password (use password manager)
-
5Uncheck "Users must create a new password at next sign-in"
-
6Click "Next"
-
7Permissions: Select "Attach policies directly"
-
8Search and check: AdministratorAccessThis gives full access to all AWS services
-
9Click "Next" → Review → "Create user"
-
10Download the .csv file with credentialsStore this securely - you'll need it to sign in
https://YOUR-ACCOUNT-ID.signin.aws.amazon.com/consoleBookmark this URL - you'll use it every time you sign in.
Enable MFA for Admin User
Now let's secure your admin user with MFA too.
-
1Click "Assign MFA device"
-
2Device name: admin-mfa
-
3Select "Authenticator app" → "Next"
-
4Scan QR code with your authenticator app
-
5Enter two consecutive MFA codes
-
6Click "Add MFA"
Create Access Keys for Programmatic Access
You'll need access keys for GitHub Actions CI/CD pipeline later.
-
1Click "Create access key"
-
2Use case: Select "Command Line Interface (CLI)"
-
3Check the confirmation box"I understand the above recommendation..."
-
4Click "Next"
-
5Description tag: GitHub Actions CI/CD
-
6Click "Create access key"
-
7Download the .csv file⚠️ This is your ONLY chance to download the secret key!
Step 2: Set Up Cost Management
Enable Cost Explorer
Cost Explorer helps you visualize and understand your AWS spending.
-
1Click "Enable Cost Explorer" button
-
2Wait for activation (takes about 24 hours for data to appear)
Create Budget Alerts
Set up budget alerts to avoid surprise bills. This is ESSENTIAL for cost control.
-
1Click "Create budget" button
-
2Budget setup: Select "Use a template (simplified)"
-
3Template: Choose "Monthly cost budget"
-
4Budget name: helium-production-monthly
-
5Budget amount: $500Adjust based on your expected usage (see cost estimates in overview)
-
6Email recipients: Enter your email addressYou'll receive alerts at 85% of budget
-
7Click "Create budget"
Step 3: Create VPC (Virtual Private Cloud)
A VPC is your own private network in AWS. Think of it like your own data center in the cloud, completely isolated from other AWS customers.
Create VPC with VPC Wizard
AWS VPC Wizard makes it easy to create a complete VPC with all necessary components in one go.
-
1Click "Create VPC" button
-
2Resources to create: Select "VPC and more"This creates VPC, subnets, route tables, and gateways automatically
-
3Name tag auto-generation: helium-productionThis will prefix all resource names
-
4IPv4 CIDR block: 10.0.0.0/16This gives you 65,536 IP addresses
-
5Number of Availability Zones: 2For high availability and fault tolerance
-
6Number of public subnets: 2
-
7Number of private subnets: 2
-
8NAT gateways: Select "1 per AZ"⚠️ Costs ~$32/month per NAT Gateway (~$64/month total)
-
9VPC endpoints: Select "None"We'll add these later if needed
-
10DNS options: Check both boxes✓ Enable DNS hostnames
✓ Enable DNS resolution -
11Review the preview diagram on the rightVerify it shows 2 AZs, public/private subnets, IGW, and NAT gateways
-
12Click "Create VPC"This will take 2-3 minutes to create all resources
Create Additional Isolated Subnets
We need isolated subnets for ElastiCache (Redis) that have no internet access.
-
1VPC ID: Select helium-production-vpc
-
2Subnet name: helium-production-isolated-us-east-1a
-
3Availability Zone: us-east-1a
-
4IPv4 CIDR block: 10.0.20.0/24
-
5Click "Add new subnet" to add the second one
-
6Subnet name: helium-production-isolated-us-east-1b
-
7Availability Zone: us-east-1b
-
8IPv4 CIDR block: 10.0.21.0/24
-
9Click "Create subnet"
Create Route Table for Isolated Subnets
Isolated subnets need their own route table with no internet route.
-
1Name: helium-production-isolated-rt
-
2VPC: Select helium-production-vpc
-
3Click "Create route table"
-
4After creation, click the route table ID to open it
-
5Go to "Subnet associations" tab
-
6Click "Edit subnet associations"
-
7Check both isolated subnets:✓ helium-production-isolated-us-east-1a
✓ helium-production-isolated-us-east-1b -
8Click "Save associations"
Step 4: Create Security Groups
Security Groups act as virtual firewalls, controlling what traffic can reach your resources. Think of them as bouncers at a club - they decide who gets in and who doesn't.
Create ALB Security Group
This security group controls traffic to your Application Load Balancer.
-
1Security group name: helium-alb-sg
-
2Description: Security group for Application Load Balancer
-
3VPC: Select helium-production-vpc
-
4Inbound rules: Click "Add rule"
| Type | Protocol | Port | Source | Description |
|---|---|---|---|---|
| HTTPS | TCP | 443 | 0.0.0.0/0 | Allow HTTPS from anywhere |
| HTTP | TCP | 80 | 0.0.0.0/0 | Allow HTTP (will redirect to HTTPS) |
-
5Outbound rules: Leave default (All traffic to 0.0.0.0/0)
-
6Tags: Add Name = helium-alb-sg
-
7Click "Create security group"
Create ECS Task Security Group
This security group controls traffic to your ECS containers (backend application).
-
1Security group name: helium-ecs-task-sg
-
2Description: Security group for ECS tasks
-
3VPC: Select helium-production-vpc
-
4Inbound rules: Click "Add rule"
| Type | Protocol | Port | Source | Description |
|---|---|---|---|---|
| All traffic | All | All | helium-alb-sg | Allow traffic from ALB |
In the "Source" field, start typing "helium-alb-sg" and select it from the dropdown. This allows traffic only from the ALB security group.
-
5Outbound rules: Leave default (All traffic to 0.0.0.0/0)
-
6Click "Create security group"
Create ElastiCache Security Group
This security group controls access to your Redis cache.
-
1Security group name: helium-elasticache-sg
-
2Description: Security group for ElastiCache Redis
-
3VPC: Select helium-production-vpc
-
4Inbound rules: Click "Add rule"
| Type | Protocol | Port | Source | Description |
|---|---|---|---|---|
| Custom TCP | TCP | 6379 | helium-ecs-task-sg | Allow Redis from ECS tasks |
-
5Outbound rules: Leave default
-
6Click "Create security group"
Step 5: Create ECR Repositories
Amazon Elastic Container Registry (ECR) is where you store your Docker images. Think of it like Docker Hub, but private and integrated with AWS.
Create Backend Repository
-
1Visibility settings: Select "Private"
-
2Repository name: helium-backend
-
3Tag immutability: Select "Enabled"Prevents image tags from being overwritten
-
4Scan on push: Check "Enabled"Automatically scans images for vulnerabilities
-
5Encryption: Select "AES-256"
-
6Click "Create repository"
Set Up Lifecycle Policy
Lifecycle policies automatically delete old images to save storage costs.
-
1Click "Create rule"
-
2Rule priority: 1
-
3Rule description: Keep last 10 images
-
4Image status: Select "Any"
-
5Match criteria: "Image count more than" = 10
-
6Click "Save"
Step 6: Enable CloudTrail
CloudTrail records all API calls made in your AWS account. It's like a security camera for your AWS account - essential for auditing and compliance.
Create CloudTrail Trail
-
1Trail name: helium-production-trail
-
2Storage location: Select "Create new S3 bucket"
-
3Trail log bucket name: helium-cloudtrail-logs-ACCOUNT-IDReplace ACCOUNT-ID with your AWS account ID
-
4Log file SSE-KMS encryption: Check "Enabled"
-
5Log file validation: Check "Enabled"Ensures logs haven't been tampered with
-
6CloudWatch Logs: Check "Enabled"
-
7Log group: Select "New"
-
8Log group name: /aws/cloudtrail/helium-production
-
9Click "Next"
-
10Event type: Keep defaults (Management events, Read and Write)
-
11Click "Next" → Review → "Create trail"
Phase 1 Verification Checklist
Before proceeding to Phase 2, verify all these items are complete:
- AWS account created and activated
- MFA enabled on root account
- IAM admin user created (helium-admin)
- MFA enabled on admin user
- Access keys created and saved securely
- Cost Explorer enabled
- Budget alerts configured
- VPC created with 2 AZs
- Public subnets created (2)
- Private subnets created (2)
- Isolated subnets created (2)
- Internet Gateway attached
- NAT Gateways created (2)
- Route tables configured
- ALB security group created
- ECS task security group created
- ElastiCache security group created
- ECR repository created (helium-backend)
- ECR lifecycle policy configured
- CloudTrail enabled and logging
You've successfully set up the foundation for your AWS infrastructure. You're ready to move to Phase 2: Backend Deployment!