본문 바로가기

AWS

[AWS 교과서] 3장 AWS 네트워킹 서비스

 

1. 네트워킹

 

1) 네트워킹 정의 

 

- 네트워킹(networking)은 IT 자원 간 연결하여 통신하는 환경을 의미한다. 

- 어떤 IT 서비스를 제공하고자 한다면, 그 전에 먼저 다양한 IT 자원이 통신할 수 있는 네트워킹 환경이 구성되어야 한다. 

 

2) 네트워킹 요소 

 

OSI 7계층 

 

 

  • 1계층- 물리 계층 : 네트워크 하드웨어 전송 기술을 이루는 계층으로, 물리적으로 연결된 매체가 서로 데이터를 송수신할 수 있게 연결하고 유지하는 역할                                                                                                                              ex) 100BASE-TDX, ISDN, Wireless 등 
  • 2계층 - 데이터 링크 계층 : 물리 계층에서 송수신되는 정보의 오류와 흐름을 제어                                                      ex) Eithernet, PPP, MAX, LLC 등 
  • 3계층 - 네트워크 계층 : 데이터를 목적지까지 전달하는 계층으로, 최적의 통신 경로를 찾는다.                                  ex) IP,ICMP, IPsec, ARP 등 
  • 4계층 - 전송 계층 : 종단의 대상 간에 데이터 전송을 다루는 계층으로, 데이터 전송의 유효성과 효율성을 보장한다.   ex) TCP, UDP 등 
  • 5계층 - 세션 계층 : 종단의 대상 간 응용 프로세스 통신을 관리하는 방법으로, 데이터 통신을 위한 논리적인 연결을 담당한다.  ex) NetBIOS, SSL, TLS 등 
  • 6계층 - 표현 계층 : 데이터 형식에 차이가 있을 때 데이터를 서로 이해할 수 있는 형태로 변환하는 역할을 한다.             ex) ASCII, JPG, XDR, AEP 등 
  • 7계층 - 응용 계층 : 응용 프로세스와 직접 연계하여 실제 응용 프로그램을 서비스하는 역할을 한다.                               ex) HTTP, SSH, DNS, FTP 등 

 

IP 주소와 서브넷

 

IP 주소 (Internet Protocol)

 

- 인터넷상에서 IT 자원을 식별하는 고유한 주소 

- IPv4, IPv6

- IPv4는 10진수(0~255) 또는 2진수(0~1) 네 자리로 되어 있으며, 각 자리는 온점(.)으로 구분해서 표현 

 

퍼블릭 IP 주소와 프라이빗 IP 주소 

 

퍼블릭 IP 주소 

 

- 실제 인터넷에서 사용하려고 인터넷 서비스 공급자(ISP)에서 제공하는 유일한 공인 IP 주소 

 

프라이빗 IP 주소 

 

- 인터넷이 아닌 독립된 네트워크 내부에서만 사용하려고 네트워크 관리자가 제공하는 사설 IP 주소 

 

 

고정 IP 주소와 유동 IP 주소 

 

고정 IP 주소

 

- 네트워크 관리자가 수동으로 할당하는 방식 

 

유동 IP 주소 

 

- 특정 서버가 IP 주소 범위에 따라 동적으로 할당하는 방식 

- DHCP(Dynamic Host Configuration Protocol) 프로토콜을 통해 주소를 제공하는 서버와 주소를 할당받는 클라이언트로 구성되며, IP 주소를 임대(lease)하는 형태를 취한다. 

 

 

서브넷과 서브넷 마스크 

 

- 모든 네트워크는 하나의 네트워크로만 구성되어 있지 않다. 주체와 목적에 따라 부분 네트워크로 나뉘고, 서로 연결하여 거대한 네트워크 환경을 이루고 있다. 여기서 서브넷(subnet)부분 네트워크를 의미하며, 다양한 서브넷이 연결되어 거대한 네트워크 환경을 이루고 있다. 

 

- 서브넷 마스크(subnet mask)를 통해 서브넷을 구분하고 식별한다. 

- 서브넷 마스크는 IP 주소와 동일한 32비트 구조에 네트워크 ID와 호스트 ID로 구성되어 있다. 

네트워크 ID 서브넷을 구분하는 기준 값
호스트 ID 동일 서브넷 내에서 대상을 구분하는 기준 값 

 

