Overview
This guide walks you through the initial setup and prerequisites needed to deploy the GovTech Multicloud Platform to AWS using Terraform and Kubernetes (EKS).Prerequisites
Required Tools
Ensure the following tools are installed and configured:AWS Account Setup
Configure AWS Credentials
Configure your AWS credentials with appropriate permissions:Enter your AWS credentials:
- AWS Access Key ID
- AWS Secret Access Key
- Default region:
us-east-1 - Default output format:
json
Verify AWS Access
Verify your AWS account access:This should return your account ID, user ARN, and user ID.
IAM Permissions
Your AWS user or role needs the following permissions:- VPC: Create and manage VPCs, subnets, route tables, internet gateways, NAT gateways
- EKS: Create and manage EKS clusters and node groups
- EC2: Create and manage EC2 instances, security groups, key pairs
- RDS: Create and manage RDS instances, subnet groups, parameter groups
- S3: Create and manage S3 buckets
- IAM: Create and manage IAM roles, policies, OIDC providers
- KMS: Create and manage KMS keys
- ECR: Create and manage ECR repositories
- CloudTrail: Create and manage CloudTrail trails
- GuardDuty: Enable and manage GuardDuty
- WAF: Create and manage WAF web ACLs
Environment Variables
Set up required environment variables:Never commit the
db_password to version control. Use environment variables, AWS Secrets Manager, or a secure secret management solution.Project Structure
Understand the project structure before deployment:Pre-Deployment Checklist
Before deploying, verify:Tools Installed
Tools Installed
- AWS CLI installed and configured
- Terraform >= 1.5.0 installed
- kubectl installed
- Git installed
AWS Access
AWS Access
- AWS credentials configured
- Correct AWS region selected (us-east-1)
- IAM permissions verified
- S3 bucket for Terraform state created
Environment Configuration
Environment Configuration
- Environment variables set
- Database password generated (secure)
- Environment selected (dev/staging/prod)
Network Requirements
Network Requirements
- No CIDR conflicts with existing VPCs
- Sufficient IP addresses in chosen CIDR ranges
- DNS resolution working
Next Steps
Once prerequisites are complete, proceed to:- Terraform Configuration - Set up infrastructure
- Kubernetes Deployment - Deploy applications
- Environments - Understand environment differences
Troubleshooting
AWS CLI Not Found
If you seeaws: command not found:
Terraform Version Mismatch
If Terraform version is too old:kubectl Connection Issues
If kubectl cannot connect to cluster:Support
For additional help:- Check the Terraform documentation
- Review environment-specific configurations
- Consult rollback procedures if issues occur