AWS 실습 3주차 - 퍼블릭 서브넷에서 EC2 배포

‍한승운·2021년 6월 29일
0

AFOS(aws스터디)

목록 보기
11/36
  • 실습 목표
    • 단일 퍼블릭 서브넷 VPC 실습환경을 단계적으로 구성
    • 단일 퍼블릭 서브넷에 속한 EC2 인스턴스가 외부 인터넷 구간으로 통신 되는 과정을 이해

실습 내용

VPC 생성하기

  1. VPC > 가상프라이빗 클라우드 > VPC > VPC 생성 버튼

  1. VPC 설정 후 생성
    • 이름 태그 : CloudNeta-VPC
    • IPv4 CIDR : 10.0.0.0/16

서브넷 생성하기

  1. 서브넷 > 가상프라이빗 클라우드 > 서브넷> 서브넷 생성 버튼

  1. 서브넷 설정 후 생성
    • VPC - 방금 만들었던 CloudNeta-VPC
    • 서브넷 이름 - CloudNeta-Public-SN
    • 가용영역 - 아시아 태평양 (서울) / ap-northeast-2a
    • IPv4 CIDR 블록 - 10.0.0.0/24
      • VPC 내의 가용블럭 안에 들어가야함(?)
  • 현재의 상황
    • VPC 에 퍼블릭 서브넷이 생성됨
      • 엄밀히 말하면 인터넷 게이트웨이가 아직 연결되지 않은 상황이라 프라이빗 서브넷이긴 함
    • 아직은 가상 라우터가 가지고 있는 기본 라우팅 테이블을 사용함

게이트웨이 생성

  1. 서브넷 > 가상프라이빗 클라우드 > 인터넷 게이트웨이> 인터넷 게이트웨이 생성 버튼

  1. 게이트웨이 설정 후 생성

    • 이름 - CloudNeta-IGW

  1. 게이트웨이 - VPC 연결
    • VPC - 방금 만들었던 CloudNeta-VPC 선택

  • 현재의 상황
    • 외부 인터넷 구간과 통신을 하기 위한 인터넷 게이트웨이를 생성하고 VPC 와 연결
    • 인터넷 구간으로 향하는 라우팅 경로가 없기 떄문에 외부 인터넷 통신은 불가능한 환경

라우팅 테이블 생성

  1. 서브넷 > 가상프라이빗 클라우드 > 라우팅 테이블> 라우팅 테이블 생성 버튼

  1. 라우팅테이블 설정 후 생성
    • 이름 : CloudNeta-Public-RT
    • VPC : CloudNeta-VPC
  1. 라우팅 테이블에 서브넷 연결
    • CloudNeta-Public-SN 선택 후 연결 저장

  • 현재의 상황
    • 이제 퍼블릭 서브넷은 기본 라우팅 테이블이 아닌 새로 생성한 퍼블릭 라우팅 테이블을 사용

퍼블릭 라우팅 테이블 경로 추가

  1. 서브넷 > 가상프라이빗 클라우드 > 라우팅 테이블> CloudNeta-Public-RT 선택 > 라우팅 > 라우팅 편집

  1. 라우팅 추가 후 저장

    • 대상 : 0.0.0.0/0
      • 모든 것
    • 대상 : cloudNeta-IGW
      • 아까 만든 인터넷 게이트웨이 연결
  • 현재 상황
    • 라우팅 테이블에 외부 인터넷 구간과 통신할 수 있는 라우팅 경로 추가
    • 외부 인터넷 구간과 이제 통신이 가능한 상태

EC2 만들기

  1. AMI 선택
    • Amazon Linux 2 AMI : 64bit(x86) 선택
  2. 인스턴스 유형 선택
    • t2.micro vCPU(1) MEM(1GiB)' 선택
  3. 인스턴스 세부 구성
    • 네트워크 : CloudNeta-VPC
    • 서브넷 : CloudNeta-Public-SN
    • 퍼블릭 IP 자동 할당 : 활성화
      • 이 서브넷에 ip를 할당 받아야만 외부에 접근이 가능함
  4. 스토리지 추가 - 기본값
  5. 태그추가
    • Name : Public-EC2
  6. 보안그룹 - 기본값

발급받은 프라이빗 key 파일을 이용해서 인스턴스 시작

EC2 접근해서 인터넷 연결 확인하기

  1. Xshell을 켜서
    • 호스트 : 퍼블릭ipv4 주소를 넣음

  1. IP 정보확인
# 네트워크 인터페이스 정보 확인
ip a 혹은 ip -br -c addr show
ifconfig  ## 아재

# 라우팅 정보 확인
ip route list 혹은 ip route show
route -n 혹은 netstat -rn

# ARP 정보 확인
ip neigh show
arp -e

# DNS 서버 정보 확인
cat /etc/resolv.conf

# 외부 접속 시 공인IP 정보 확인
curl ipinfo.io
curl ipinfo.io/{IP입력} (curl ipinfo.io/18.139.223.56)
curl ipinfo.io/loc
## 카카오맵, 네이버맵, 구글 맵에서 위도경도로 대략 위치 확인 가능

(옵션) # 외부와 통신 경로 정보 확인
traceroute www.google.com
traceroute www.google.com -n
traceroute www.google.com -n -q 10

(옵션) # IP 에 대한 정보 확인
curl https://json.geoiplookup.io/{IP입력}
yum -y install jq
curl -s https://json.geoiplookup.io/13.125.27.235 | jq '.city'
"Seoul"

EC2 중지 후 시작

  • 퍼블릭 ip 변경이 되는지 확인
    • 중지 전 : 3.35.206.193
    • 중지 후 재시작 : 52.79.93.145
  • ip가 변경된 것을 확인할 수 있음

실습 내용 정리

퍼블릭 서브넷 통신 흐름

① 퍼블릭 서브넷의 퍼블릭 EC2 인스턴스가 외부 인터넷 구간과 통신하기 위해 데이터를 가상 라우터로 전달합니다. (퍼블릭 IP 사용)

② 가상 라우터는 퍼블릭 라우팅 테이블을 참고하여 인터넷 게이트웨이로 향하는 라우팅 경로를 확인합니다.

③ 가상 라우터는 인터넷 게이트웨이로 데이터를 전달하고 인터넷 구간으로 넘어갑니다.

④ 인터넷 구간을 통해 결국 사용자에게 전달합니다.

인터넷 게이트웨이를 통한 외부 접속 과정

① 내부 인스턴스(10.0.0.10)에서 외부 웹서버(60.1.1.1)로 HTTP 접속을 시도합니다. 이때 출발지 IP를 10.0.0.10으로 하여 요청 트래픽을 생성하여 보내게 됩니다.

② 인터넷 게이트웨이는 출발지 IP를 확인하고 자신이 가지고 있는 NAT 정보에 의해서 출발지 IP를 50.1.1.1로 변경하는 NAT 동작을 수행합니다.

③ 외부 웹서버(60.1.1.1)에서 요청을 처리하고 응답 트래픽을 보냅니다. 되돌아오는 트래픽이므로 출발지 IP와 목적지 IP는 뒤바뀌게 됩니다.

④ 인터넷 게이트웨이는 다시 한번 NAT 정보에 의해서 목적지 IP를 50.1.1.1에서 10.0.0.10으로 변경하고, VPC 내부로 전달하여 최종적으로 내부 인스턴스(10.0.0.10)로 도달하게 됩니다.

profile
함께 성장하고 싶은 백엔드 개발자

0개의 댓글

관련 채용 정보