- 32비트로, 32개의 2진수 값 중 1은 네트워크 ID 영역이며 0은 호스트 ID 영역이다. 

- 네트워크 ID 영역이 먼저 나열되고 이후, 호스트 ID 영역이 연속적으로 나열된다. 

 

 

- 동일한 서브넷이라면 IP 주소의 네트워크 ID 영역값은 동일하고 호스트 ID 영역값은 서로 다르다. 

- 다른 서브넷이라면 IP 주소에서 네트워크 ID 영역 값은 서로 다르다. 

 

 

라우팅과 라우터 

 

- 라우팅(routing)은 네트워크 통신을 수행할 때 목적지 경로를 선택하는 학습을 의미하며, 이를 수행하는 장비를 라우터(router)라고 한다. 

- 라우터는 라우팅 테이블이라는 서브넷의 경로 리스트를 가지고 목적지 네트워크에 대한 최적 경로를 선택해서 전달하는 역할을 한다. 

 

 

TCP와 UDP

 

TCP(Transmisson Control Procotol)

 

- 송수신 대상 간 연결을 맺고 전송 여부를 하나씩 확인하며 전송하는 연결형 프로토콜로, 신뢰성 있는 데이터 전송을 보장한다. 

- 신뢰성이 높고 전송 속도가 느리다. 

- 속도보다 안정적인 데이터 전송을 보장하는 응용 서비스에 활용 

 

UDP(User Diagram Protocol)

 

- 송수신 대상 간 연결 없이 전달하는 비연결형 프로토콜

- 연결이나 제어를 위한 작업이 없어 신뢰성 있는 전송을 보장할 수 없지만, 빠르게 데이터 전송 가능 

- 데이터 유실에 큰 지장이 없고 빠른 데이터 전송을 위한 응용 서비스에 활용 

 

 

포트 번호

 

- TCP와 UDP를 사용하는 응용 서비스는 서로 구분할 수 있도록 포트 번호를 사용한다. 

- 포트번호는 IANA(Internet Assigned Numbers Authority)라는 인터넷 할당 번호 관리 기관에서 정의한다. 

 

2. AWS 네트워킹 소개 

 

 

1) AWS 리전 네트워킹 디자인 

 

- 리전은 전 세계 주요 도시의 데이터 센터를 군집화(clustering)하는 물리적인 위치를 의미한다. 

- AWS 리전 내부에는 트랜짓 센터(transit center)와 가용 영역이 서로 연결되어 네트워크 환경을 이루고 있으며, 네트워킹 측면으로 어떤 대상과 연결되었는지에 따라 다음과 같이 분류 가능하다.

 

Intra-AZ 연결 데이터 센터간 연결 
- 리전 내부에는 논리적인 데이터 센터의 집합인 가용영역이 여럿 존재한다. 
- 가용 영역에 존재하는 데이터 센터들은 고밀도 광섬유 케이블을 사용하여 100GE 또는 400GE로 상호 연결되어 네트워킹 환경을 구성한다. 
Inter-AZ 연결 가용 영역 간 연결
- 리전 내부에 위치하는 가용 영역은 실제 100km 이내로 떨어져 있다. 
- AWS 클라우드 자원을 다수의 가용 영역에서 실행하도록 설계하여 내결함성을 강화할 수 있다. 
- 지리적으로 떨어져 있는 가용 영역끼리 연결되어 네트워킹 환경을 구성 
트랜짓 센터 연결 외부 인터넷 구간과 통신
- 내부에 있는 가용 영역들은 외부 인터넷 통신을 위해 트랜짓 센터와 연결되어 네트워킹 환경을 구성

 

 

2) AWS 글로벌 네트워크와 엣지 POP

 

엣지 POP(edge Point of Presence)

 

- AWS 글로벌 네트워크라는 전용망을 활용하여 안정적으로 고성능 서비스를 제공하는 센터 

- 엣지 POP를 사용하여 사용자에게 글로벌 서비스 콘텐츠를 빠르게 제공할 수 있다. 

 

- 엣지 로케이션(edge location)리전별 엣지 캐시(regional edge cache)로 구성되며, 전 세계 300개 이상의 엣지 로케이션과 13개의 리전별 엣지 캐시가 서로 연결된 AWS 글로벌 네트워크를 구성하고 있다. 

 

