English version
These Velog notes combine several AWS building blocks that often appear together: Auto Scaling, load balancers, containers, VPC networking, CIDR, Direct Connect, and PrivateLink. They are separate services, but the architectural shape is connected.
A production application needs compute that can scale, a network boundary where resources live, a routing layer for traffic, and a deployment unit that can move between environments. In AWS vocabulary, that often means Auto Scaling, Elastic Load Balancing, VPC, and containers.
Auto Scaling
Auto Scaling is about matching capacity to demand. The goal is not only to add servers when traffic rises. It is also to avoid paying for idle capacity when traffic falls.
AWS scaling is used across several scalable resources, including EC2 Auto Scaling groups, ECS services, Aurora read replicas, DynamoDB capacity, and Spot Fleet. Older AWS Auto Scaling Plans material grouped this around a single scaling plan. In current designs, it is safer to think in terms of per-service scaling policies: define what should scale, what metric should drive scaling, and how quickly the system should react.
The useful benefits are:
- A consistent scaling model across multiple AWS services.
- Service-specific policies that coordinate capacity with demand.
- Continuous monitoring of load and capacity.
- Paying closer to the capacity actually needed.
Use Auto Scaling when an application has variable load, multiple scalable resources, or a need to keep a fleet healthy without manually adding and removing instances.
Load balancing
An Application Load Balancer sits in front of application targets and routes traffic. The notes call out several useful capabilities:
- Path-based routing.
- Host-based routing.
- Native IPv6 support.
- AWS WAF integration.
- Dynamic ports.
- Deletion protection.
- Request tracing.
Path and host routing are especially important for service-oriented systems. They let one load balancer route different URLs or hostnames to different target groups.
Containers
A container packages an application with the runtime, tools, libraries, and configuration it needs. It is lighter than a full virtual machine because multiple containers share the host operating system kernel.
Docker is the common toolchain for building, storing, managing, and running containers. A container image is the read-only template. A running container is an instance of that image.
Containers are useful because they make the runtime environment portable. The same image can move through development, CI, staging, and production with fewer environment differences.
The tradeoff is operational complexity. Once applications are split into containers and microservices, you need clear networking, health checks, deployment rules, logging, and failure handling.
CIDR and VPC
CIDR, or Classless Inter-Domain Routing, describes IP address ranges with prefix length notation.
For example:
10.10.0.0/16
10.10.101.0/24
The /16 freezes the first 16 bits of the address range. The /24 freezes the first 24 bits. Smaller networks use longer prefixes and provide fewer IP addresses.
A VPC is a private virtual network in the AWS cloud. It gives control over network configuration and security boundaries. Other AWS services are deployed into or connected with that VPC.
Core VPC pieces include:
- Subnets.
- Route tables.
- Internet Gateway.
- NAT Gateway.
- Network ACLs.
- Availability Zones.
A public subnet routes internet-bound traffic through an Internet Gateway. A private subnet is isolated from direct inbound internet access and usually reaches outbound internet through a NAT Gateway or private service endpoint.
Default VPCs are convenient, but custom VPCs are better for intentional production design because the CIDR range, subnets, routes, and security boundaries are explicitly chosen.
Direct Connect and PrivateLink
Direct Connect provides a dedicated network connection path into AWS. Older intro material often mentioned 1Gbps and 10Gbps connections, but current dedicated connection port speeds also include larger options such as 100Gbps and 400Gbps depending on location and connection type. The core idea is stable private connectivity when sending everything over the public internet is not the right fit.
PrivateLink keeps traffic to supported AWS services or endpoint services inside the AWS network. That is useful when the system should avoid public internet exposure while still consuming managed services.
Korean notes
이 노트는 Auto Scaling, Load Balancer, Container, VPC, CIDR, Direct Connect, PrivateLink를 한 흐름으로 묶어 정리한 것이다.
각각은 다른 서비스지만 production architecture에서는 같이 등장한다. Application을 운영하려면 traffic을 받는 layer, scale되는 compute, resource가 배치되는 network boundary, 환경 차이를 줄이는 deployment unit이 필요하다.
AWS에서는 이 조합이 Auto Scaling, Elastic Load Balancing, VPC, Container 쪽으로 이어진다.
Auto Scaling
Auto Scaling은 demand에 맞춰 capacity를 조절하는 것이다. Traffic이 늘어날 때 instance를 추가하는 것도 중요하지만, traffic이 줄었을 때 필요 없는 capacity를 줄여 비용을 관리하는 것도 중요하다.
AWS scaling은 EC2 Auto Scaling group, ECS service, Aurora read replica, DynamoDB capacity, Spot Fleet 같은 resource와 연결될 수 있다.
예전 AWS Auto Scaling Plans 자료에서는 이것을 하나의 scaling plan으로 묶어 설명했지만, 현재 설계에서는 service별 scaling policy로 이해하는 편이 더 안전하다. 중요한 질문은 같다.
- 무엇을 scale할 것인가
- 어떤 metric을 기준으로 scale할 것인가
- 얼마나 빠르게 반응할 것인가
- 최소/최대 capacity를 어디까지 허용할 것인가
Load 변동이 크거나 여러 scalable resource를 운영한다면 Auto Scaling을 통해 capacity를 수동으로 맞추는 부담을 줄일 수 있다.
Load Balancer
Application Load Balancer는 application 앞에서 traffic을 받아 target group으로 전달한다.
주요 기능은 다음과 같다.
- Path-based routing
- Host-based routing
- Native IPv6 support
- AWS WAF 연동
- Dynamic port
- Deletion protection
- Request tracing
Path/host routing은 microservice 구조에서 특히 중요하다. 같은 load balancer 앞단에서 URL path나 hostname에 따라 다른 service로 traffic을 보낼 수 있기 때문이다.
Container
Container는 application 실행에 필요한 code, runtime, system tools, library, setting을 함께 묶은 실행 단위다.
VM과 달리 container는 host OS kernel을 공유한다. 그래서 상대적으로 가볍고, 같은 host에서 여러 container를 실행하기 좋다.
Docker image는 container를 만들기 위한 read-only template이고, running container는 그 image가 실제로 실행된 instance다.
Container의 장점은 environment portability다. 같은 image를 dev, CI, staging, production에 가져갈 수 있기 때문에 “내 컴퓨터에서는 되는데 서버에서는 안 됨” 문제를 줄일 수 있다.
하지만 container를 쓰면 networking, health check, logging, deployment, failure handling 같은 운영 요소도 같이 설계해야 한다.
CIDR와 VPC
CIDR는 IP address range를 prefix length로 표현하는 방식이다.
10.10.0.0/16
10.10.101.0/24
/16은 앞 16bit를 network 영역으로 보는 것이고, /24는 앞 24bit를 network 영역으로 보는 것이다. Prefix가 길수록 network 범위는 작아지고 사용할 수 있는 IP 수는 줄어든다.
VPC는 AWS cloud 안의 private virtual network다. Resource가 어디에 배치되고, 서로 어떻게 통신하고, 외부와 어떤 경계로 연결되는지를 정의한다.
VPC의 주요 구성 요소는 다음과 같다.
- Subnet
- Route table
- Internet Gateway
- NAT Gateway
- Network ACL
- Availability Zone
Public subnet은 Internet Gateway를 통해 외부 internet으로 route가 열려 있는 subnet이다. Private subnet은 직접 inbound internet traffic을 받지 않고, 필요하면 NAT Gateway나 private endpoint를 통해 외부 또는 AWS service에 접근한다.
Default VPC는 편하지만 production에서는 custom VPC로 CIDR, subnet, routing, security boundary를 명시적으로 설계하는 편이 안전하다.
Direct Connect와 PrivateLink
Direct Connect는 AWS와 private dedicated network path를 만드는 서비스다. 예전 입문 자료에서는 1Gbps와 10Gbps 중심으로 설명하는 경우가 많았지만, 현재 dedicated connection은 location과 connection type에 따라 100Gbps, 400Gbps 같은 더 큰 port speed도 제공된다. 핵심은 public internet을 거치지 않는 안정적인 private connectivity가 필요할 때 고려한다는 점이다.
PrivateLink는 AWS service 또는 endpoint service로 향하는 traffic을 AWS network 내부에 유지하는 방식이다. Public internet exposure를 줄이고 private connectivity를 유지하려는 경우에 유용하다.
Summary
AWS architecture를 볼 때 Auto Scaling만 따로 보거나 VPC만 따로 보면 흐름이 끊긴다. Traffic은 load balancer를 지나고, compute는 scaling policy에 따라 늘고 줄며, resource는 VPC 안의 subnet과 route table에 의해 통신한다. Container는 이 application을 배포 가능한 단위로 만든다.