woduf1020.log
로그인
woduf1020.log
로그인
AWS 스터디 - VPC
전재열
·
2024년 11월 28일
팔로우
0
aws
vpc
AWS SAA
목록 보기
10/11
사설망
한정된 IP주소를 최대한 활용하기 위해 IP주소를 분할하고자 만든 개념
IPv4기준으로 최대 IP갯수는 43억개
43억개의 주소는 너무 부족하다 > 사설망을 사용
사설망
사설망 내부에는 외부 인터넷 망으로 통신이 불가능한 사설 IP로 구성
외부로 통신할 때는 통신 가능한 공인 IP로 나누어 사용
보통 하나의 망에는 사설 IP를 부여받은 기기들과 NAT 기능을 갖춘 Gatewat로 구성
NAT(Network Address Translation)
사설 IP가 공용 IP로 통신 할 수 있도록 주소를 변환해 주는 방법
3가지 종류
Dynamic NAT : 1개의 사설 IP를 가용 가능한 공인 IP로 연결
공인 IP 그룹에서 현재 사용 가능한 IP를 가져와서 연결
Static NAT : 하나의 사설 IP를 고정된 하나의 공인 IP로 연결
AWS Internet Gateway가 사용하는 방식
PAT(Port Address Translation): 많은 사설 IP를 하나의 공인 IP로 연결
NAT Gateway/NAT Instance가 사용하는 방식
Dynamic NAT
각각의 사설 IP를 NAT Pool에서 가용 가능한 IP를 사용해 연결
공인 IP가 계속 변할 수 있다
Static NAT
사설망에 사용하는 기기수 만큼 공인IP가 필요
PAT
하나의 공인IP를 여러개의 사설IP가 사용
PORT 번호를 통해 중계
SRC port : 네트워크 통신에서 클라이언트가 사용하는 임시 포트
사설IP의 대역폭
Classless Inter Domain Routing(CIDR)
CIDR은 주소의 영역을 여러 네트워크 영역으로 나누기 위해 IP를 묶는 방식
여러 개의 사설망을 구축하기 위해 망을 나누는 방법
CIDR Notation
IP 주소의 집합
네트워크 주소와 호스트 주소로 구성
각 호스트 주소 숫자 만큼의 아이피를 가진 네트워크 망 형성 가능
A.B.C.D/E 형식
A,B,C,D : 네트워크 주소+호스트 주소 표시
E : 네트워크 주소가 몇 bit인지 표시
CIDR Block
호스트 주소 비트만큼 IP 주소를 보유 가능
ex) 203.0.113.0/27 CIDR 블록의 의미를 설명해주세요
cidr.xyz
서브넷
네트워크 안의 네트워크
큰 네트워크를 잘게 쪼갠 단위
일정 IP주소의 범위를 보유
큰 네트워크에 부여된 IP범위를 조금씩 잘라 작은 단위로 나눈 후 각 서브넷에 할당
VPC
가상으로 존재하는 데이터센터
원하는 대로 사설망 구축 가능
부여된 IP 대역을 분할하여 사용 가능
리전 단위
EC2, RDS, Lambda 등의 컴퓨팅 서비스 실행
보안 설정
VPC 구성 요소
서브넷
인터넷 게이트웨이
NACL/보안그룹
라우트 테이블
NAT Instance/ NAT Gateway
Bastion Host
VPC Endpoint
서브넷
VPC의 하위 단위로 VPC에 할당된 IP를 더 작은 단위로 분할한 개념
하나의 서브넷은 하나의 가용영역 안에 위치
CIDR block range로 IP주소 지정
IPv4의 경우 최소 /28 CIDR 이상 ~ 최대 /16
AWS IPv4서브넷은 최소한 몇개의 IP를 보유해야 하는가?
IPv6의 경우 /44~/64
AWS 서브넷의 IP 갯수
AWS의 사용 가능 IP숫자는 5개를 제외하고 계산
ex) 10.0.0.0/24
10.0.0.0 : 네트워크 어드레스
10.0.0.1 : VPC Router
10.0.0.2 : DNS Server
10.0.0.3 : 미래에 사용을 위해 남겨 둠
10.0.0.255(마지막번호) : 네트워크 브로드캐스트 어드레스
즉, 총 사용 가능한 IP 갯수는 2^8-5=251
VPC Router
VPC에 있는 가상의 라우터로 서브넷에서 오고가는 트래픽을 라우팅
즉, 모든 서브넷의 트래픽은 VPC 라우터를 거쳐서 목적지에 도달
VPC 생성시 자동으로 생성되며 별도로 관리할 필요가 없음
별도의 설정은 불가능하며, Routing Table 설정 가능
라우트 테이블
VPC라우터에서 트래픽이 어디로 가야 할지 알려주는 이정표
VPC 생성시 기본으로 하나 제공
구성 요소
Destination : 트래픽이 가고자 하는 주소
Target : 트래픽을 실제로 보내줄 대상
- 논리적 리소스의 아이디로 표현
서브넷의 종류
퍼블릭 서브넷 : 외부에서 인터넷을 통해 연결할 수 있는 서브넷
인터넷 게이트웨이를 통해 외부의 인터넷과 연결되어 있음
안에 위치한 인스턴스에 퍼블릭 IP부여 가능
웹서버, 어플리케이션 서버 등 유저에게 노출되어야 하는 인프라
프라이빗 서브넷 : 외부에서 인터넷을 통해 연결할 수 없는 서브넷
외부 인터넷으로 경로가 없음
퍼블릭 IP 부여 불가능
데이터베이스, 로직 서버 등 외부에 노출 될 필요가 없는 인프라
인터넷 게이트웨이
VPC가 외부의 인터넷과 통신할 수 있도록 경로를 만들어주는 리소스
기본적으로 확장성과 고가용성이 확보되어 있음
IPv4, IPv6 지원
Route Table에서 경로 설정 후에 접근 가능
무료
기본 VPC와 커스텀 VPC
기본 VPC
AWS 계정 생성시 자동으로 생성되어 있음
기본적으로 각 가용영역마다 서브넷을 생성
모든 서브넷에 인터넷 접근이 가능함(= 퍼블릭 서브넷)
커스텀 VPC
직접 생성
기본적으로 인터넷에 연결되어 있지 않음
인터넷 게이트웨이와 라우팅 설정 없이 퍼블릭 서브넷 생성 불가능
즉 별도의 조치 없이 인터넷으로 연결 가능한 EC2 생성 불가능
NAT Gateway
프라이빗 서브넷의 리소스가 외부의 인터넷과 통신하기 위한 통로
NAT Instance는 단일 EC2 인스턴스 / NAT Gateway는 AWS에서 제공하는 서비스
NAT Gateway는 고가용성이 확보된 관리형 서비스
NAT Gateway/Instance는 모두 서브넷 단위
Public Subnet에 있어야 함
고가용성 확보를 위해서는 두 개 이상의 가용영역 필요
비용 발생 : $0.059/시간, $0.045/1GB 트래픽 처리
위 다이어그램에서 잘못된 점이 무엇일까요?
Bastion Host
프라이빗 서브넷 안의 리소스에 접근하기 위한 EC2 인스턴스
퍼블릭 서브넷에 위치해야 함
보안 그룹
Network Access Control List(NACL)와 함께 방화벽의 역할을 하는 서비스
Port 허용
기본적으로 모든 포트는 비활성화
선택적으로 트래픽이 지나갈 수 있는 Port와 Source를 설정 가능
Deny는 불가능 -> NACL로는 가능
인스턴스 단위
하나의 인스턴스에 하나 이상의 보안그룹 설정 가능
설정된 인스턴스는 설정한 모든 보안그룹의 룰을 적용 받음
NACL의 경우 서브넷 단위
기본적으로 VPC 단위 : VPC 안에서 생성하고 관리
단 VPC간 보안그룹 공유 기능으로 여러 VPC에서 사용 가능
Stateful
보안그룹은 stateful
Inbound로 들어온 트래픽이 별 다른 Outbound설정 없이 나갈 수 있음
NACL은 stateless
Ephemeral Port : 클라이언트가 네트워크 통신 시 동적으로 할당하는 임시 포트
Well-Known Port : 특정 서비스나 어플리케이션에 고정된 포트 번호
접두사 목록
하나 이상의 CIDR블록의 집합
보안 그룹 혹은 Route Table에서 많은 대상을 참조하기 위해 사용
두 가지 종류
고객 관리형 : 직접 IP주소를 생성/수정/삭제 할 수 있으며 다른 계정과도 공유 가능
AWS 관리형 : AWS의 서비스들을 위한 IP목록. 수정, 삭제, 업데이트가 불가능함
DynamoDB, S3, CloudFront
IPv4, IPv6 둘 다 사용가능, 단 한 접두사 목록에 두 가지 타입을 동시에 사용 불가능
생성 시점에 최대 엔트리 숫자를 지정
네트워크 ACL(NACL)
보안 그룹처럼 방화벽 역할을 담당
서브넷 단위
즉, 인스턴스 단위로 제어 불가능
다양한 서브넷에 연동 가능(1:N)
포트 및 아이피를 직접 Deny 가능
외부 공격을 받는 상황 등 특정 아이피를 블록하고 싶을 때 사용
Stateless
들어오는 트래픽과 나가는 트래픽을 구분하지 않음
즉, 일반적으로 Outbound에 Ephemeral Port 범위를 열어 주어야 정상적으로 통신 가능
NACL 규칙
규칙 번호 : 규칙에 부여되는 고유 숫자이며 규칙이 평가되는 순서 (낮은 번호 부터)
AWS 추천은 100단위 증가
유형 : 트래픽 유형(예: ssh=22, DNS=53, UDP=17 등)
프로토콜 : 통신 프로토콜
포트 범위 : 허용 혹은 거부할 포트 범위
소스 : IP 주소의 CIDR블록
허용/거부 : 허용 혹은 거부 여부
위 사진에서 112.12.35.4 사용자의 접속을 제한하고 싶다, 어떤 조치를 취하면 될까
NACL 고려할 점
stateless 방화벽이기 때문에 원활한 통신을 위해서는 outbound도 신경을 써야함
임시포트 Allow
Linux : 32768~61000
서브넷에서 나가거나 들어오는 트래픽에만 적용
즉 서브넷 내부의 트래픽에 대해서는 적용되지 않음
다양한 서브넷으로 구성 되어있는 멀티 티어 아키텍처라면 더 많은 고민이 필요함
따라서 가능한 보안그룹으로 먼저 처리 후 꼭 필요할 때 NACL 활용
하나의 서브넷은 하나의 NACL만 연동 가능, 단 하나의 NACL은 여러 서브넷에 연동 가능
VPC Endpoint
AWS 서비스와 연결 하려면 외부 인터넷을 거쳐야 한다
VPC Endpoint는 외부 인터넷을 거치지 않고 AWS 서비스에 연결시켜주는 리소스
Interface Endpoint : ENI(Elastic Network Interface) 기반
Private IP를 만들어 서비스로 연결
많은 서비스들을 지원
서브넷 지정 필요
Gateway Endpoint : 라우팅 테이블에서 경로의 대상으로 지정하여 사용
S3 및 DynamoDB 만 지원
정책 적용 가능(보안그룹X)
상시 비용 발생
VPC Peering
두 개의 다른 VPC를 연결하여 VPC안의 리소스끼리 통신이 가능하도록 설정하는 것
다른 리전, 다른 계정의 VPC끼리 연결 가능
CIDR Range 중첩 불가능
Transitive Peering 불가능
통신을 위해서는 직접 연결되어 있어야 함
혹은 Transit Gate 사용
AWS VPN
Site-to-Site VPN
데이터센터와 AWS를 연결하는 하드웨어-하드웨어 연결(1:1연결)
IPSec프로토콜 사용
Client VPN
AWS와 온프레미스/AWS VPN장비와 사용자의 PC를 연결하는 하드웨어-소프트웨어 연결(1:N)
PC가 네트워크 내부에 있는 것 처럼 작동
TLS 프로토콜 사용
AWS Direct Connect
AWS와 온프레이스간에 DX Location을 경유한 전용선을 통해 연결
외부 인터넷과 분리되어 있음
외부에서 접근이 불가능하기 때문에 높은 보안
인터넷 환경에 상관 없이 일정한 속도 보장
Direct Connect gateway : 여러 리전의 VPC를 한번에 Direct Connect로 연결할 수 있는 서비스
성능 좋고 빠른 대신 비싸고 설치에 오래 걸림
AWS Transit Gateway
중앙 허브를 통해 VPC들과 온프레미스 네트워크를 연결하는 서비스
복잡한 Peering 관계를 제거하여 간소화
온프레미스에서 Amazon EFS 접근
VPC 설계시 고려할 점
VPC간의 IP Range
VPC간 Peering을 위해서는 서로 IP Range가 겹치지 않아야 함
고가용성을 위한 서브넷 및 어플리케이션 티어
고가용성
적어도 3개 이상의 가용영역에 분산 필요 + 추가 가용영역
어플리케이션 티어
보통 3Tier 아키텍처가 기본 + 추가로 예비 티어
서브넷 단위는
/20
or /24
/20 : 많은 IP 숫자
/24 : 알아보기 쉬움
어디서 부터 시작해야 할지 모를때는 IP 레인지를 서브넷별로 나누는것을 추천
전재열
재열이
팔로우
이전 포스트
AWS 스터디 - EC2
다음 포스트
AWS 스터디 - RDS
0개의 댓글
댓글 작성