- 대표적으로 Amazon CloudFront, Amazon Route 53, AWS Shield, AWS Global Accelerator등이 있다. 

 

 

- 엣지 POP가 속해 있는 AWS 백본 네트워크는 AWS 글로벌 네트워크와 연결되어 있으며, 모든 리전은 백본 네트워크를 중심적으로 서로 연결되어 있다. 

 

일반적인 서비스 트랜짓 센터에서 인터넷 구간으로 통신
엣지 POP를 활용한 서비스 트랜짓 센터에서 AWS 백본 네트워크를 통해 엣지 POP를 경유하고 AWS 글로벌 네트워크로 통신 

 

 

3) AWS 네트워킹 서비스 소개 

 

VPC 사용자 전용 가상의 프라이빗 클라우드 네트워크로, 네트워크 자원을 탄력적으로 활용하는 서비스를 제공
Transit Gateway 중앙 허브 개념처럼 VPC와 온프레미스 네트워크를 연결하는 게이트웨이 역할의 서비스를 제공
Route 53 AWS에서 제공하는 관리형 DNS 서비스로 도메인 등록, 라우팅, 상태 확인 등 서비스를 제공
Global Accelerator AWS 글로벌 네트워크를 통해 애플리케이션을 빠르고 안정적으로 사용할 수 있도록 가용성 및 성능을 보장하는 서비스 제공
Direct Connect 온프레미스 환경에서 AWS와 전용 네트워크 연결 서비스를 제공
Site-to-Site VPN IPSec VPN 연결을 생성하여 암호화된 네트워크를 구성하는 서비스를 제공 

 

 

3. Amazon VPC 소개 

 

Amazon VPC(Virtual Private Cloud)

 

- 사용자 정의로 구성된 프라이빗 클라우드 네트워크 

- 사용자는 Amazon VPC에서 제공하는 다양한 네트워킹 요소를 이용하여 가상의 클라우드 네트워크를 구성할 수 있다. 

 

1) Amazon VPC 기본 구성 요소 

 

 

리전과 VPC

 

-Amazon VPC는 리전마다 독립적으로 구성되어 있다. 또한 리전 내에는 다수의 VPC를 생성할 수 있으며, 각 VPC는 서로 독립적으로 분리된다. 

서브넷과 가용 영역

 

- Amazon VPC라는 하나의 독립된 클라우드 네트워크에도 서브넷을 이용하여 분리된 네트워크로 구성될 수 있다. 

- 서브넷은 반드시 하나의 가용 영역에 종속적으로 위치한다. 

- 서브넷은 VPC 네트워크 환경 구성에 따라 퍼블릭 서브넷프라이빗 서브넷으로 분류 

 

퍼블릭 서브넷 인터넷 구간과 연결되어 있어 외부 인터넷 통신이 가능한 네트워크 영역
프라이빗 서브넷 인터넷 구간과 연결되지 않은 폐쇄적인 네트워크 영역 

 

 

IP CIDR

 

- 네트워크에서 할당할 수 있는 IP 주소 범위를 표현하는 방법이다. 

- Amazon VPC는 내부에 생성할 서브넷의 IP 주소 범위를 할당하기 위해 IP CIDR을 가지고 있으며, VPC 내 생성된 서브넷도 VPC의 IP CIDR에서 분할된 IP CIDR이 분할되어 있다. 

 

 

가상 라우터와 라우팅 테이블 

 

- Amazon VPC를 생성하면 기본적으로 네트워크 경로를 확인하여 트래픽을 전달하는 목적의 가상 라우터가 생성된다. 

- 생성된 가상 라우터는 기본 라우팅 테이블을 보유하고 있으며, 라우팅 테이블을 통해 네트워크 경로를 식별할 수 있다. 

- 기본 라우팅 테이블 외에 별도 라우팅 테이블을 생성할 수 있고, 생성된 라우팅 테이블은 서브넷과 연결(attach)하여 서브넷 마다 라우팅 테이블을 가질 수도 있다. 

 

- 라우팅 테이블은 목적지 대상의 IP CIDR 블록과 타깃 대상으로 구성되어 있다. 

 

 

보안 그룹과 네트워크 ACL 

 

- Amazon VPC는 보안 그룹(security group)네트워크 ACL(Access Control List) 같은 가상의 방화벽 기능을 제공하여 서브넷과 생성된 자원의 트래픽을 보호한다. 

