AWS구조와 서비스 책을 읽고 정리해본 내용이다. 5장에서는 VPC와 관련된 네트워크 서비스에 대해 설명하고 있다. 내용이 많아 2개의 Part로 나눠 정리하겠다.
IP주소
:웹 서버에 접근하기 위해 웹서버가 그곳에 있다는 특정 정보
-> 웹 서버뿐만 아니라 pc, 스마트폰 등 네트워크가 연결된 모든 장치에는 IP주소가 할당된다. 일반적으로 IPv4가 표준으로 사용된다. (IPv6도 존재.)
IP주소는 두 가지로 구분된다.
퍼블릭 IP주소
: 한국 또는 전 세계에서 '이 주소는 인터넷에서 이곳'이라고 특정할 수 있는 주소.
프라이빗 IP주소
: 닫힌 네트워크내에서만 식별할 수 있는 IP주소. (사설 IP라고도 함)
-> 프라이빗 IP주소로 사용 할 수 있는 범위는 다음과 같다
10.0.0.0 ~ 10.255.255.255(10.0.0/8)
172.16.0.0 ~ 172.31.255.255(172.13.0.0/12)
192.168.0.0 ~ 192.168.255.255(192.168.0.0/16)
위의 주소를 제외한 나머지 주소는 퍼블릭 IP주소이다.
CIDR 블록
: IP주소를 이용해 네트워크 범위를 정의하는 것
IP 주소를 나타내는 숫자열을 크게 네트워크부분과 호스트부분으로 나뉜다.
172.31.0.0(호스트 부분이 모두 0인 주소)은 네트워크 주소, 172.31.255.255(호스트 부분이 모두 1인 주소)는 브로드캐스트 주소 라는 특별한 주소로, 할당이 불가능한 주소이다.
모든 네트워크에는 네트워크 주소와 브로드 캐스트 주소가 있으므로 할당 할 수 있는 주소 수는 '네트워크 총 주소 수 - 2'개다.
방화벽
: 보안 위협으로부터 시스템을 지키기 위해 사용하는 것.
-> AWS에서는 보안 그룹이나 네트워크 ACL같은 방화벽 기능을 가진 서비스가 있다.
시스템을 사용하는 사용자가 많아질수록 서버의 부담이 커지기 때문에 부하분산을 고려해야 한다.
서버가 느려지거나 멈추는 상황을 막기 위해 서버를 여러 대 구성하여 각 서버가 처리를 나워서 할 수 있게 구축을 해야하는데 부하를 분산시키기 위해 일반적으로 로드 밸런서(Load Balancer)라는 장치를 사용한다.
웹 서버를 이중화하여 '로드밸런서'를 이용하면 서버 한대가 정지된 경우에도 다른 서버가 계속 실행되므로 시스템 전체적으로는 문제없이 서비스를 제공 할 수있다.
라우팅
: 라우터가 IP주소까지 경로는 결정하는 것
라우팅 테이블
: 경로의 정보 (AWS의 Amazon VPC의 라우팅 테이블 기능이 존재한다.)
Amazon Virtual Private Cloud (VPC)
: AWS에서 생성할 수 있는 프라이빗 가상 네트워크 공간이다. 이 네트워크에 EC2와 같은 AWS자원을 배치해 이용한다.
• VPC를 만들 때 CIDR블록(IP주소 범위)을 지정하고 지정한 CIDR블록 네트워크를 확보한다.
• VPC는 일반적으로 프라이빗 IP주소를 사용한다.
• 접속할 네트워크와 VPC의 CIDR블록이 중복되지 않게 주의한다.
• 호스트의 주소는 여유를 갖도록 가능한 한 많이 확보해 두는 것이 좋다.
VPC는 관리콘솔을 통해 생성할 수 있는데 화면에서 4가지 항목을 설정해야 한다.
✏️ VPC만으로는 EC2와 같은 자원을 네트워크에 만들 수 없기 때문에 VPC안에 더 작은 네트워크 단위인 서브넷을 만들어야 한다.
" 서브넷은 하나의 AZ에 속해야 한다. "
- 여러 AZ에 자원을 배치해 가용성을 높이려면 서브넷도 여러 개 만들어야 한다.
라우팅 테이블
: 네트워크의 경로 정보.
인터넷 게이트웨이
: 서브넷 안에 있는 EC2와 같은 자원이 인터넷과 통신 할 수 있게 하기 위한 기능. 인터넷 게이트웨이를 생성하고 서브넷의 라우팅 테이블에 설정하면 인터넷과 VPC가 서로 통신할 수 있게된다.
NAT 게이트웨이
: 프라이빗 서브넷에 있는 EC2와 같은 자원은 일반적으로 인터넷과 통신할 수 없는데 인터넷과 통신을 해야하는 경우 사용하는 것이다.
VPC에는 서브넷 단위로 접근 제어를 설정할 수 있는 네트워크 접근 제어 목록(네트워크 ACL)이라는 기능이 있다. 이 기능은 보안그룹과 조합해 접근 제어 설정이 가능한데 보안그룹과의 차이는 다음과 같다.
네트워크 ACL | 보안그룹 | |
---|---|---|
설정단위 | 서브넷 단위로 설정 | 인스턴스(자원) 단위로 설정 |
허용/거부 설정 | 허용 및 거부 설정 가능 | 허용만 설정 가능 (허용하지 않은 모든 것은 거부) |
상태 저장 여부 | 상태 비저장(stateless), 단일 패킷만 확인하므로 정보를 저장하지 않음 | 상태저장(stateful), 패킷과 관련된 세션까지 확인하므로 정보를 저장 |
규칙 우선 순위 | 등록된 규칙의 번호순로 트래픽 허용 및 거부 | 등록된 모든 규칙을 평가해 트래픽 허용 |
VPC피어링
: 서로 다른 두 개의 VPC를 연결해 통신 할 수 있다. 피어링은 두 개의 VPC간에 수행되기 때문에 세 개의 VPC가 서로 통신하는 경우 각 VPC끼리 따로 피어링을 구성해야한다.
AWS Transit Gateway
: VPC 연결을 하나의 중앙 허브에서 관리할 수 있다. VPN과 같이 온프레미스 환경과의 연결에도 사용할 수 있으므로 AWS네트워크 연결을 중앙에서 관리 할 수 있다. (많은 VPC를 사용해야한다면 사용하는 것이 좋다.)
VPC 엔드포인트
: 프라이빗 네트워크로 통신하게 할 수있는 기능. VPC엔드포인트를 설정한 VPC는 VPC엔드포인트를 통해 S3과 같은 다른 AWS서비스에 직접 접근 할 수 있다.
게이트웨이 엔드포인트
: S3나 DynamoDB에서 사용하는 VPC 엔드포인트를 말하며 AWS서비스와의 통신은 퍼블릭 IP를 이용한다.
인터페이스 엔드포인트
: AWS PrivateLink라는 기능 사용해 서브넷에 서비스 접속용 ENI(네트워크 인터페이스)를 생성해 프라이빗 IP로 통신한다.
AWS Site-to-Site VPN
: 온프레미스 환경의 네트워크와 VPC를 VPN으로 연결하는 기능이다. VPN에 접속하면 외부 네트워크와 프라이빗 IP 주소로 통신할 수 있다.
AWS Client VPN
: 온프레미스 환경의 단말(PC)와 VPN을 연결하는 기능. 온프레미스 환경 전체가 아니라 특정 단말과 비공개로 연결하고 싶은 경우
AWS Direct Connect
: 전용선으로 연결하는 기능