서버를 만든 후 이 서버를 네트워크에 연결해야한다. 이를 도와주는 것이 VPC 이다.
1. Amazon VPC ?
- 웹 서버, DB 서버와 같은 서버들은 네트워크에 연결되어야하고 AWS 서버인 EC2, RDS 등도 네트워크에 연결되어야 한다.
- 네트워크 구축을 위해 사용되는 것이 Amazon Virtual Private Cloud (VPC) 이며 AWS 계정 전용 가상 네트워크 서비스로 AWS 에서 제공하는 리소스만 설치 가능하다. 예를 들면 AWS EC2, RDS 는 VPC를 반드시 선택해야 한다.
- AWS는 VPC를 생성하고 그 안에 서버(인스턴스)를 설치한다.
- VPC의 기능
- CIDR 블록: 네트워크를 나눈 범위로 서브넷을 말한다.
- 서브넷 마스크: 네트워크의 크기를 계산하는 값
- 가용 영역: 서브넷이 구축된 물리적 장소
- 인터넷 게이트웨이: 인터넷에 접속하기 위한 출입구
- 라우팅: 어떤 데이터를 어디로 보낼지 조정한다. 가정에서의 공유기가 이 기능을 하며 AWS는 소프트웨어가 담당함
- 라우팅 테이블: 라우팅에 대한 설정이 기록된 테이블
- 보안 그룹: 인스턴스 단위로 설정하는 가상 방화벽.
- 네트워크 ACL: 서브넷 단위로 설정되는 가상 방화벽
- *VPC 네트워크는 일반 네트워크와 다른데 차이점은 라우터! VPC는 소프트웨어가 라우터 역할을 하며 라우팅을 수행한다. 라우팅은 설정된 라우팅 테이블에 따라 동자갛며 라우팅 테이블 하나에 서브넷 여러 개 설정 가능하다.
- EX) 물리 서버는 LAN케이블이나 WIFI로 라우터를 연결하지만 클라우드는 라우팅 테이블로 연결함
- VPC 네트워크의 특징
- 소프트웨어가 라우팅 함. 라우터는 IP 주소가 없음
- 라우팅 테이블 하나에 서브넷 여러 개 설정 가능
- VPC 한 개에 인터넷 게이트웨이는 한 개만 설정가능하고 IP주소 갖지 않음
- 서브넷 사이 통신은 라우터 없이 직접 통신할 수 있다. (일반적인 네트워크는 서브넷 사이 통신에 라우터가 필요)
2. VPC 사용절차
- 관리 콘솔에서 별도 설정을 해야하며. 서비스 설정은 CIDR 블록에 네트워크 범위를 설정한 후 서브넷을 나눈다.
- 서버(인스턴스)의 인터넷 연결 여부(인터넷 게이트웨이 설정)와 오토스케일링(서버가 자동으로 늘어나니 IP주소 많이 확보해야 함)이 중요
- 보안 그룹과 네트워크 ACL 을 설정하려면 인스턴스 용도에 맞는 포트를 설정하는 것도 고려해야하며 닫힌 포트가 기본 설정이라 사버 사용시 기본 설정 변경해야한다.
- VPC는 기본 서브넷과 보안 그룹도 제공하니 잘 모르면 기본 VPC이용할 것
- 사용 절차
- AWS 로그인 ->리전 선택 후 VPC대시보드에 접속
- VPC 생성 (VPC 이름, CIDR블록 설정, 하드웨어 점유여부(테넌시) 선택))
- 서브넷 설정(서브넷 이름, 대상 VPC, 가용 영역 , CIDR블록(서브넷))설정))
- 인터넷에 연결(인터넷 게이트웨이 생성하고 이것과 VPC연결. 라우팅 설정)
3.기본 VPC
- 네트워크 지식이 없어도 이용할 수 있도록 리전별로 기본 VPC를 제공하는데 특별한 설정없이 바로 사용 가능하다
- 기본VPC 구성
- 서브넷과 인터넷 게이트웨이로 구성
4. 서브넷과 DHCP
- VPC 사용시 서브넷에 대한 시직이 있어야 하며 AWS 서비넷은 물리적 위치와 관계가 있어 구조에 대해 잘 이해해야 한다.
- 서브넷: 커다란 네트워크를 작게 나눈 네트워크.
- 네트워크를 분할 해 직접 통신 가능한 범위를 좁히고, 방화벽 설정해 보안을 강화하는 것을 목적으로 한다. 서브넷은 물리적 장소를 특정한다.
- 사용자가 사용할 수 있는 네트워크 범위를 생성하고 그 아래 용도에 따라 서브넷(작은 네트워크) 생성한다. (서브넷 별로 공개, 비공개 설정이 가능)
- 네트워크의 범위와 CIDR 표기
- CIDR(Classless Inter-Domain Routing) : 네트워크와 서비넷의 범위를 나누는데 사용되는 표기법
- IP 주소의 수를 나타냄
- EX) /24 -> IP의 수는 256개 , /20 -> IP의 수는 4096개
- 네트워크 범위는 범위 안에서 가장 첫 번째 IP 주소와 CIDR 순으로 표기
- EX) 172.31.0.0/16 -> 범위 내 가장 첫번째 IP 주소 / CIDR(IP주소의 수)
- 네트워크 클래스
- 네트워크는 규모에 따라 A,B,C 클래스가 있다.
- A클래스 /8 ~/15
- B클래스 /16~/23
- C클래스 /24 ~ /32
- 기본 VPC는 /16 B클래스에 설정되어 있으며 이를 /20으로 분할한 서브넷이 각 가용 영역에 구성되어 있다.
- IP주소 할당과 DHCP
- 네트워크 및 서브넷에 사용되는 IP주소의 범위는 관리자가 설정할 수 있고 DHCP에서 각 호스트(인스턴스)에 IP주소를 자동으로 할당. VPC에는 DHCP 서버가 동작해 인스터스가 추가되면 해당 서브넷 범위의 IP중 하나 할당 됨. VPC가 사용하는 IP주소는 사설 IP주소.
5. 라우팅과 NAT (공인 IP주소와 사설 IP 주소 변환)
네트워크 간 데이터를 주고 받기 위해서는 라우팅 또는 NAT(Network Address Translation) 방식(네트워크 주소 변환) 사용해야 한다.
- 네트워크와 라우팅
- PC 를 연결하기 위해서는 LAN, WAN, 인터넷으로 연결해 라우터를 통해 데이터를 주고받는다.
- 라우팅 : 데이터를 라우터로 보내고 라우터가 목적지로 보내는 방식
- IP주소와 게이트웨이
- 목적지에 데이터를 보낼 떄 목적지 IP주소를 지정 -> 데이터를 라우터로 전송 -> 라우터는 자신의 네트워크 내에 목적지 있는지 확인 후 있으면 목적지로 전달, 없으면 다른 라우터로 전송
- 라우터는 목적지로 가장 빠르게 전송할 수 있는 경로 정보가 설정되어 있음
- 게이트웨이: LAN 내부의 출입구
- IP 마스커레이드(IP masquerade) (Network Address Port Translation)
- LAN환경에서 게이트웨이가 사설 IP주소를 공인 IP주소로 변환하고 회사 내 공인 IP주소를 공동으로 사용할 때 주소 변환을 담당
- 내부에서 외부로 나가는 것은 가능하지만 외부에서 내부로 들어오는 것은 불가능.
- 일 대 다
- 포트 변환 가능
- NAT
- 다 대 다
- 공인 IP주소와 사설 IP주소를 변환
- LAN 환경에서 양방향으로 통신할 수 있도록 설정
- 서버가 여러 대이면 공인 IP 주소를 여러 개 설정
- 포트 변환 불가
6. 인터넷 게이트웨이와 NAT 게이트웨이
라우터는 데이터를 주고 받는데 AWS는 소프트웨어적으로 라우팅을 수행하며 라우팅 테이블에 따라 수행된다.
- 인터넷 게이트웨이
- 인터넷 연결을 담당
- 사용자가 인터넷을 통해 접속 요청을 보냄 -> 요청은 DNS로 변환되어 목적지 공인IP 주소로 전달 ->
- NAT 게이트웨이
- 회사 내무 서버에서만 인터넷을 연결할 때 사용
- 서브넷에서 인터넷으로 접속 가능하지만 인터넷에서 서브넷으로 접속 불가능
7. 보안 그룹과 네트워크 ACL
보안 그룹과 네트워크 ACL은 가상 방화벽을 제공 , 사용하는 범위와 규칙의 적용 순서가 다르다.
인바운드 트래픽(데이터 유입), 아웃바운드 트래픽(데이터 유출)을 제어하며 반드시 양쪽 모두 설정해야한다.
보안그룹 | 네트워크 ACL | |
설정범위 | 인스턴스에 대해 설정(보안 그룹 최대 5개 할당) | 서브넷에 설정(개별 인스턴스에 설정할 필요가 없음) |
규칙 | 규칙 허용만 가능 | 규칙 허용, 거부 가능 |
설정 | stateful (규칙과 상관없이 반환된 트래픽을 자동으로 허용) | stateless(반환된 트래픽을 규칙에 따라 명시적으로 허용) |
규칙의 적용 순서 | 모든 규칙 확인해 트래픽의 허가 여부 결정 | 순서대로 규칙 처리하면서 트래픽 허가 여부 결정 |
인바운드 및 아웃바운드 설정과 잘 알려진 포트
트래픽은 인바운드, 아웃바운드에 대해 포트 단위로 허가 여부를 설정한다.
포트: 통신의 입구.
주요 포트
포트 번호 | 서비스 | 내용 |
25 | SMTP | 메일 송신 |
110 | POP3 | 메일 수신 |
143 | IMAP4 | 메일 수신 |
80 | HTTP | 웹 송수신 |
443 | HTTPS | 웹 송수신 |
22 | SSH | SSH 통신 |
1433 | SQL Server | 데이터베이스 통신 |
1521 | Oracle Database | 데이터베이스 통신 |
3306 | MySQL | 데이터베이스 통신 |
5432 | PostgreSQL | 데이터베이스 통신 |
5439 | Redshift | 데이터 웨어하우스 통신 |
20 / 21 | FTP | 파일 전송 통신(AWS 사용 잘 안함) |
53 | DNS | 도메인 관리 통신(AWS 사용 잘 안함) |
3389 | RDP | 원격 데스크톱 통신 |
32768~65535 | AWS 는 아웃바운드 지원 |
8. VPC 엔드포인트
- VPC 엔드포인트?
- VPC와 VPC를 사용하지 않는 서비스(EX. S3, DynamoDB)를 직접 연결 가능하도록 하는 서비스
- EX) VPC - S3
- 인터페이스 엔드포인트와 게이트웨이 엔드포인트
- 인터페이스 엔드포인트 : 네트워크 인터페이스로 구축하는 유형
- 게이트웨이 엔드포인트 : 라우팅 테이블에 설정된 내용을 라우팅하는 유형
- 요금
- 엔드포인트의 요금은 무료인데 인터페이스 엔드포인트는 PrivateLink 사용하기 때문에 이에 대한 요금이 부과된다.
9. VPC 연결
- VPC 와 다른 네트워크 연결 방법
- VPC peering
- 전송게이트 사용
- VPN 연결
- AWS Direct Connect 사용
- VPC 연결
- VPC - VPC 연결 / VPC - 다른 네트워크 연결 / 회사 내 VPC 끼리 연결 / 회사 VPC - 다른 회사 VPC 연결 가능한데 VPC끼리 연결시 VPC 피어링 기능 활성화 해야 함
- 전용선과 가상 사설망
- 전용선 : KT 같은 통신 사업자가 직접 연결 가능한 전용선을 임대하여 구축.
- 비용이 비싸지만 안전성 및 신뢰성이 높음
- 가상 사설망 : 보유 회선 및 공용 회선 사용해 거점끼리 통신을 암호화해 연결
- 비용은 싸지만 신뢰성이 낮음
- 인터넷 VPN : 인터넷을 사용해 구축
- 인터넷 회선만 사용해 공사는 불필요하며 VPN 지원하는 라우터만 설치하면 이용 가능함
- 전용선 : KT 같은 통신 사업자가 직접 연결 가능한 전용선을 임대하여 구축.
- AWS Direct Connect
- VPC 나 AWS 서비스와 다른 네트워크를 전용선으로 연결하는 서비스
- AWS VPN
- 인터넷 VPN 사용해 다른 네트워크와 연결하는 방법
- 회사 내 VPN 지원하는 라우터가 설치되어 있어야 사용 가능
- 전송 게이트웨이
- VPC나 온프레미스 네트워크를 하나로 붂어 서로 연결하는 접속점을 제공하는 서비스
'일기장' 카테고리의 다른 글
DNS 용어와 컨테이너 용어 (0) | 2023.08.17 |
---|---|
AWS RDS 데이터베이스 서비스 (0) | 2023.08.17 |
5. Amazon S3 스토리지 서비스 (0) | 2023.08.04 |
문자열 겹쳐쓰기 (0) | 2023.08.02 |
홀짝 구분하기 (0) | 2023.08.02 |