- 트래픽 접근을 통제하는 것이 주된 목적이며, IP CIDR 블록, 프로토콜, 포트 번호 등을 정의하여 허용(allow)와 거부(deny)를 결정하는 보안 규칙을 만든다. 

 

- 가상의 방화벽을 기준으로 들어오는 인바운드(inboud) 규칙과 빠져나가는 아웃바운드(outbound) 규칙이 있기 때문에 트래픽 흐름을 고려한 보안 규칙을 세워야 한다. 

 

 

보안그룹 vs 네트워크 ACL 

보안 그룹 - 인스턴스와 같은 자원 접근을 제어
- 이전 상태 정보를 기억하고 다음에 그 상태를 활용하는 스테이트풀(stateful) 접근 통제 수행
- 허용 규칙만 나열하며 허용 규칙에 해당하지 않으면 자동 거부됨
네트워크 ACL - 서브넷 접근을 제어 
- 이전 상태 정보를 기억하지 않아 다음에 그 상태를 활용하지 않는 스테이트리스(stateless) 접근 통제 수행 
- 허용 규칙과 거부 규칙이 모두 존재하며 규칙을 순차적으로 확인하고 허용과 거부를 판단 

 

 

2) Amazon VPC와 다른 네트워크 연결 

 

 

인터넷 게이트웨이 

 

- Amazon VPC는 프라이빗 클라우드 네트워크 환경으로, 외부 인터넷 구간과 연결되지 않은 독립적인 네트워크이다. 

- 외부 인터넷과 연결이 필요하면 인터넷 게이트웨이라는 네트워킹 자원을 생성한 후 Amazon VPC와 연결하여 외부 인터넷과 통신한다. 

 

- 퍼블릭 서브넷은 외부 인터넷 통신이 가능한 네트워크이다. 서브넷 라우팅 테이블에서 외부 인터넷으로 나가는 타깃 대상을 인터넷 게이트웨이로 지정하여 퍼블릭 서브넷 환경을 만든다. 

 

  • 인터넷 게이트 웨이를 생성하고 Amazon VPC에 연결한다. 
  • 서브넷의 라우팅 테이블에 타깃 대상을 인터넷 게이트웨이로 지정한다. 

 

 

NAT 게이트웨이 (Network Address Translaction gateway)

 

- 프라이빗 서브넷에서 외부 인터넷으로 통신하는 관문 역할을 한다. 

- NAT은 IP 주소를 변환하는 기능을 제공하며, 프라이빗 IP 주소를 퍼블릭 IP 주소로 변환하여 외부 인터넷 구간 통신 환경을 만든다. 

 

- 프라이빗 서브넷은 외부 인터넷 구간과 단절된 독립된 네트워크이지만 외부 인터넷 구간과 통신이 필요할 때는 NAT 게이트웨이를 통해 프라이빗 IP 주소를 퍼블릭 IP 주소로 변환하여 외부 인터넷 구간과 통신할 수 있다. 

단, 외부 인터넷 구간에서 프라이빗 서브넷의 프라이빗 IP 주소로는 데이터를 송수신할 수 없다. 

 

 

VPC 피어링

 

- 서로 다른 VPC를 연결하는 기능

- 동일 리전뿐만 아니라 다른 리전에 위치한 VPC와 연결할 수도 있고, 다른 계정에 위치한 VPC까지 연결할 수 있다. 

- VPC 피어링으로 연결할 경우 IP CIDR 블록이 중복되면 연결이 불가능한 제약이 있어 VPC 피어링으로 클라우드 네트워크를 확장할 때는 IP 주소 대역을 반드시 점검해야 한다. 

 

 

전송 게이트웨이(transit gateway)

 

- 다수의 VPC나 온프레미스를 단일 지점으로 연결하는 중앙 집중형 라우터이다. 

 

 

가상 프라이빗 게이트웨이(virtual private gateway)

 

- 관리형 AWS Site-to-Site VPN을 연결하거나 AWS Direct Connect로 온프레미스 환경을 연결한다. 

 

4. Amazon VPC로 퍼블릭 및 프라이빗 서브넷 구성하기 

 

 

