DEV Community

Aisalkyn Aidarova
Aisalkyn Aidarova

Posted on

vpc creation

Step 1. Create a VPC

Name: restaurant-vpc
CIDR: 10.0.0.0/16
Enter fullscreen mode Exit fullscreen mode

Result:

AWS
└── VPC
    └── 10.0.0.0/16
Enter fullscreen mode Exit fullscreen mode

Step 2. Create an Internet Gateway (IGW)

restaurant-igw
Enter fullscreen mode Exit fullscreen mode

Attach it to the VPC.

Result:

Internet
    │
Internet Gateway
    │
restaurant-vpc
Enter fullscreen mode Exit fullscreen mode

Step 3. Create Public Subnets

Create two public subnets in different Availability Zones.

public-subnet-1a
AZ: us-east-1a
CIDR: 10.0.1.0/24

public-subnet-1b
AZ: us-east-1b
CIDR: 10.0.2.0/24
Enter fullscreen mode Exit fullscreen mode

Enable:

Auto Assign Public IP = Yes
Enter fullscreen mode Exit fullscreen mode

Result:

VPC
├── Public Subnet 1A
└── Public Subnet 1B
Enter fullscreen mode Exit fullscreen mode

Step 4. Create Private Subnets

private-subnet-1a
AZ: us-east-1a
CIDR: 10.0.11.0/24

private-subnet-1b
AZ: us-east-1b
CIDR: 10.0.12.0/24
Enter fullscreen mode Exit fullscreen mode

Do NOT enable public IP.

Result:

VPC
├── Public 1A
├── Public 1B
├── Private 1A
└── Private 1B
Enter fullscreen mode Exit fullscreen mode

Step 5. Create Public Route Table

restaurant-public-rt
Enter fullscreen mode Exit fullscreen mode

Add route:

Destination      Target

0.0.0.0/0  --->  Internet Gateway
Enter fullscreen mode Exit fullscreen mode

Associate it with:

  • Public Subnet 1A
  • Public Subnet 1B

Step 6. Create Elastic IP

VPC → Elastic IP

Allocate one Elastic IP.


Step 7. Create NAT Gateway

Inside:

public-subnet-1a
Enter fullscreen mode Exit fullscreen mode

Attach:

  • Elastic IP

Wait until status becomes Available.


Step 8. Create Private Route Table

restaurant-private-rt
Enter fullscreen mode Exit fullscreen mode

Route:

0.0.0.0/0  ---> NAT Gateway
Enter fullscreen mode Exit fullscreen mode

Associate:

  • Private Subnet 1A
  • Private Subnet 1B

Step 9. Create Security Groups

For example:

ALB SG

HTTP 80
HTTPS 443

Source:
0.0.0.0/0
Enter fullscreen mode Exit fullscreen mode

ECS SG

80

Source:
ALB Security Group
Enter fullscreen mode Exit fullscreen mode

Database SG (later)

5432

Source:
ECS Security Group
Enter fullscreen mode Exit fullscreen mode

Step 10. Launch EC2 (optional Bastion)

Place it in:

Public Subnet
Enter fullscreen mode Exit fullscreen mode

Assign Public IP.


Step 11. Create ECS Cluster

restaurant-cluster
Enter fullscreen mode Exit fullscreen mode

Step 12. Create Task Definition

Docker image

CPU

Memory

Logs

Execution Role


Step 13. Create ECS Service

Choose:

Launch Type:
Fargate
Enter fullscreen mode Exit fullscreen mode

Network:

Private Subnet 1A
Private Subnet 1B
Enter fullscreen mode Exit fullscreen mode

Security Group:

ecs-sg
Enter fullscreen mode Exit fullscreen mode

Public IP:

Disabled
Enter fullscreen mode Exit fullscreen mode

Step 14. Create ALB

Choose:

Internet Facing
Enter fullscreen mode Exit fullscreen mode

Subnets:

Public 1A
Public 1B
Enter fullscreen mode Exit fullscreen mode

Security Group:

alb-sg
Enter fullscreen mode Exit fullscreen mode

Step 15. Create Target Group

Type:

IP
Enter fullscreen mode Exit fullscreen mode

Health Check:

/
Enter fullscreen mode Exit fullscreen mode

or

/health
Enter fullscreen mode Exit fullscreen mode

Step 16. Connect ECS Service to ALB

Listener:

443
Enter fullscreen mode Exit fullscreen mode

Target Group:

restaurant-tg
Enter fullscreen mode Exit fullscreen mode

Step 17. Create Route 53

Hosted Zone

Create:

A Record
Alias → ALB
Enter fullscreen mode Exit fullscreen mode

Step 18. Create ACM Certificate

Request:

restaurant-company.com
Enter fullscreen mode Exit fullscreen mode

Validate with Route 53.

Attach to ALB.


Step 19. Enable Auto Scaling

Minimum:

1
Enter fullscreen mode Exit fullscreen mode

Desired:

1
Enter fullscreen mode Exit fullscreen mode

Maximum:

4
Enter fullscreen mode Exit fullscreen mode

Policy:

CPU 60%
Enter fullscreen mode Exit fullscreen mode

Step 20. Enable Monitoring

  • CloudWatch Logs
  • CloudWatch Metrics
  • CloudWatch Alarm
  • SNS Notification

Final Architecture

                 Internet
                     │
             Internet Gateway
                     │
        ┌─────────────────────────┐
        │          VPC            │
        │      10.0.0.0/16        │
        └─────────────────────────┘
            │                  │
    Public Subnet A      Public Subnet B
      10.0.1.0/24          10.0.2.0/24
            │                  │
        ALB (HTTPS)─────────────┘
            │
       Target Group
            │
    ┌───────┴────────┐
    │                │
Private Subnet A  Private Subnet B
10.0.11.0/24      10.0.12.0/24
    │                │
 ECS Task 1       ECS Task 2
    │                │
    └───────┬────────┘
            │
      Private Route Table
            │
       NAT Gateway
            │
      Elastic IP
            │
        Internet
Enter fullscreen mode Exit fullscreen mode

This sequence gives students a clear understanding of how networking is built from the ground up before deploying applications.

Top comments (0)