김원일, 서종호의 저서 [따라하며 배우는 AWS 네트워크 입문]을 요약한다. 이 포스트에서는 1장 AWS 인프라, 2장 VPC 기초를 다룬다.
Index
- 1장 AWS 인프라
- 2장 VPC 기초
1장 AWS 인프라
01. AWS 소개
1.1 클라우드 란?
인터넷을 통해 원하는 만큼의 IT 리소스를 손쉽게 사용할 수 있는 서비스를 뜻한다. AWS, Azure, GCP 등 이다.
클라우드 서비스 종류
- IaaS
- 사업자: 서버, 네트워크, 스토리지 등 자원을 제공
- 사용자: 가상 서버에 필요한 프로그램을 설치하여 사용 및 운영
- 예시:
E2C,VPC,EBS
- PasS
- 사업자: IaaS + Runtime + Middleware 제공 → 앱을 개발하기 위한 build, test, deploy 플랫폼과 환경을 제공
- 사용자: Application 개발
- 예시:
Elastic Beanstalk
- SaaS
- 사업자: 서비스 사용에 필요한 모든 것을 제공
- 사용자: 서비스를 사용
- 예시:
MSK,EFS
1.2 AWS 클라우드 소개
데이터 센터
- 서버, 네트워크, 스토리지, 로드 밸런서, 라우터 등 일반적인 IT 인프라 디바이스를 모아둔 곳을 말한다.
가용 영역
- 한 개 이상의 데이터 센터들의 모음을 말한다.
- 각 데이터 센터는 분산 되어 있으며 전용망으로 연결되어있다.
리전
- 지리적인 영역 내에서 격리되어 있는(물리적으로 분리) 여러 개의 가용 영역을 말한다.
- 리전은 최소 2개의 가용 영역으로 구성되어있다.
- 재난과 재해로 인한 서비스 장애를 막기 위해 가용 영역을 분산하여 구성하는 것을 권장하고 있다.
엣지
- 외부 인터넷과 AWS 글로벌 네트워크망을 연결하는 곳을 말한다.
CloudFront,Direct Connect,Route 53,AWS Shield,AWS Global Accelerator,API Gateway가 동작한다.
-
엣지 pop이 무엇인가?
- 전 세계적으로 분산된 AWS infra에서 가장자리 지역에서 실행되는 캐싱서버이다.
- AWS 성능 최적화하는데 중요한 역할을 한다.
- 클라이언트와 가장 가까운 위치에 있어, CDN을 통한 전송 로드 시간을 최소화한다.
-
가장자리 지역이 무엇인가?
- Region과 Availability Zone 이외의 지역으로, 데이터센터와 물리적으로 떨어져있다.
- 가장자리 지역은 세계 곳곳에 위치하며, 사용자와의 지리적 거리가 멀어질 수록 네트워크 대기 시간이 증가하는 문제를 해결하기 위해 도입되었다.
1.3 AWS 제품
| Name | Desc |
|---|---|
| EC2 | 컴퓨팅 리소스를 제공하는 가상 머신 서비스로, 인스턴스라고 부른다. |
| EBS | 가용 영역 내의 EC2 인스턴스에 연결해 사용할 수 있는 블록 스토리지이다. |
| S3 | 객체 기반의 파일을 저장할 수 있는 스토리지이다. |
| AWS CloudFormation | yaml 등의 파일을 사용해 AWS 리소스를 자동으로 배포하는 서비스이다. |
02. AWS Network 소개
AWS VPC
- Virtual Private Cloud
- AWS 클라우드 내 논리적으로 독립된 섹션을 제공한다.
AWS VPN
- Virtual Private Network
- 가상의 사설 네트워크를 구성하여 프라이빗 통신을 제공한다.
- AWS에서는
Site-to-Site VPN과Client VPN을 제공한다.
ELB
- Elastic Load Balancing
- AWS에서 제공하는 로드 밸런싱 기술, E2C의 health checking를 더불어 트래픽을 분산하여 전달한다.
- 종류
- ALB: Application (HTTP, HTTPS) 분산 처리한다. -> Application 계층에서 사용
- NLB: TCP, UDP (IP, Port) 분산 처리한다. -> Transport 계층에서 사용
- CLB: Classic Load Balancer, VPC의 전신인 EC2-Classic 에서 사용했다.
AWS PrivateLink
- 내부 네트워크를 통해 AWS 서비스를 비공개 연결하는 기능을 제공한다.
Route 53
- 관리형 DNS 서비스이다.
- 제공하는 서비스
- 도메인 구매 대행
- DNS 역할
- 라우팅 정책 설정하여 트래픽 흐름 제어
AWS Transit 게이트웨어
- VPC나 온프레미스 네트워크를 단일 지점으로 연결할 수 있는 라우팅 서비스이다.
- 다른 네트워크에 연결할 필요없이 Transit Gateway에만 연결하면 되어 관리가 쉽다.
- 다수의 VPC, VPN 등이 있을 때 복잡하게 개별 연결할 필요 없이 Transit 게이트웨어를 연결해 중앙집중형으로 관리한다.
AWS Direct Connect
- Direct Connect = 전용선
- 물리적이거나 논리적일 수 있다.
- 사용 이유
- 안정적
- 높은 보안성
- Low Latency
AWS CloudFront
- AWS의 CDN (Contents Delivery Network) 서비스이다.
- 물리적 한계를 극복하기 위해 사용자와 가까운 곳에 캐시 서버를 두고 Contents를 분배한다.
- 엣지 pop을 두고 콘텐츠를 캐싱해 서비스를 제공한다.
AWS Global Accelerator
- 트래픽 경로를 최적화 해준다.
- 싱가포르 서버를 한국이 접속하려면 많은 네트워크 망을 거치며 Latency와 Packet Loss가 증가하는데 이를 방지해준다.
네트워크 보안
네트워크 접근 제어로 IP, Port, Protocal 기반으로 접근제어를 한다.
- ACL
- 서브넷에 적용한다.
- 허용/거부 규칙을 만들 수 있다.
- 보안 그룹 (SG)
- 인스턴스에 적용한다.
- 허용 규칙만 만들 수 있다.
2장 VPC 기초
01. VPC
VPC는 독립된 가상의 클라우드 네트워크다. 리전별로 기본 VPC가 1개씩 제공되고, 사용자 커스텀 VPC는 리전 별 5개씩 만들 수 있다. 사용자는 VPC에 생성하고 제어할 수 있는 것들은 아래와 같다.
- IP 대역
- 인터페이스
- 서브넷
- 라우팅 테이블
- 인터넷 게이트웨이
- 보안그룹/ACL
02. 기본 네트워크 개념 이해
2.1 OSI 7 레이어 모델
3 Layer인 Network 계층에서 라우팅을 하며, 최적 경로를 찾는다는 점을 집중해서 봐야 한다.
2.2 IP와 서브넷 마스크
Public IP, Private IP
- Private IP는 NAT를 사용해 Public IP로 변환해야만 외부 인터넷과 통신할 수 있다.
- Docker: 각 컨테이너에
Class B에 해당하는 Private IP를 할당한다. - K8s: 각 Pod에 Private IP를 할당하는데
CNI (Container Network Interface)에 따라 사용하는 대역이 다르다.
서브넷
IP =
네트워크 ID+호스트 ID
서브넷은 네트워크를 작은 네트워크로 나누는 기술이다.
예시
- 네트워크 ID가
192.168.0.0/16서브넷이 존재한다.- 하위에
192.168.0.0/24,192.168.1.0/24서브넷으로 분리한다. - 위의 2개의 서브넷은
192.168.0.0/16이라는 같은 네트워크 ID를 가진다.
- 하위에
동일한 서브넷에 속해있다면 같은 네트워크 ID를 가지기 때문에 호스트 ID를 통해 구분한다. 이렇게 서브넷을 구분하기 위해 네트워크 ID와 호스트 ID를 분리하는 것을 서브넷 마스크라고 한다.
서브넷 마스크
| Class 대역 | 서브넷 마스크 |
|---|---|
| A 0.0.0.0 ~ 127.255.255.255 | 255.0.0.0 |
| B 128.0.0.0 ~ 191.255.255.255 | 255.255.0.0 |
| C 192.0.0.0 ~ 223.255.255.255 | 255.255.255.0 |
예시
210.77.8.3
Class C 범위에 속하므로 사용하는 서브넷 마스크는 255.255.255.0이다.
C 서브넷 마스크 2진수 표현은 1111 1111. 1111 1111. 1111 1111. 0000 0000 이다.
- 1이 사용된 지점은 네트워크 ID 이며, 0이 사용된 지점이 호스트 ID이다.
- 0의 개수로 하나의 네트워크가 최대 사용할 수 있는 호스트 개수를 유추할 수 있다.
- 0의 갯수 8개 -> (2^8) -2 = 254 -> 4 옥텟만 호스트로 사용할 수 있다.
- 두 개를 빼는 이유는 맨 앞 은
네트워크 주소, 맨 뒤는브로드캐스트 주소가 되기 때문이다.- 네트워크 주소:
210.77.8.0 - 브로드캐스트 수조:
210.77.8.255 - 사용 가능 범위:
210.77.8.1~210.77.8.254
- 네트워크 주소:
- 두 개를 빼는 이유는 맨 앞 은
- 0의 갯수 8개 -> (2^8) -2 = 254 -> 4 옥텟만 호스트로 사용할 수 있다.
CIDR
Class 기반 IP 체계를 사용하면 IP를 A,B,C 세 블록으로 나눠야 하는데, CIDR를 사용하면 블록을 더 작게 나눠 할당할 수 있다.
CIDR는 /8, /16 이런식으로 표기하는데 / 뒤에 나오는 숫자는 네트워크 ID의 길이이다. 즉 /8 이라면 1111 1111. 0000 0000. 0000 0000. 0000 0000 으로, 사용가능한 호스트 ID가 32-8 = 24로 (2^24) -2가 된다.
IP를 보는 입장에서는 /24 이렇게 되어있으면 2진수로 풀었을 때 얖의 24자리 까지 같다면 같은 서브넷에 있다고 생각하면 된다. 예를 들어 192.168.1.1 와 192.168.1.254는 같은 서브넷에 있다는 뜻이다. (24자리인 1,2,3 옥텟의 숫자가 같다)
예시 210.77.8.3/25
/25의 서브넷 마스크는 255.255.255.128 이다.
- 2진수로 풀었을 때 앞에서 25자리까지 같아야 한다.
- 사용할 수 있는 호스트의 갯수는 32 - 25 = 7 -> (2^7) - 2 =
126개가 된다. - 네트워크 주소:
210.77.8.0 - 브로드캐스트 주소:
210.77.8.127 - 사용 가능 점위:
210.77.8.1~210.77.8.126
CIDR의 이점
Class 기반의 IP 주소 체계를 Classful 이라고 부르고, Class의 한계를 극복하고자 나온 것이 Classless한 주소 체계인 CIDR (Classess Inter-Domain Routing) 이다.
CIDR은 IP 주소의 더욱 효율적인 사용과 주소 할당 및 라우팅의 더 큰 유연성, 그리고 네트워크 관리의 간소화를 제공하기
때문에 일반적으로 기존의 IP 주소 클래스보다 더욱 좋은 방법으로 간주되고 있다.
2.3 TCP와 UDP 그리고 포트 번호
TCP 사용 서비스
- HTTP
- SSH
- FTP
UDP 사용 서비스
- DNS
- DHCP
2.3.2 포트 번호
IANA 라는 단체에서 TCP와 UDP의 포트 번호 범위를 정하고 있으며, 범위에 따라 크게 3가지로 구분한다.
| 포트 | 범위 |
|---|---|
| 잘 알려진 포트 | 0 ~ 1023 |
| 등록된 포트 | 1024 ~ 49151 |
| 동적 포트 | 49152 ~ 65535 |
2.4 DHCP
동적으로 IPv4 주소를 일정 기간 임대하는 프로토콜로, 임대 시간이 만료되면 반환하거나 갱신을 해야 한다.
2.6 라우팅
- 최적의 경로를 잡아 통신하는 것이 라우팅이다.
- 라우터: 라우팅을 수행하는 장비
- 라우팅 테이블: 라우터가 테이블을 통해 경로를 파악하고 데이터 전달할 수 있게 함
03. VPC 리소스 소개
3.1 서브넷
VPC도 서브넷을 통해 네트워크를 분리할 수 있는데, 서브넷 IP 대역은 VPC IP 대역에 속해있어야 한다.
예역된 서브넷 IP
예시: 10.0.2.0/24
- 네트워크 주소:
10.0.2.0 - AWS VPC 가상 라우터 주소:
10.0.2.1 - AWS DNS 서버 주소:
10.0.2.2 - AWS 예약:
10.0.2.3 - 브로드캐스트 주소:
10.0.2.225
3.1.2 Public 서브넷과 Private 서브넷
- Public 서브넷: 외부 인터넷 구간과 통신 가능 ->
Public IP존재 - Private 서브넷: 사설 네트워크로, 내부만 통신 가능 -> NAT 게이트웨이를 사용하면 외부와 통신 가능
3.2 가상 라우터와 라우팅 테이블
가상 라우터?
- VPC의 각 서브넷에 대한 라우팅 관리한다.
- VPC를 생성하면 자동으로 생성된다.
- Custom 라우터를 추가할 수 있다.
- 서브넷별로 라우팅 테이블을 매핑할 수 있다.
3.3 인터넷 게이트웨이
- VPC에서 인터넷 구간으로 나가는 관문
- VPC 당 1개만 연결 가능
- 대상: 퍼블릭 IP를 사용하는
퍼블릭 서브넷내의 자원 양방향연결 지원
3.4 NAT 게이트웨이
- Network Address Translation
프라이빗 IP를퍼블릭 IP로 변환- 프라이빗 IP는 인터넷 구간으로 넘어올 수 없기 때문
단방향지원- 외부에서 프라이빗 네트워크 접근 불가
3.5 보안 그룹과 네트워크 ACL
- 인스턴스 보안: 보안 그룹
- 서브넷 보안: ACL