VPC 개요
CIDR(Classless Inter-Domain Routing)
- IP 주소 범위를 정의하는 방식
- IP 주소를 작은 그룹으로 분할 하는것으로 서브네팅이라고함
- 예) 192.168.32.1/24
- 192.168.32.1 은 기준 IP, /24는 서브넷 마스크
- 192.168.32.1의 IP 대역을 24비트로 나눈것
- 256개의 IP를 사용가능 (192.168.32.0 ~ 192.168.32.255)
VPC (Virtual Private Cloud)
- AWS의 가상네트워크 로 기본 VPC는 인터넷과 연결이 되어 있고 EC2 인스턴스를 생성하면 기본 VPC에 연결
- s3 ,dynamodb 같은 것들은 public 에 위치해서 바깥의 인터넷과 연결되어 있다.
private에 있는 EC2들은 바로 접속할 수 없다 (기본 VPC는).
internet gateway를 거쳐서 나가 접속이 가능하다. - routing table을 통해서 각 AZ의 EC2끼리 소통이 가능하다.
Custom VPC 생성
- 10.1.0.0/16 VPC를 먼저 생성한다.
- 기본 라우팅 테이블 , 기본네트워크 ACL이 생성된다.
- public subnet, private subnet을 생성한다.
- 서브넷 생성시 가용영역을 지정하며 1개의 가용영역만 지정가능
- 생성된 서브넷의 IPv4 CIDR 블록 주소는 추가하거나 수정이 안되며 삭제후 새로 생성만 가능
- 서브넷 생성후 AWS는 네트워킹 목적으로 처음 4개의 ip주소와 마지막 1개 ip주소를 예약
- 0 = network id (netmask)
- 1 = gateway
- 2 = dns
- 3 = reserved
- 255 = broadcast
- 라우팅 테이블을 거쳐서 어느 목적지로 갈건지 결정해준다.
- VPC 대역안의 모든 ip들은 라우팅 테이블을 통해 서로다른 AZ에서도 통신이 가능하다.
- public subnet용 routing table, private subnet용 routing table을 각각 만들어준다.
- Routing table에 InterGateway 를 추가하여 VPC 대역 내의 다른 ip주소로 가자고 하면 IGW로 보내게 된다.
- 0.0.0.0/0 은 모든 ip주소를 의미한다.
- private subnet에 연결된 routing table의 경우 IGW가 없어서 외부 통신이 불가능하다.
EC2 생성할 때 VPC는 custom vpc로 동일하게 하고 subnet을 각각 다르게 public , private subnet으로 설정을 한다.
Network Access Control List(NACL) & Security Groups
- Security Group은 개별 instance에 대한 방화벽 이었다면 NACL은 각 서브넷에 대한 방화벽이다.
- 보안그룹은 허용 규칙만 지정하고 거부 규칙은 지정할 수 없음
또한 상태 저장 방화벽으로서 나가는 것을 허용한 트래픽에 대해서는 들어올 때 또다시 검사를 하지 않음 - 보안그룹은 생성된 VPC내에서만 사용이 가능하다.
- NACL은 상태 비저장 방화벽으로 연결상태를 추적하지 않는다.
- 인바운드 트래픽에 대한 응답은 아웃 바운드 트래픽 규칙을 따르고
아웃바운드 트래픽에 대한 응답은 인바운드 트래픽 규칙을 따른다. - EC2 웹서버 운영시 외부에서 Client가 접속 후 리턴 트래픽을 받을 때 NAT를 사용하므로 임시포트 (ephemeral ports) 1024 - 65535를 사용
- default로 NACL의 아웃바운드 트래픽은 모든 포트가 허용으로 되어있다.
- 가장 낮은 번호가 지정된 규칙부터 시자해서 트래픽이 내부 또는 외부로 전달되도록 허용되는지 결정
- 번호가 가장 낮은 규칙부터 평가됨
- 예) 90번이 먼저 적용되서 80은 허용 , 100번에서 80을 제외한 모든 트래픽이 거부가된다.
NAT Instance and NAT Gateway
ec2 instance를 만들 때 private subnet과 연결된 녀석은 만들 때 퍼블릭 IP 자동할당을 비활성화하여 public ip가 따로 없다.
그래서 A zone의 ec2에서 B 존 의 ec2에는 접근이 가능하지만 (vice versa) B존의 ec2 인스턴스는 밖에서 접근이 불가능하다.
또한 B존에서 Outbound traffic으로 인터넷에 접근하려 해도 라우팅 테이블에 IGW가 없어서 밖으로 나가지 못한다.
NAT Instance
- EC2 인스턴에 NAT 기능을 설치하는 방법이다. B존에서 출발한 트래픽이 public ip를 가진 NAT instance를 통과해서 인터넷으로 뿌린다.
- 많은 트래픽이 발생해 NAT 요청이 많으면 EC2 자원을 많이 사용하게 됨 , 즉 ec2 유형에 따라 처리량이 다름
- EC2 인스턴스이니까 NAT Gateway에 비해 더많은 기능을 구현 할 수 있고 Security Group 적용가능
NAT Gateway
- 비슷한데 EC2에 따로 구성하는것이 아니라 AWS에서 제공하고 관리하는 GW 서비스를 사용한다.
- ec2가 아니니까 Port forwarding 등의 사용자가 추가기능을 구현할 수없음, security group 적용 불가
- gw 생성시 Elastic IP를 지정해서 public ip 로 사용되게끔 한다.
VPC Peering
- VPC 간에는 기본적으로 네트워크 통신이 되지 않음
- VPC피어링은 두 VPC간에 트래픽을 라우팅 할 수 있도록 하기 위한 두 VPC 사이의 네트워킹 연결
- VPC 피어링 트래픽은 퍼블릭 인터넷을 통과하지 않고 프라이빗 IP 주소를 사용하여 서로 통신
- VPC 피어링은 같은 리전 내에, 다른 리전 간, 다른 AWS 계정간 가능
- 요청자가 다른 VPC와 피어링하기 위한 요청을 생성
- 수락자 VPC의 소유자가 VPC 요청을 수락하여 피어링을 활성화
- 라우팅 테이블에 피어링 연결을 추가
AWS PrivateLink
AWS PriavteLink (private 연결 기술)
- VPC 와 서비스간에 프라이빗 연결을 제공하는 기술
VPC 엔드포인트
- 인터넷을 통하지 않고 AWS 서비스에 프라이빗하게 연결할 수 있는 VPC 의 진입점
- 게이트웨이 엔드포인트 , 인터페이스 엔드포인트 , Gateway Load Balancer 엔드포인트
엔드포인트 서비스 (AWS PrivateLink , priavte link를 가능하게 해주는 서비스 이름 )
- VPC 내에 있는 앱 또는 서비스
- 다른 AWS 계정의 VPC Endpoint에서 엔드포인트 서비스(AWS PrivateLink)로 연결
VPC Endpoints - Gateway Endpoints
public aws service(S3) 에 접근하기 위해 routing table에 internet gateway 를 거쳐서 인터넷을 거쳐 s3에 접근한다.
- routing table에 예를 들어 s3 에접근하고자 하는 녀석들을 모두 VPC endpoint로 보내게 추가하게되면 인터넷을 들리지 않고 priavte하게 연결을 진행할 수 있다.
- VPC endpoint를 통해서 다른 VPC랑은 통신할 수 없다. aws public service와 만 통신이 가능하다.
VPC Endpoints - Interface Endpoints
- 서브넷의 IP 주소 범위에서 프라이빗 IP주소를 사용하는 탄력적 네트워크 인터페이스
- 지원되는 AWS 서비스 또는 VPC 엔드포인트 서비스로 전달되는 트래픽에 대한 진입점 역할
- 엔드포인트는 동일한 리전에서만 지원, VPC와 다른 리전의 서비스간에 엔드포인트를 생성할 수 없음
- Endpoint 생성이후에는 VPC와 연결된 서비스를 변경할 수 없다
VPC Endpoint Service (AWS Private Link)
- vendor (service provider) 는 VPC에 앱을 구성하고 VPC Endpoint 서비스를 구성
- 하나 또는 여러 고객(Customer) AWS 계정의 VPC Endpoint가 vendor aws 계정의 NLB 또는 GWLB에 연결
- 인터넷을 통하지 않고 AWS 내부 네트워크를 통한 트래픽
- 엔드포인트 서비스 연결시 고객과 벤더의 AWS의 리전이 같아야함
VPN & Direct Connect
VPN 개요
- 인터넷을 이용해 가상 사설망(Virutal Private Network)을 구성하는 것
- VPN 트래픽은 VPN 프로토콜로 보호 됨
- IPSec : Site to Site VPN 암호화 프로토콜
AWS VPN 연결 옵션 - Client VPN
- AWS 리소스와 클라이언트 PC와 연결하는 OpenVPN 기반의 VPN 서비스
- Active Directory 등의 자격증명을 이용해 클라이언트가 VPN에 사용하는 권한을 부여
- 클라이어트는 VPN 접속을 위한 VPN 구성 파일이 담긴 소프트웨어를 설치
AWS Site-to-Site VPN (AWS Managed VPN)
- IPSec 암호화 프로토콜을 사용하여 AWS VPC와 온 프레미스간에 프라이빗 네트워크를 구성
- VPC와 연결을 위한 Virtual Private Gateway 및 온-프레미스의 Customer Gateway Device의 정보를 구성하기 위한 Customer Gateway를 설정하여 VPN Tunnel 연결을 만듬
- AWS Direct Connect의 백업으로 사용 가능
- VPN 터널당 최대 대역폭은 1.25Gbps
CGDRouter는 고객것이다. Customer gw는 실제 물리적인 gw가 아니라 aws 에서 CGD Router의 정보를 들고 있는것이다.
Direct Connect
- AWS와 온프레미스 간에 DX(Direct Connect) Location 을 통한 전용선을 통해 프라이빗 네트워크 연결 생성
- 포트당 1Gbps, 10Gbps, 100Gbps 연결 속도 사용 가능
- 물리적인 구성을 해야 하기에 설치 시간이 오래걸림
- VPN보다 가격이 비싸며 인터넷을 통하지 않기에 인터넷 전송 비용이 들지 않음
- 기본적으로 암호화를 지원하지 않음 (암호화를 위해 Direct Connect에 VPN을 구성 가능)
- 트래픽이 인터넷 연결을 사용하는 Site-to-Site VPN 보다 안정적
Transit Gateway
VPC + On Premise 끼리 소통을 원한다면 굉장히 복잡한 구성방식이 필요하다.
- Transit Gateway 를 통해 각 VPC 또는 VPN 간의 모든 트래픽을 라우팅
- 복잡한 피어링 관계를 제거하여 네트워크를 간소화
AWS Data Transfer Cost
- 같은 AZ EC2 서비스끼리는 inbound , outbound traffic 비용이 모두 공짜다
- 서로다른 AZ Ec2 서비스 끼리 트래픽은 0.1 달러
- 서로 다른 region 간에 트래픽은 0.2 달러
- ec2에서 internet으로 outbound traffic은 0.5~0.9 이고 internet에서 ec2로오는 inbound traffic은 무료다
- ELB 와 EC2가 같은 AZ이면 무료다.
- ELB에서 internet에서 나가고 들어오는 트래픽은 0.08이다.
- internet에서 Direct Connect로 들어오는 비용은 무료이지만 outbound traffice은 0.02 ~0.15 이다.
- public service에서 cloud front로 가는 outbound traffic은 무료 반대의 inbound traffce은 0.02~0.16
- clound front의 outbound traffic은 0.002 ~0.1 inbound는 공짜이다.
'Cloud > AWS Certified Solutions Architect - Asso' 카테고리의 다른 글
인프라 자동화, 컴퓨팅 - 컨테이너 서비스 ,Severless , Elastic Beanstalk ,머신러닝 ,재해 복구 (0) | 2023.09.05 |
---|---|
네트워크 - Route53 (0) | 2023.08.25 |
관리 및 거버넌스 (0) | 2023.08.24 |
보안 및 자격 증명 (0) | 2023.08.24 |
애플리케이션 통합 (0) | 2023.08.23 |