반응형
SMALL
4장 독립적인 나만의 가상 네트워크 공간 만들기
1. Network
- Net(촘촘하게 연결되어있는) + Work(일)의 합성어
- ‘네트워킹을 한다 = 서로 통신(Communicaiton)을 한다’
- 통신을 하기 위한 약속 ‘프로토콜(Protocol)
2. VPN(Virtual Private Network)
VPN(Virtual Private Network)
- 큰 규모의 조직이 여러 곳에 분산되어 있는 컴퓨터들을 연결하는 보안성이 높은 사설 네트워트를 만듬
- 인터넷을 활용하여 원격지 간에 네트워크를 서로 연결하고 암호화 기술을 적용
- 안정적, 보안성이 높은 통신 서비스를 제공
- 기존 IDC에서 서비스하던 모든 시스템을 클라우드로 이전하는 것은 매우 어려운일
- IDC - 클라우드 간의 네트워크 연결을 통해 기존 시스템과 클라우드 시스템 간의 데이터 통신 필요하다.
- AWS는 **VPC(Virtual Private Clould)**와, VPC Gataeway를 통해 On-Premise의 VPN 장비와 AWS간의 VPC을 연결
- 이를 통하여 보안성이 높은 하이브리드 클라우드 환경을 구현
3. VPC(Virtual Private Cloud)
VPC(Virtual Private Cloud)
- AWS 클라우드에서 논리적으로 격리된 네트워크 공간을 할당하여 가상 네트워크에서 AWS 리소스를 이용 할 수 있는 서비스
- VPC는 자체 IP 주소 범위, 서브넷(Subnet) 생성, 라우팅 테이블(Routing Table) 및 네트워크 게이트웨이 구성 선택 등 가상 네트워킹 환경을 완벽하게 제어
- VPC에서 IPv4와 IPv6를 모두 사용하여 리소스와 애플리케이션에 안전하고 쉽게 액세스 할 수 있다.
- 보안 그룹(Security Group) 및 네트워크 제어 목록(Network Access Control List)을 포함한 다중 보안 계층을 활용하여 각 서브넷(Subnet)에서 EC2 인스턴스에 대한 엑세스 제어
- 기업의 데이터 센터와 VPC 사이에 하드웨어 가상 사설 네트워크를 연결하여, AWS클라우드 기업의 데이터 센터를 확장할 것처럼 사용 가능
구분 | 내용 |
서비스명 | Amazon VPC(Virtual Private Cloud) |
설명 | 직접 정의 가능한 가상 네트워크(Private Network)에서 AWS 리소스를 구동할 수 있는 논리적으로 격리된 네트워크 제공 |
주요 특징 | - AWS에 사설 네트워크 구축 - 회사와 AWS 간 VPN 연결하거나 가상 네트워킹 구현 - 기존 데이터 센터와의 연결을 통해 하이브리드(Hybrid) 환경 구성 - AWS를 회사 인프라의 일부처럼 사용할 수 있으며, 내부 시스템 소프트웨어의 연동이 매우 쉬움(예 : 메일, 그룹웨어 같은 업무 시스템, 파일 서버 등) - 세심한 네트워크 설정 가능 - 모든 리전(Region)에서 이용 가능 |
프리티어 (Free Tier) |
VPC 자체는 비용이 발생하지 않지만, VPN 연결 시 네트워크 송/수신에 따른 종량제 비용 발생 |
4. VPC의 구성 요소
4-1 프라이빗 IP(Private IP) 주소, 퍼블릭 IP(Public)주소, 탄성 IP(Elastic IP)주소
1. 프라이빗 IP(Private IP) 주소
- 인터넷을 통해 연결할 수 없는, VPC 내부에서만 사용할 수 있는 IP주소
- 프라이빗 IP는 VPC 에서 시작된 인스턴스 서브넷의 범위에서 자동으로 할당되며
- 동일 네트워크에서 인스턴스 간 통신에 사용 할 수 있습니다.
- 기본 프라이빗 주소와 별도로 보조 프라이빗 IP주소라는 추가 프라이빗 주소 할당가능
2. 퍼블릭 IP(Public)주소
- 인터넷을 통해 연결 할 수 있는 IP 주소
- 인스턴스와 인터넷 간의 통신을 위해 사용 가능하다
- EC2 생성시 옵션으로 퍼블릭 IP 주소의 사용 여부를 선택 할 수 있음
- 인스턴스에서 퍼블릭 IP 주소를 수동으로 연결하거나 해제할 수 없다.
- 인스턴스가 재부팅되면 새로운 퍼블릭 IP 주소할당
3. 탄성 IP(Elastic IP)주소
- 동적 컴퓨팅을 위해 고안된 고정 퍼블릭 IP 주소
- VPC의 모든 인스턴스와 네트워크 인터페이스에서 탄성 IP 할당 가능
- 다른 인스턴스에 주소를 신속하게 매칭하여 인스턴스 장애 조치를 수행 가능
- 탄력적 IP 주소의 효율적인 활용을 위해 탄력적 IP 주소가 실행중인 인스턴스와 연결되어 있지 않거나, 중지된 인스턴스 또는 분리된 네트워크 인터페이스와 연결되어 있는 경우 시간당 요금 부과됨
- 사용 가능한 탄력적 IP 주소는 5개로 제한, 이를 절약하기위해 NAT 디바이스 사용
4-2 VPC와 서브넷(Subnet)
1. VPC와 서브넷
- VPC는 사용자의 AWS 게정을 위한 전용의 가상 네트워크
- VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있음
- Amazon EC2 인스턴스와 같은 AWS 리소스를 VPC에서 실행할 수 있음
- VPC 내부의 네트워크에서도 서비스 목적에 따라 IP Block으로 나누어 구분 할 수 있음
- 우리는 이렇게 분리된 IP Block의 모음을 **서브넷(Subnet)**이라고 함
2. 가용 영역과 서브넷
- VPC 는 리전(Region)의 모든 가용영역(AZ)에 적용되며, 각 가용영역에 하나 이상의 서브넷을 추가할 수 있다.
- 하지만 서브넷은 단일 가용 영역에서만 생성할 수 있으며, 여러가용 영역으로 확장불가
4-3 VPC와 서브넷(Subnet)사이즈
- VPC를 생성할 때 VPC에서 이용하게 될 IP 주소의 범위(예 : 10.0.0.0/16)를 지정하게 된다
- 범위를 CIDR(Classless Inter-Domain Routing) 블록형태로 지정해야 한다
사용할수 있는 IP 갯수와 범위를 구하시오
- 서브넷 개수 : 255개
- 범위 : 192.168.0.0 ~ 192.168.0.255
- 192.168.0.0 → 네트워크 아이디
- 192.168.0.255 → 브로드캐스트
- 예시) 192.168.0.0/24
4-4 퍼블릭 서브넷(Public Subnet)과 프라이빗 서브넷(Private Subnet)
1. 퍼블릭 서브넷(Public Subnet)
- 서브넷 네트워크 트래픽이 인터넷 게이트웨이(Internet Gateway, IGW)로 라우팅 되는 서브넷을 퍼블릭 서브넷이라 한다.
2. 프라이빗 서브넷(Private Subnet)
- 인터넷 게이트웨어로 라우팅 되지않는 서브넷을 프라이빗 서브넷이라고 한다.
정리
- EC2 인스턴스가 IP를 통해 인터넷과 통신을 할 수 있게 하려면, 퍼블릭 IP(Public IP) 주소나 탄력적 IP(Elastic IP)가 있어야함
- 일반적으로 인터넷망을 통해 서비스를 수행하는 웹서버(Web Server)는 퍼블릭 서브넷
- 인터넷에 직접 연결할 필요 없고, 보다 높은 보안성을 필요하는 DB서버는 프라이빗 서브넷
4-5 라우팅 테이블(Routing Table)
- 각 서브넷은 서브넷 외부로 나가는 아웃바운드(OutBound) 트래픽에 대해 허용된 경로를 지정하는 라우팅 테이블이 연결되어 있어야 한다.
- 생성된 서브넷은 자동으로 VPC의 기본 라우팅 테이블과 연결되며, 테이블의 내용 변경 가능
- 이러한 라우팅 테이블은 VPC의 서브넷 내에서 생성된 네트워크 패킷이 목적지 주소로 이용하기 위해 어떤 경로로 이동하는지 알려준다.
5. VPC의 주요 서비스
5-1 보안 그룹(Security Group)과 네트워크 액세스 제어 목록(Network ACL)
- VPC는 네트워크 통신과 트래픽에 대해 IP와 Port를 기준으로 통신을 허용하거나 차단하기위한 기능을 제공한다.
- 이러한 서비스를 보안 그룹(Security Group)과 네트워크 ACL(Network ACL)이라 한다.
5-2 VPC 피어링 연결(VPC Peering Connection)
- 피어링 연결(VPC Peering Connection)은 비공개적으로 두 VPC 간에 트래픽을 라우팅 할 수 있게 하기 위한 서로 다른 VPC 간의 네트워크 연결을 제공한다.
- VPC Peering을 통해 동일한 네트워크에 속한 것과 같은 서로 다른 VPC의 인스턴스간 통신 가능
5-3 NAT(Network Address Translation) 게이트웨이
1. NAT(Network Address Translation) 게이트웨이
- NAT는 외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서
- 내부 IP 주소를 외부 IP주소로 변환하는 작업을 수행하는 서비스
- NAT 게이트웨이는 프라이빗 서브넷(Private Subnet) 내에 있는 인스턴스를 인터넷(예 : S/W 업데이트용) 또는 다른 AWS 서비스에 연결하고, 외부망 또는 인터넷에서 해당 인스턴스에 연결하지 못하도록 구성하는데 사용
- 외부에 공개될 필요가 없거나, 보안상 중요한 서비스이지만 윈도우 패치나 보안 업데이트, S/W 업데이트를 인터넷을 통해 받아야 하는경우 NAT 게이트웨이나, NAT 인스턴스를 사용하게된다
2. NAT(Network Address Translation) 게이트웨이 3가지 조건
- NAT 게이트웨이를 생성하기 위해 퍼블릭 서브넷(Public Subnet)을 지정
- NAT 게이트웨이와 연결할 탄력적(Elastic IP)주소 필요
- NAT 게이트웨이를 만든 후 인터넷 트래픽이 NAT 게이트 웨이로 통신이 가능하도록 프라이빗 서브넷(Private Subnet)과 연결된 라우팅 테이블(Routing Table) 업데이트
5-4 VPC Endpoint
- Amazon S3는 인터넷망에 연결된 서비스로 인터넷 기반의 IP 주소와 연결 정보를 가지고 있다.
- 이러한 공용 리소스에 대해 퍼블릭 서브넷(Public Subnet)에 위치한 인스턴스는 인터넷을 통해 문제없이 연결 가능
- 하지만 프라이빗 서브넷(Private Subnet)에 위치한 인스턴스는 인터넷과 연결되어 있는 S3와 같은 공용 리소스 연결 불가
- 이러한 경우 S3에 연결하기 위해서 NAT 게이트 웨이나, NAT 인스턴스가 필요함
- VPC Endpoint를 이용하면 S3, DynamoDB에 연결 가능하다.
5-5 VPN(Virtual Private Network)연결
- 기본적으로 Amazon VPC에서 서비스되는 인스턴스는 On-Premise에 있는 서버나 IDC 내의 시스템과 통신할 수 없다.
- 물론 인터넷을 통해 강제로 통신 하도록 구성 가능하나 보안을 필요하는 중요한 데이터를 송수신하기에는 보안적으로 매우 취약하다.
- 이렇게 AWS VPC 내 인스턴스와 IDC내의 시스템간의 통신을 위해 VPC에 가상의 프라이빗 게이트웨이를 연결하고 사용자 지정 라우팅 테이블을 생성하며, 보안 그룹의 규칙을 업데이트하고, AWS 관리형 VPN 연결을 생성하여 VPC에서 원격의 네트워크에 접속가능하도록 하이브리드 클라우드 환경을 구성 가능
- VPN 연결은 VPC와 자체 네트워크 사이의 연결을 의미한다.
6. 실습 : VPC 마법사를 통해 퍼블릭 서브넷(Public Subnet)과 프라이빗 서브넷(Private Subnet) 만들기
1. AWS에 들어가 로그인 후, [서비스] → [네트워킹 및 콘텐츠 전송] → [VPC] 로 이동한다.
2. NAT 게이트웨이에 사용할 탄력적 IP 할당을 위해 [탄력적 IP]로 이동하여 [탄력적 IP 주소 할당] 버튼을 클릭한다.
3. [탄력적 IP 주소 할당] 페이지에서 [할당] 버튼을 클릭한다.
4. 상단 [VPC 대시보드]에서 [VPC 마법사 시작] 버튼을 클릭한다.
5. [1단계 : VPC 구성 선택] 페이지에서 [퍼블릭 및 프라이빗 서브넷이 있는 VPC]의 [선택] 버튼을 클릭한다
6. VPC 구성을 위해 다음과 같이 입력 후, [VPC 만들기] 버튼을 클릭해서 VPC를 생성한다.
7. 실습 : 리전(Region) 간 VPC Peering으로 글로벌 통합 네트워크 환경 구축하기
실습 : 리전(Region) 간 VPC Peering으로 글로벌 통합 네트워크 환경 구축하기
- 본 실습은 네트워크 테스트를 위해 각각의 리전에 EC2 인스턴스를 생성하게 된다.각 리전에 생성된 EC2 인스턴스는 실습 이후 삭제하기 바란다.
- 실습 후, 생성된 인스턴스를 삭제하면 프리티어(Free Tier) 범위 내에서 추가적인 비용이 발생하지 않을 것이다.
- Inter-Region VPC Peering을 테스트하기 위해 런던 리전에 VPC를 만들고, 서울 리전과 런던 리전 간에 VPC Peering을 수행한 후 각 리전 간 네트워크가 정상적으로 연결되는지 확인한다.
1. AWS 접속 로그인 후, 런던 리전에 VPC 구성을 구성하기 위해 오른쪽 상단의 [리전 선택] 항목에서 "유럽(런던)" 리전을 클릭한다.
2. [VPC] 페이지에서 [VPC 만들기] 버튼을 눌러 [VPC 마법사 시작] 버튼을 클릭한다.
3. [VPC 구성 선택] 페이지에서 "단일 퍼블릭 서브넷이 있는 VPC"를 선택 후 [선택] 버튼을 클릭한다.
5. VPC 구성을 위해 다음과 같이 입력한다.
생성 후 VPC ID 복사 ! vpc-0a9653054dd8c3487
6. 피어링 구성을 위해 리전을 다시 "아시아 태평양(서울)"로 전환 후 VPC로 이동한다.
7. [피어링 연결] 메뉴를 눌러 피어링 페이지로 이동 후 [피어링 연결 생성] 버튼을 클릭한다.
8. [피어링 연결 생성] 페이지에서 다음과 같이 구성을 진행 후, [피어링 연결 생성] 버튼을 클릭한다.
9. VPC 연결이 정상적으로 생성되었다. 이후 피어링 연결 승인을 위해 런던 리전으로 이동한다.
10. [피어링 연결] 페이지에서 [작업]의 [요청 수락]을 클릭한다.
11. [VPC 피어링 연결 요청 수락] 페이지에서 [예, 수락] 버튼을 클릭한다.
12. VPC 간 트래픽 통신을 수행하기 위해 [지금 내 라우팅 테이블 수정]을 클릭한다.
13. 런던 리전의 [라우팅 테이블] 페이지에서 바로 전에 생성된 라우팅 테이블을 다음과 같이 선택하고, "라우팅" 탭 클릭 후 [라우팅 편집] 버튼을 클릭한다.
14. 라우팅 편집 페이지에서 [라우팅 추가] 버튼을 클릭하고 좌측의 "대상"에서 서울 리전의 VPC 대역인 "10.0.0.6/16" 입력 후, 대상 항목에서 "피어링 연결"를 선택한다. 현재 구성된 "VPC Peering 연결"을 선택 후 [라우팅 저장] 버튼을 클릭한다.
15. 서울 리전의 [라우팅 테이블] 페이지에서 바로 전에 생성된 라우팅 테이블을 다음과 같이 선택하고, "라우팅" 탭 클릭 후 [라우팅 편집] 버튼을 클릭한다.
16. 라우팅 편집 페이지에서 [라우팅 추가] 버튼 클릭 후 좌측의 "대상"에서 런던 리전의 VPC 대역인 "20.0.0.0/16" 입력 후, 대상 항목에서 "피어링 연결"를 선택한다. 현재 구성된 "VPC Peering 연결" 선택 후 [라우팅 저장] 버튼 클릭한다.
17. 다시 런던 리전의 EC2 생성 페이지로 이동 후, "Amazon Linux 2 AMI (HVM), SSD Volume Type" 을 선택 후, 인스턴스 세부 정보 구성 페이지에서 VPC 선택 시 이전에 생성했던 VPC를 선택한다.
18. 런던 리전에서 인스턴스 생성 완료 후 세부 항목 페이지에서 등록된 "보안 그룹"을 확인하고 수정을 위해 "보안 그룹 링크"를 클릭한다.
19. 보안 그룹 페이지 하단의 "인바운드 규칙" 탭에서 [인바운드 규칙 편집] 버튼을 클릭하여 인바운드 규칙 편집 페이지로 이동 후 [규칙 추가] 버튼을 클릭하여 "유형 : 모든 트래픽, 소스 : 10.0.0.0/16(서울 리전 VPC대역)" 등록 후 [규칙 저장] 버튼을 클릭한다.
20. 서울 리전에도 런던 리전과 동일한 방식으로 신규로 생성한 VPC의 Public Subnet 을 선택하여 EC2 인스턴스를 생성하고, 보안 그룹으로 이동 후 [규칙 추가] 버튼을 클릭하여 "유형 : 모든 트래픽, 소스 : 20.0.0.0/16(런던 리전 VPC대역)" 등록 후 [규칙 저장] 버튼을 클릭한다.
.
반응형
LIST
'Clould > 아마존 웹 서비스' 카테고리의 다른 글
아마존 웹 서비스 (AWS Discovery Book) #7 (0) | 2022.08.29 |
---|---|
아마존 웹 서비스 (AWS Discovery Book) #5 (1) | 2022.08.29 |
아마존 웹 서비스 (AWS Discovery Book) #3 (0) | 2022.08.27 |
아마존 웹 서비스 (AWS Discovery Book) #2 (0) | 2022.08.26 |
아마존 웹 서비스 (AWS Discovery Book) #1 (0) | 2022.07.28 |