실습 단계 

 

  • 사용자 VPC를 생성한다.
  • 퍼블릭 서브넷을 생성한다.
  • 퍼브릭 서브넷 환경에서 통신을 확인한다. 
  • 프라이빗 서브넷을 생성한다. 
  • 프라이빗 서브넷 환경에서 통신을 확인한다. 
  • 실습을 위해 생성된 자원을 모두 삭제한다. 

 

1) 사용자 VPC 생성하기 

 

- 사용자 요구에 따라 다음 사항을 정의한다. 

  • 이름 태그
  • IPv4 CIDR(/16~/28 범위의 서브넷 마스크 사용)

 

- AWS에 로그인하고 서비스>네트워킹 및 콘텐츠 전송 > VPC를 선택하면 VPC 대시보드가 나온다. 

 

 

- VPC 설정을 위해 위쪽에 있는 VPC 생성을 눌러 VPC 생성 페이지에 진입한다. 

 

  • 생성할 리소스는 VPC만 선택하고 이름 태그는 'CH3-VPC'를 입력
  • IPv4 CIDR 블록은 IPv4 CIDR 수동 입력 선택, IPv4 CIDR 대역을 '10.3.0.0/16'으로 입력
  • 아래쪽에 있는 VPC 생성 누르기 

 

- VPC 리스트를 보면 기본 VPC와 새로 생성한 사용자 VPC 두개가 있다. 

 

VPC 세부 정보 확인 

 

1. VPC ID  - VPC마다 고유한 ID로 자동 생성

2. 상태 - 현재 VPC는 Available로 사용할 수 있는 상태 

3. 기본 라우팅 테이블 - VPC에서 사용하는 기본 라우팅 테이블

4. 기본 네트워크 ACL - VPC 네트워크에 대해 접근 통제를 수행하는 보안 정책

5. 기본 VPC -기본 VPC가 아닌 사용자 VPC

6. IPv4 CIDR - VPC에서 사용하는 IP 대역 

 

 

- 네트워크 ACL을 확인하기 위해 기본 네트워크 ACL 링크를 클릭 

- 표시된 네트워크 ACL에 체크한 후 아래쪽 인바운드 규칙 탭을 클릭 

 

 

- 자동으로 기본 네트워크 ACl이 생성되며, 정보를 확인해 보면 모든 트래픽 유형과 모든 IP 범위(0.0.0.0/0)를 허용하는 규칙이 앞에 있다. 

- 네트워크 ACl은 여러 규칙 리스트를 순차적으로 확인하므로 첫 번째 규칙에 따라 모든 트래픽과 모든 IP를 허용한다. 

 

- 사용자 VPC를 생성하면 기본 라우팅 테이블을 사용하는 가상 라우터가 생성되고 로컬 통신이 가능하다. 

 

 

2) 퍼블릭 서브넷 생성하기 

 

- 서브넷을 생성할 때는 기본적으로 다음 사항을 정의해야 한다. 

 

  • VPC ID (연결할 대상의 VPC)
  • 서브넷 이름
  • 가용 영역
  • IPv4 CIDR 블록(VPC의 IPv4 CIDR에서 나누어진 대역)

 

- 왼쪽 VPC 메뉴에서 서브넷을 선택한다. 서브넷 페이지를 보면 현재 기본 VPC로 자동 생성된 서브넷이 네 개 있다. 

 

 

- 서브넷 생성 페이지에서 다음과 같이 설정한다. 

  • 서브넷을 생성할 VPC ID 선택
  • 서브넷 이름을  'CH3-Public-Subnet'으로 입력
  • 가용 영역은 아시아 태평양(서울) /ap-northeast-2a 선택
  • IPv4 subnet CIDR block을 '10.3.1.0/24'로 입력

 

 

- 서브넷의 세부 정보 

  1. IPv4 CIDR - 서브넷에서 사용하는 IP 대역
  2. 가용 영역 - 서브넷이 위치한 가용 영역
  3. VPC - 서브넷이 속한 VPC 정보
  4. 라우팅 테이블 - 서브넷이 사용하는 라우팅 테이블로 현재 기본 라우팅 테이블을 사용한다. 

 

 

라우팅 테이블 생성하기 

- 서브넷마다 라우팅 테이블을 생성해서 연결 

 

- 라우팅 테이블을 생성할 때는 기본적으로 다음 사항을 정의해야 한다. 

 

  • 라우팅 테이블 이름
  • VPC (연결한 대상의 VPC)
  • 서브넷 연결

