본 글은 UMC EWHA에서 활동하며 공부하는 워크북을 토대로 정리된 글입니다.
AWS에서 리전과 가용영역
리전
AWS에서 수많은 컴퓨팅 서비스를 하려면 당연히 대규모의 서버 컴퓨터를 모아둔 곳이 필요하다.
한 곳에 전부 다 몰아둔다면
1. 자연 재해가 발생 할 경우 모든 서비스가 마비된다.
2. 모든 자원이 북미에 있다면, 지구 반대편의 아시아 지역은 멀어서 서비스가 느리다.
2가지 불편한 점이 발생한다.
따라서 서비스를 하기 위한 자원들을 여러 곳에 분산해서 배치를 해둔다.
가용영역
리전을 한 번 더 분산해서 배치한 것
+ 서브넷, 서브넷마스크, 서브넷팅
IPv4 주소 체계는 클래스를 나누어 IP를 할당한다. -> 매우 비효율적 -> 네트워크 장치 수에 따라 효율적으로 사용할 수 있는 서브넷
서브넷 : IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크
서브넷마스크 : IP 주소 체계의 Network ID와 Host ID를 분리하는 역할
서브넷팅 : IP 주소 낭비를 방지하기 위해 서브넷 마스크를 이용하여 원본 네트워크를 여러 개의 네트워크로 분리하는 것
-> 서브넷마스크의 bit수를 증가시키는 것
IP주소에 서브넷마스크를 AND 연산하면 Network ID가 된다.
+ 203.230.7.0/25, 203.230.7.128/25
IP 대역은 위와 같이 두 영역으로 나눌 수 있다.
네트워크 아이디(203.230.7.0, 203.230.7.128)가 다르기에 기본적으로 다른 LAN이다.
따라서 라우터 혹은 L3 스위치의 라우팅이 있어야 통신이 가능하다.
VPC
VPC는 기본적으로 가상의 네트워크 영역이기에 사설 아이피 주소를 가진다.
사설 아이피 대역은
10.0.0.0/8. 172.16.0.0/12. 192.168.0.0/24 -> 3개의 대역을 가진다.
하나의 VPC에는 위의 네트워크 대역 혹은 서브넷 대역이 할당 가능하다.
10.0.0.0/8의 서브넷인 10.0.0.0/16도 VPC에 할당 가능
VPC의 실제 사용
실제 사용 시 VPC 자체에서도 서브넷을 나눠서 사용하게 된다.
예를 들어 10.0.0.0/16의 IP주소를 VPC에 할당한 상황에서
VPC를 원하면 다시 서브넷으로 나눠서 각각 서브넷을 원하는 가용영역에 배치하여 사용하게 된다.
나눈 서브넷을 다시 나누지는 못한다.
유의할 점 !
VPC의 서브넷 IP 대역에서는 실제 네트워크와 달리 총 5개의 아이피주소를 호스트에 할당할 수 없다.
1. 서브넷의 네트워크 대역
2. VPC 라우터에 할당
3. Amazon이 제공하는 DNS에 할당
4. 미래를 위해 예약
5. 브로드 캐스트 주소
중요
VPC 내부적으로 라우터가 존재하고, VPC 내부 서브넷끼리 통신이 된다.
VPC의 외부통신
기본적으로 사설 아이피 대역은 공용 아이피 대역과 통신이 불가능하다.
하지만 AWS로 인프라를 구축하면 통신이 된다. 왜?
Public Subnet
- VPC 서브넷 중 외부와 통신이 원활하게 되는 서브넷 대역
- AWS의 Internet Gateway를 통해 해당 서브넷을 퍼블릿 서브넷이 되게 할 수 있다.
- 서브넷이 외부와 통신할 때 Internet Gateway를 거치게 하면 외부와 통신이 가능
- 이때, 서브넷을 Internet Gateway를 통해 밖으로 나가도록 라우팅 테이블 설정을 해줘야 퍼블릭 서브넷이 된다.
- 아래 그림처럼 Internet Gateway를 만들고 라우팅 테이블에서 내가 원하는 서브넷에 연결하여 퍼블릭 서브넷을 만든다.
- Destination : 0.0.0.0/0 ( 모든 아이피 주소를 의미 = 외부 모든 아이피 = 밖으로 나갈 때)
- Target : 만들어둔 Internet Gateway 식별자
+ Destination : 10.0.0.0/16 -> VPC 주소 = VPC로 들어올 때
Target : Local -> 내부 VPC 라우터가 알아서 잘 보내줄 것
Private Subnet
- 외부와 통신이 되지 않는 서브넷 대역
- 위의 조치를 취하지 않아 (VPC가 기본적으로 사설 아이피) 외부와 단절된 서브넷
- 릴리즈 서버의 경우 실제 고객의 데이터가 저장되는 데이터베이스를 보호해야 하므로, 데이터베이스를 Private Subnet에 배치해야 함
- 데이터베이스를 사용하는 EC2 등과 같은 컴퓨팅 자원을 같은 VPC에 저장하면 외부와 통신이 안되어 데이터베이스를 못 쓰는 문제점 X
- 데이터베이스에 원격으로 접속하고 싶다면 SSH 터널링이라는 기술이 필요함. DataGrip에서 아주 쉽게 설정 가능하다.
사설 아이피 대역의 역할
1. 부족한 IP 주소 문제를 완화
2. 높은 보안성
예를 들어, 집에서 공유기로 와이파이를 사용할 때 공용 아이피 주소는 공유기에만 할당이 되고, 공유기에 연결한 디바이스들은 사설 아이피 대역을 받게 된다.
외부 인터넷은 공유기로 먼저 데이터를 보내고, 공유기는 포트를 통해 각 디바이스들을 구분하여 데이터를 보내준다.
공유기의 80번 포트는 192.168.0.1이 할당 된 노트북이
공유기의 8080번 포트는 192.168.0.2가 할당 된 PC가
연결이 된 것
+ 포트포워딩 : 하나의 공용 IP 주소를 가진 공유기가 자신의 포트를 통해 올바른 사설 IP 주소를 가진 디바이스에게 데이터를 주는 것
외부 네트워크의 디바이스는 공유기 뒤에 사설 아이피 주소를 가지고 있다.
이 숨어있는 디바이스로 직접 데이터를 절대로 전송할 수 없고, 무조건 공유기를 거친다.
키워드 정리
AWS
- Amazon Web Services 의 약어이며 아마존이 제공하는 클라우드 컴퓨팅 플랫폼
- 사용자가 웹상에서 IT 인프라를 구축하고 운영할 수 있도록 다양한 서비스를 제공한다.
- 컴퓨팅 서비스(EC2), 스토리지 및 데이터베이스(S3, RDS, DynamoDB), 네트워킹(VPC, Route 53), 보안 및 ID 관리(IAM), 분석 및 인공지능 등의 서비스 제공
- 위의 서비스들을 사용자가 필요한 만큼 확장하고 결합하여 다양한 애플리케이션을 구축하고 운영할 수 있는 유연성과 확장성을 제공한다.
리전과 가용영역
- AWS의 인프라는 지역적으로 구성되어 있고, 각 지역은 하나 이상의 가용 영역으로 구성되어 있다.
- 리전 : 지리적으로 분리되어 독립적으로 운영되는 영역, 서로 다른 데이터 센터와 인프라를 가지고 있다. 따라서 지역적으로 사용자에게 가까운 서비스를 제공하고, 고가용성과 내구성을 보장한다.
- 가용영역 : 각 리전 내에서 물리적으로 분리된 데이터 센터 그룹, 가용 영역 간의 네트워크 연결은 매우 빠르고 안정적이며, 장애 발생 . 시다른 가용 영역으로 트래픽을 라우팅하여 고가용성을 유지할 수 있다.
서브네팅
- 네트워크를 더 작은 부분으로 나누는 프로세스
- 네트워크를 효율적으로 관리하고 트래픽을 분산시킬 수 있다.
- IP 주소 공간을 효율적으로 사용하여 네트워크 리소스를 최적화하고 보안을 강화하는 것
- 서브넷 크기 결정 -> 서브넷 마스크 선택 -> 서브넷 주소 지정 -> 서브넷 구성
라우팅
- 네트워크에서 데이터 패킷을 한 지점에서 다른 지점으로 전송하는 과정
- 라우팅 알고리즘을 통해 네트워크에 연결된 각 장치들이 어떻게 데이터를 전달할 지 결정한다.
- 패킷의 목적지 주소를 기반으로 패킷을 다음 라우터나 최종 목적지로 전송한다.
- 라우터는 라우팅 테이블을 사용하여 패킷의 목적지 주소를 분석하고, 이를 기반으로 패킷을 전달할 다음 호스트 또는 라우터를 결정한다.
- 정적 라우팅, 동적 라우팅, 기본 라우팅
VPC
- Virtual Private Cloud, AWS에서 제공하는 가상 네트워킹 환경
- VPC를 사용하여 AWS 클라우드 내에서 독립적인 가상 네트워크를 설정하고 관리할 수 있다.
- 사용자가 완전히 제어하고 정의할 수 있는 가상 네트워크를 생성할 수 있다.
- 가상 프라이빗 네트워크를 제공하므로, 인터넷과 외부와의 통신은 보안 그룹 및 네트워크 ACL 등으로 제어된다. 따라서 네트워크 환경을 보호하고 보안 정책을 적용할 수 있다.
- 인터넷 게이트웨이나 NAT 게이트웨이 등을 사용하여 인터넷과 연결할 수 있다.
- 클라우드 환경에서 안전하고 확장 가능한 네트워크 인프라를 제공하는 데 중요한 역할
사설 IP주소
- 인터넷에 연결되지 않은 사설 네트워크 내에서 사용되는 IP주소
- 인터넷에서 라우팅되지 않으며, 주로 내부 네트워크에서 호스트와 장치 간 통신을 위해 사용된다.
-
- 클래스 A 사설 IP 주소 범위: 10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8)
- 클래스 B 사설 IP 주소 범위: 172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12)
- 클래스 C 사설 IP 주소 범위: 192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16)
-
- 라우터나 네트워크 장비를 통해 인터넷으로 라우팅되지 않으므로, 외부 네트워크와 겹치지 않는 주소 공간을 제공한다.
- 다수의 장치가 하나의 공용 IP주소를 공유하면서도 내부적으로는 고유한 IP주소를 사용한다.
- NAT 기술을 사용하여 사설 IP주소를 공용 IP주소로 변환하여 외부와 통신할 수 있다.
포트포워딩
- 네트워크에서 특정 포트로 들어오는 연결 요청을 네트워크 내부의 다른 장치로 전달하는 기술
- 라우터나 방화벽과 같은 네트워크 장비에서 사용되며, 외부 네트워크에서 내부 네트워크로 들어오는 트래픽을 관리하는 데 사용된다.
- 사용자는 외부에서 들어오는 포트와 내부로 전달할 포트를 설정하고, 목적지 IP주소를 지정하여 포트 포워딩을 구성할 수 있다.
NAT 프로토콜
- Network Address Translation, 네트워크에서 사용되는 주소 변환 기술
- 여러 장치가 하나의 공용 IP 주소를 공유하는 환경에서 사용된다.
- 사설 IP주소를 사용하는 내부 네트워크에서 외부 네트워크와 통신할 수 있도록 해준다.
- IP주소 변환, 포트 변환, 보안 향상
- 일반적으로 NAT44, NAT64
포트번호
- 네트워크 통신에서 프로세스나 서비스를 식별하기 위해 사용되는 번호
- TCP 및 UDP와 같은 네트워크 프로토콜에서 사용된다.
- 0부터 65535 범위에서 지정될 수 있고, 0부터 1023은 잘 알려진 포트로 예약되어 있음
- HTTP : 80, HTTPS : 443
- 잘 알려진 포트 외의 포트 번호는 동적 포트, 클라이언트와 서버 간의 임시 통신에 사용된다.
- 포트 번호는 IP 주소와 함께 사용되어 특정 서버 또는 프로세스에 접근할 때 사용된다.
'Node.js' 카테고리의 다른 글
Web Server & Web Application Server(WAS), Reverse Proxy (0) | 2024.05.01 |
---|---|
DATABASE 설계 & AWS RDS 설정 (0) | 2024.05.01 |
Server / 보안그룹, EC2 생성 & 탄력적 IP 설정하기 (0) | 2024.04.11 |
Server / VPC를 이용한 EC2 구축 실습 (0) | 2024.04.11 |
서버란 무엇인가 ( 소켓 & 멀티 프로세스) (0) | 2024.04.04 |