VPC

Virtual Private Cloud

AWS Architecture Overview

What is a VPC

  • Logically, a VPC is your datacentre in the cloud
  • Complete control over network i.e. ip addresses and subnets
  • A VPC spans availability zones but not Regions
  • VPCs can contain multiple subnets
  • EC2 instances are launched inside a VPC
  • They can be 'peered' with other VPCs to allow for communication without going over the internet. Transitive peering is not allowed
  • ie. A -> B | B -> C | A !-> C

Internet Gateway

  • Allows for communication between the VPC and the internet
  • Used as a target by route tables
  • The scope of traffic through an internet gateway can be configured to certain IP addresses or allow all

Subnet

  • A subnet is a part of a larger network, in this case, a VPC
  • Subnets cannot span availability zones
  • If a subnet doesn't have a route to the VPCs internet gateway, then it is a private subnet. 
  • If a subnets traffic is routed to an internet gateway, then its a public subnet
    • In order for instances in the public subnet to accept traffic, they must also be assigned an elastic IP address
  • If a subnet has its traffic routed to a virtual private gateway, then it is a VPN only subnet

VPC and Subnet Sizing

  • The size of a VPC cant be changed after its been created, it can contain between 16 to 65,536 IP addresses
  • The CIDR block of a subnet can be the same as the VPC (for single subnet in the VPC) or smaller, for a subsection (for multiple subnets)

NAT

  • If we have configured security for our private subnet correctly, we will have no outbound or inbound access to / from the internet
  • This makes installing software / configuring packages impossible
  • NAT allows us to safely access the internet from our instances in our private subnet
  • NAT hides the source of traffic, making all outbound requests appear as if they're coming from the NAT itself

NAT Instance

  • EC2 Instance managed by the user
  • Must run in a public subnet
  • Internet traffic from the private subnet is routed through this instance via routing tables
  • Remember to disable source / destination check

NAT Gateway

  • Service provided by AWS
  • Internet traffic is routed through the gateway via routing tables
  • No maintenance is required by the user, all managed my EC2

Access

Security Groups

  • Applied at an Instance level
  • Whitelist only (allow)
  • Stateful (return traffic automatically allowed)
  • All rules are evaluated
  • Applies to an instance in a security group if that security group is applied

Network ACLs

  • Operates at a subnet level
  • Black & White list (Allow & deny rules)
  • Stateful (return traffic must be explicitly allowed)
  • Automatically applied to all instances in a subnet

Elastic Load Balancers

  • Application load balancer
    • Layer 7 load balancer
    • Makes decisions at the application layer (http[s])
    • Supports path based routing
    • Can route to different ports on the same EC2 instance
  • Classic load balancer
    • Layer 4 load balancer
    • Makes decisions at the TCP / SSL layer

Bastion Server

  • A hardened server allowing SSH or RDP connections from the outside world
  • Used as a jumpbox to access private resources. Our private resources can be configured to allow access from only our bastion server
  • Typically very secure in terms of who it will allow incoming connections from

Questions?

VPC

By harmingcola

VPC

  • 428