- 왼쪽 VPC 메뉴에서 라우팅 테이블을 선택한다. 사용자 VPC의 사용자 정의로 라우팅 테이블을 생성할 것이니 오른쪽 위의 라우팅 테이블 생성을 누른다. 

 

  • 이름은 'CH3-Public-RT'로 입력
  • 라우팅 테이블을 사용할 VPC(CH3-VPC) 선택 

 

 

 

- 생성된 라우팅 테이블을 서브넷과 연결하는 작업이 필요 

- 생성된 라우팅 테이블 아래쪽에서 서브넷 연결 탭을 클릭한다. 현재 연결된 서브넷이 없는 상태로 오른쪽에 있는 서브넷 연결 편집을 누른다. 

 

 

 

인터넷 게이트웨이 생성하기 

 

- 퍼블릭 서브넷은 외부 인터넷 구간과 자유롭게 통신할 수 있는 환경으로, 이 환경을 만들려면 인터넷 게이트웨이가 필요하다. 

- 인터넷 게이트웨이를 생성할 때는 기본적으로 다음 사항을 정의해야 한다. 

  • 이름 태그(인터넷 게이트웨이 이름)
  • VPC 연결 

 

- 왼쪽 VPC 메뉴에서 인터넷 게이트웨이를 선택한다.  신규 인터넷 게이트웨이를 생성하기 위해 인터넷 게이트 웨이 생성을 누른다. 

 

  • 이름 태그를  'CH3-IGW'로 입력 

 

 

- 현재는 'Detached(분리)'로 뜨는데 VPC와 연결되지 않은 상태이다. 

 

 

- VPC와 연결할 수 있도록 방금 생성한 인터넷 게이트웨이를 체크하고 위쪽의 작업을 클릭하여 VPC에 연결을 선택한다. 

- VPC에 연결페이지가 표시되면 연결할 VPC를 선택하고 아래쪽의 인터넷 게이트웨이 연결을 누른다. 

 

- 'Attatched(연결)'로 변경된 것을 알 수 있다. 

 

 

라우팅 테이블 편집하기 

 

- 현재 퍼블릭 서브넷의 라우팅 테이블은 로컬 통신 경로만 있을 뿐 외부 인터넷 구간으로 갈 수 있는 경로 정보는 없다. 

- 라우팅 테이블 정보를 확인해 보면 10.3.0.0/16 대상에 대한 타깃 대상은 로컬로, 로컬 통신만 가능하다. 

 

 

- 라우팅 편집 페이지에서 다음과 같이 설정 

 

  • 라우팅 추가 누르기
  • IC CIDR에 '0.0.0.0/0 (모든 IP 대역)'을 입력
  • 타깃 대상에 인터넷 게이트웨이를 선택하고 생성한 인터넷 게이트웨이 ID를 선택

 

 

 

3) 퍼블릭 서브넷 통신 확인하기 

 

- 퍼블릭 서브넷에 EC2 인스턴스를 생성하여 통신을 확인 

 

보안 그룹 생성하기 

 

- EC2 인스턴스는 기본적으로 한 개의 보안 그룹으로 접근을 통제한다. EC2 인스턴스를 설정할 때 별도의 보안 그룹을 지정하지 않으면 신규 보안 그룹이 자동으로 생성된다. 

 

- 수동으로 보안 그룹을 생성 

 

- 왼쪽 VPC 메뉴에서 보안 그룹을 선택, 그룹 생성 클릭 

  • 보안 그룹 이름을 'MY-WEB-SSH-SG'로 입력
  • 인바운드 규칙을 추가하기 위해 규칙 추가 누르기
  • 인바운드 규칙에서 유형은 HTTP, 소스는 내 IP 선택
  • 다시 규칙 추가를 눌러 유형은 SSH, 소스는 내 IP 선택

 

 

- 생성한 보안 그룹은 HTTP와 SSH프로토콜에 대해 특정 IP 주소만 허용하는 보안 규칙이다. 

 

 

