[AWS] AWS를 통해 네트워크 용어 찍먹하기
0. 들어가기 전에
우테코 강의 시간에 들었던 AWS 내용에 대해서 추가로 학습하고 정리해보았습니다.
1. AWS란?
AWS는 Amazon Web Services의 약자로 아마존에서 제공하는 클라우드 컴퓨팅 플랫폼입니다.
그렇다면 클라우드 컴퓨팅은 무엇을 의미할까요?
클라우드 컴퓨팅은 사용자의 직접적인 관리 없이 컴퓨터 시스템 리소스를 바로 제공(on-demand)하는 것을 의미합니다. 그래서 사용자는 저렴한 비용으로 사용한 용량에 따라 돈을 지불하는 합리적인 시스템을 구축할 수 있습니다.
추가로 클라우드 컴퓨팅은 제공하는 서비스에 따라 IaaS, PaaS, SaaS로 나뉩니다. 이 중에서 AWS는 IaaS에 속해있으며, 더 자세한 건 아래에서 설명하겠습니다.
1.1 IaaS
Infrastructure as a Service
벤더사를 통해 가성 서버를 빌려 사용하는 단계를 의미합니다. IaaS의 가장 큰 장점은 사용자가 인프라를 활용하는 방법을 자유롭게 선택할 수 있다는 점입니다. 데이터베이스를 비롯해 운영체제와 같은 것을 사용자 입맛에 맞게 선택할 수 있으며 AWS나 Microsoft Azure 같은 서비스가 여기에 포함됩니다.
1.2 PaaS
Platform-as-a-Service
IaaS가 제공하는 서비스에 추가로 DB와 미들웨어를 같이 제공하는 서비스입니다. 주로 개발환경과 관련된 서비스를 제공합니다. AWS Elastic Beanstalk, Heroku 등이 여기에 포함됩니다.
1.3 SaaS
Software-as-a-Service
소프트웨어를 제공하는 서비스입니다. 네이버 클라우드, 웹 메일 등이 포함됩니다.
2. AWS의 네트워크 용어
AWS EC2를 시작할 때, 다음과 같은 네트워크 설정을 볼 수 있습니다. 하나씩 알아보겠습니다.
쉽게 이해하기 위해서 큰 개념부터 작은 개념 순으로 설명하겠습니다.
[리전(Region)]
AWS의 데이터 센터의 물리적 위치로 보통 한 리전에는 여러 데이터 센터가 묶여있습니다. 리전은 최소한 2개의 가용영역을 포함하고 있습니다.
[ 가용영역(Available Zone, AZ) ]
가용영역은 데이터 센터를 의미합니다. 참고로 서울 영역에는 2020년에 4개의 가용영역으로 확장이 되었습니다.
[ VPC(Virtual Private Cloud) ]
AWS 계정 전용 가상 네트워크로써, 다수의 AZ에 걸친 상태로 생성할 수 있습니다. 따라서 물리적으로 다른 데이터 센터지만, 논리적으로 같은 VPC로 묶을 수 있습니다. 리전 단위로 생성된다.
[ 서브넷 ]
네트워크를 작게 쪼갠 개념으로 각 서브넷 마다 IP주소의 범위가 결정되어 있습니다. 이 때, 이 범위를 CIDR 표기법으로 표현합니다.
AWS에서의 서브넷은 VPC를 작게 나눈 개념이고, 하나의 서브넷은 하나의 AZ안에 위치해야 합니다.
서브넷은 퍼블릭 서브넷, 프라이빗 서브넷으로 나뉩니다. 둘의 차이는 다음과 같습니다.
- 퍼블릭 서브넷
- 인터넷 게이트웨이(IGW)를 통해 외부와 연결되어 있음.
- IGW는 VPC가 외부에서 통신이 가능하도록 경로를 만들어 줌
- 안에 위치한 인스턴스에 퍼블릭 IP 부여 가능
- 주로 외부에서 노출되어야 하는 인프라에 사용된다.
- 인터넷 게이트웨이(IGW)를 통해 외부와 연결되어 있음.
- 프라이빗 서브넷
- 외부에서 인터넷을 통해 연결할 수 없는 서브넷
- 퍼블릭 IP 부여 불가능
- 데이터베이스와 같은 외부에 노출될 필요 없는 인프라에 사용된다.
그렇다면 프라이빗 서브넷에 위치한 애플리케이션은 업데이트와 같은 인터넷을 사용하는 작업을 못 하는 것이 아닐까? 이를 해결하기위해 AWS는 NAT Gateway를 사용해, 아웃바운드 전용 인터넷이 가능하도록 한다.
[ CIDR(Classless Inter Domain Routing) ]
IP 주소의 영역을 여러 개의 네트워크 영역으로 나누기 위해 사용하는 기법입니다.
- CIDR 블록 표기법
- 네트워크 주소 + 호스트 주소로 구성
- ex)
10.11.12.0/24
10.11.12.0
→ IP주소- 24 → 서브넷 마스크 : Network 주소와 Host 주소 구별
- IPv4에서는 IP 주소는 32비트이므로 32 - 24 = 8 입니다. 따라서 앞에 있는
10.11.12
가 Network 주소가 되고, 0이 Host 주소가 됩니다.
- IPv4에서는 IP 주소는 32비트이므로 32 - 24 = 8 입니다. 따라서 앞에 있는
만약 CIDR 블록이 192.168.1.0/24 이면, 해당 CIDR 블록은 IP 주소를 2^8 = 256개를 보유하지만 전부 다 사용할 수는 없습니다.
AWS에서는 5개가 선점이 되어있어서 256 - 5 = 251개를 사용할 수 있습니다. 선점한 IP 주소는 다음과 같습니다.
10.11.12.0
: 네트워크 주소10.11.12.1
: VPC 라우터용으로 예약한 주소10.11.12.2
: AWS의 DNS 서버에 등록한 주소10.11.12.3
: AWS에서 앞으로 사용할 주소10.11.12.255
: 브로드케스트 주소
[ NAT(Network Address Translation) ]
Private IP를 통해서 Public IP로 통신할 수 있도록 주소를 변환해 주는 방법입니다.
- Dynamic NAT : 여러 Public IP가 담겨있는 Pool에서 랜덤으로 하나를 가져와 쓰는 방법
- Static NAT : Private IP와 Public IP를 1:1로 매칭하는 방법
- AWS의 Internet Gateway(IGW)가 사용하는 방식
- PAT(Port Address Translation) : 하나의 Public IP에 다수의 Private IP를 매칭하는 방법
- 하나의 Public IP만 사용하므로 동시에 요청을 보내면 장애가 발생할 수 있는데, Public IP의 포트를 통해서 구별하는 방법
[ Private IP ]
한정된 IP주소를 최대한 활용하기 위해 IP주소를 나누고자 만든 개념입니다.
- 사설 IP의 범위가 정해져 있습니다(클래스 기반 라우팅).
※ 참조
'AWS' 카테고리의 다른 글
[AWS] 서브 도메인 적용하기 (0) | 2022.07.31 |
---|---|
[AWS] IP주소를 Domain로 Redirect (0) | 2022.07.30 |
[AWS] AWS의 도메인에 HTTPS 적용 (0) | 2022.07.29 |
[AWS] AWS EC2의 MySQL에 외부 접속하기 (0) | 2022.07.28 |
[AWS] AWS EC2에 DNS 연결하기 (0) | 2022.07.27 |