[네트워크] AWS 실습 #01
1단계: VPC 생성

우선 이렇게 VPC를 만들었다.
2단계: Subnet 2개 만들기
1. public subnet 생성

방금 만든 VPC에 public subnet을 생성한다.
public 서브넷은 10.0.1.0/24, private은 10.0.2.0/24로 네트워크 영역을 분리할 것이다.
2. private subnet 생성
private subnet도 동일한 방식으로 만들어준다.(서브넷 cidr 블록만 다르게)
3단계: Internet Gateway 만들기
test-internet-gateway라는 이름으로 IGW 생성했다.
다음 단계를 Public subnet 대역을 실질적으로 public으로 설정하기 위한 작업이다.(라우팅 테이블 설정)

그리고 VPC에 연결해야 함
4단계: Public 라우팅 테이블 설정
우선 라우팅 테이블을 생성해준다. (라우팅 테이블은 서브넷 단위!)


위와 같은 설정을 추가해서, 0.0.0.0/0(외부)로 나가려는 것들은 모두 IGW를 거치도록 설정해준다.
원래는 0.0.0.0/0이 아니라 public subnet의 주소블록을 쓰는 건 줄 알았는데, 생각해보니까 내가 할당받은 건 사설 ip 대역이지, 실제 IP가 아니기 때문에 말도 안 되는 생각이란 걸 깨달음.
외부에서 들어오는 건 실제로 할당 받은 하나의 IP가 있어야 가능한거임.
IGW에서 하는 것이 아님~
라우팅 테이블은 연결된 서브넷에서 나가는 패킷의 목적지에 따라 어디(다음 홉)로 보낼지 결정하는 규칙이다.
따라서 위에서 내가 했던 건 라우팅 테이블에 대해 제대로 이해하지 못해서 했던 생각임.
5단계: NAT Gateway 생성
private의 외부 접근을 위한 NAT Gateway를 생성해야 한다.
이 때 NAT의 위치는 Public Subnet으로 두어야 한다. 왜일까?
이걸 이해하기 위해 NAT의 동작 원리를 다시 한번 보겠다.
📌 NAT의 역할 다시 정리
NAT는
Private 인스턴스가 인터넷으로 나갈 때
사설 IP → 공인 IP로 변환해주는 장치
예:
Private EC2 (10.0.2.15)
↓
NAT Gateway (3.3.3.3)
↓
Internet
📌 NAT 동작 흐름
① Private EC2가 외부 API 호출
출발지:
10.0.2.15:54321
② NAT가 변환
3.3.3.3:40001
(자기 공인 IP로 바꿈 + 포트도 바꿈)
③ 응답이 돌아옴
Internet → 3.3.3.3:40001
NAT는 매핑 테이블 보고:
→ 10.0.2.15:54321
으로 다시 전달
NAT가 제대로 동작하려면:
- NAT 자신이 인터넷과 연결되어 있어야 함
- 즉 IGW를 통해 나갈 수 있어야 함
그래서 NAT는 반드시 Public Subnet에 둬야 함
❌ 만약 NAT를 Private Subnet에 둔다면?
그 Subnet은 IGW 라우트가 없음.
그럼 NAT는 사설 IP 변환은 가능해도 인터넷으로 못 나감
→ 의미 없음

따라서 이처럼 내 public subnet 영역에 NAT gateway를 생성해줬다.
참고로 EIP를 할당받아야 NAT를 사용할 수 있다! 왜냐하면 내 사설 IP -> 공인 IP로 바꿔야하니까 NAT의 공인 IP가 있어야 함.
6단계: Private 라우팅 테이블 설정

위와 같이 설정하여 private subnet -> 외부로 나가는 요청은 nat를 거치도록 규칙을 추가한다.

그리고 private 서브넷 연결!
public 라우트 테이블도 public 서브넷에 연결되어있어야 함!
7단계: EC2 2개 띄우기
원래는 이제 public EC2, private EC2를 띄워서 여러 테스트를 진행해보려고 했는데

public 인스턴스를 만드는 중에 소스 유형을 내 IP로 하면 대체 '내 IP'는 어떻게 아는거지,,? 하는 의문이 생김.
이에 대한 내용은 따로 글로 정리해보겠다.
우선은 내 IP로 설정하고 넘어가겠다.
private 인스턴스는 아래와 같이 소스 유형을 public sg로 설정했다.

이렇게 하면 실험 준비 완료임!
다음 글부터는 실제로 실험해보면서 더 깊게 공부해보겠다.