EC2 인스턴스 생성하기 

 

  • 서비스>EC2>인스턴스 메뉴를 선택하고 인스턴스 시작 누르기
  • 이름 및 태그에서 이름 설정('CH3-Public-EC2')
  • 키 페어(로그인)에서 케피에 이름을 기존에 생성한 키 페어 파일로 선택
  • Network settings에서 편집 누르기
  • VPC는 CH3-VPC 선택
  • 서브넷은 CH3-Public-Subnet 선택
  • 퍼블릭 IP 자동 할당은 활성화 선택
  • 방화벽(보안 그룹)은 기존 보안 그룹 선택
  • 일반 보안 그룹은 MY-WEB-SSH-SG 선택
  • 인스턴스 시작 누르기 

 

 

 

  1. 퍼블릭 IPv4 주소 - EC2 인스턴스가 사용할 공인 IP 주소 
  2. 프라이빗 IPv4 주소 - EC2 인스턴스가 내부 통신을 할 때 사용할 사설 IP 주소
  3. VPC ID - 앞서 생성한 사용자 VPC
  4. 서브넷 ID - 퍼블릭 서브넷 용도로 생성한 서브넷에 위치
  5. 가용 영역 - 퍼블릭 서브넷에 설정한 가용 영역 

 

EC2 인스턴스 실습 환경 설정하기 

 

- 생성된 EC2 인스턴스의 퍼블릭 IP 주소로 SSH 접근을 한다. 

  • 메인 메뉴에서 Session을 클릭하여 Session settings 창 열기
  • SSH 탭을 클릭하여 SSH 설정 정보 표시
  • Remote host에 EC2 인스턴스 퍼블릭 IP 주소 붙여 넣기 
  • 'Specify username'에 체크한 후 'ec2-user'입력
  • 아래 'Advanced SSH settings'에 체크하여 상세 설정 정보 표시
  • SSH-browser type은 None 으로 선택
  • 'Use private key'에 체크한 후 내려받은 키 페어 파일 지정 

 

- SSH 터미널에서 EC2 인스턴스에 웹 서비스를 설치 

 

# 슈퍼 유저로 변경
sudo su

#http 데몬 설치
yum install httpd -y

#http 데몬 실행
systemctl start httpd

#웹서비스 최초 페이지 내려받기 
curl -y https://bit.ly/afbtest02 > /var/www/html/index.html

 

- EC2 인스턴스에서 외부 인터넷으로 통신 확인 

 

# 외부 인터넷 구간으로 ping 테스트 
ping google.com

# 외부 인터넷 구간으로 HTTP 접근 테스트
curl google.com

 

 

 

 

 

4) 프라이빗 서브넷 생성하기 

 

서브넷 생성하기 

 

- 서비스>VPC>서브넷에서 서브넷 생성을 누른다. 

  • VHC ID는 CH3-VPC로 선택
  • [서브넷 설정] 서브넷 이름은 'CH3-Private-Subnet' 입력, 가용 영역은 아시아 태평양 (서울) / ap-northeast-2c 선택, subnet CIDR block은 '10.3.2.0/24'를 입력 

 

 

 

라우팅 테이블 생성하기 

 

- 라우팅 테이블(서비스>VPC>라우팅 테이블)에 들어가서 라우팅 테이블 생성을 눌러 다음과 같이 설정 

 

  • 라우팅 설정 페이지에서 이름은 'CH3-Private-RT'로 입력하고 VPC는 CH3-VPC로 선택
  • 라우팅 테이블 생성 클릭
  • 라우팅 테이블 메뉴에 다시 들어가서 생성한 라우팅 테이블 선택
  • 서브넷 연결 탭 클릭
  • 서브넷 연결 편집 누르기
  • 'CH3-Private-Subnet'에 체크
  • 연결 저장 누르기 

 

 

 

 

NAT 게이트웨이 생성하기 

 

- 프라이빗 서브넷은 독립된 네트워크에서만 내부 통신하는 환경이지만, 외부 인터넷 통신을  위해 NAT 게이트웨이를 활용할 수 있다. 

- NAT 게이트웨이를 생성할 때는 기본적으로 다음 사항을 정의 

  • 이름
  • 서브넷
  • 연결 유형(퍼블릭/프라이빗)
  • 탄력적 IP 할당 ID
퍼블릭 NAT 게이트웨이를 통해 IP 주소를 변환하여 인터넷 구간과 통신하는 연결 유형
프라이빗 NAT 게이트웨이를 통해 IP 주소를 변환하여 다른 VPC나 온프레미스 네트워크와 연결하는 유형 
탄력적 IP 주소  고정된 공인 IP 주소 
-> 특정 이벤트가 있어도 할당받은 주소를 그대로 유지

 

 

- 왼쪽 메뉴에서 NAT 게이트웨이를 선택하고, NAT 게이트웨이 생성 클릭 

  • NAT 게이트웨이 이름을 'CH3-NAT-GW'로 입력
  • 서브넷은 앞서 설정한 퍼블릭 서브넷 (CH3-Public Subnet) 선택 -> NAT 게이트웨이가 위치하는 서브넷을 의미
  • 연결 유형은 퍼블릭 선택
  • 탄력적 IP 할당 누르기
  • 아래쪽에 있는 NAT 게이트웨이 생성 누르기 

 

NAT 게이트웨이 세부 정보 

  1. 연결 유형 - 외부 인터넷 구간과 연결하는 퍼블릭 유형
  2. 상태 - 일정 시간이 지나면 'Available' 상태가 됨
  3. 탄력적 IP 주소 - NAT 게이트웨이가 사용할 고정된 공인 IP 주소
  4. 서브넷 - NAT 게이트웨이가 생성된 서브넷으로, 우리가 생성된 퍼블릭 서브넷에 위치
  5. VPC - NAT 게이트웨이가 생성된 VPC

 

라우팅 테이블 편집하기 

 

- 프라이빗 서브넷의 라우팅 테이블은 로컬 통신 경로만 있을 뿐 외부 인터넷 구간으로 갈 수 있는 경로 정보는 없다. 

 

- 라우팅 테이블로 들어가서 생성한 프라이빗 라우팅 테이블을 체크한 후 라우팅 탭을 클릭, 라우팅 편집을 눌러 라우팅 편집 페이지에서 설정 

 

  • IP CIDR에서 '0.0.0.0/0 (모든 IP 대역)'입력
  • 타깃 대상에 NAT 게이트웨이를 선택하고 생성한 NAT 게이트웨이 ID 선택

 

 

 

5) 프라이빗 서브넷 통신 확인하기 

 

EC2 인스턴스 생성하기 

 

  • 이름 'CH3-Private-EC2'로 설정
  • 키 페어 파일 선택
  • Network settings에서 편집 누르기 
  • VPC는 CH3-VPC 선택
  • 서브넷은 CH3-Private-Subnet 선택
  • 퍼블릭 IP 자동 할당은 비활성화 선택
  • 방화벽(보안 그룹)은 보안 그룹 생성 선택
  • 고급 세부 정보에서 사용자 데이터는 다음 코드 입력(SSH 설정)
#!/bin/bash
(
echo "qwe123"
echo "qwe123"
) | passwd --stdin ec2-user
sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
systemctl restart sshd

 

 

 

EC2 인스턴스에서 외부 인터넷 통신 확인하기 

 

- 생성된 EC2 인스턴스는 퍼블릭 IP 주소가 없는 프라이빗 서브넷에 위치한다. 

 

- 현재 작업 중인 PC에서 SSH 접근을 바로 수행할 수 없는 관계로, 퍼블릭 서브넷의 EC2 인스턴스에 SSH로 접근한 후  생성된 EC2 인스턴스의 프라이빗 IP 주소로 다시 접근한다. 

 

 

1. 퍼블릭 서브넷에 위치한 EC2 인스턴스에 SSH 접근을 하고, 프라이빗 서브넷에 위치한 EC2 인스턴스의 프라이빗 IP 주소로 SSH 접근을 한다. 

 

# 프라이빗 서브넷의 EC2 인스턴스로 SSH 접근 
ssh ec2-user@[프라이빗 IP 주소]

 

 

2. 프라이빗 EC2 인스턴스로 SSH 터미널에서 외부 인터넷 통신을 확인 

 

# 외부 인터넷 구간으로 ping 테스트
ping google.com

# 외부 인터넷 구간으로 HTTP 접근 테스트 (인터넷 통신을 할 경우 공인 IP 주소 확인)
curl ipinfo.io/ip

 

- 프라이빗 서브넷에 위치한 EC2 인스턴스는 외부 인터넷 구간의 대상과 정상적으로 통신이 가능하다. 

- 퍼블릭 IP 주소가 없는 대상으로 외부 인터넷 구간에서 프라이빗 서브넷의 EC2 인스턴스로 통신이 불가능하다.