본문 바로가기
공부/AWS

[AWS] HTTPS로 서버 배포하기 2편 (NAT gateway 연결)

by 웅대 2023. 5. 24.
728x90
반응형

https://growth-coder.tistory.com/180

이전 포스팅에서 private subnet에 EC2 인스턴스를 두고 session manager로 접근까지 해봤다.

 

또한 인터넷 게이트웨이와 연결되어 있지 않기 때문에 ping 명령어로 보낸 패킷에 대한 응답을 받지 못한 것까지 확인했다.

 

이제 아키텍처 부분의 NAT gateway를 연결하려고 한다.

 

물론 HTTPS 서버 배포와 관련된 부분이 아니기 때문에 이 부분은 넘어가도 된다.

 

그런데 NAT gateway를 구성하려는 이유는 private subnet에 존재하는 EC2 인스턴스에서 기본적인 환경 세팅(mysql 설치 등등)의 과정에서 인터넷 연결이 필요해서 NAT gateway를 구성하려고 한다.

 

NAT gateway를 사용하면 private subnet의 EC2 인스턴스가 외부 인터넷으로 단방향 통신이 가능해진다.

 

이를 이용해 환경을 세팅해보려고 한다.

 

1. public subnet 생성

 

아키텍처에서도 볼 수 있다싶이 NAT gateway 인스턴스는 public subnet에 생성한다.

 

당연하게도 인터넷 게이트웨이와 연결되어 있는 public subnet에 NAT gateway 인스턴스를 생성해야할 것이다.

 

VPC -> 서브넷 -> 서브넷 생성에 들어간다.

 

이전 포스팅에서 생성했던 VPC를 선택한다.

서브넷 이름, 가용 영역, CIDR 블록을 설정하고 서브넷을 생성한다.

이제 이 서브넷에 인터넷 게이트웨이를 연결해야한다.

 

이전 포스팅에서 VPC와 인터넷 게이트웨이를 생성하지 않았기 때문에 VPC에 인터넷 게이트웨이부터 생성한다.

 

VPC -> 인터넷 게이트웨이 -> 인터넷 게이트웨이 생성에 들어간다.

 

이름을 설정하고 생성한다.

생성한 인터넷 게이트웨이에서 작업 -> VPC에 연결에 들어간다.

우리의 VPC를 선택하고 연결한다.

VPC -> 라우팅 테이블 -> 라우팅 테이블 생성에 들어간다.

 

이름을 설정하고 생성한다.

생성한 라우팅 테이블의 하단 라우팅 -> 라우팅 편집에서 10.0.0.0/16이 대상이 아닌 모든 트래픽을 인터넷 게이트웨이로 향하도록 설정한다. 

 

 

생성한 라우팅 테이블의 하단 서브넷 연결 -> 서브넷 연결 편집에서 public subnet을 연결한다.

2. NAT gateway 생성

 

VPC -> NAT gateway -> NAT gateway 생성에 들어간다.

 

이름을 설정하고 탄력적 IP를 할당받고 생성한다.

3. EC2가 존재하는 private subnet NAT gateway를 향하도록 설정

아직 private subnet에는 기본 라우팅 테이블이 연결되어있기 때문에 private subnet의 라우팅 테이블도 설정한다.

 

라우팅 테이블의 생성까진 위와 동일하고 private subnet과 연결해주자.

 

그리고 이제 대상이 10.0.0.0/16이 아닌 트래픽이 NAT gateway를 향하도록 설정하자.

이전 포스팅과 마찬가지로 ping 8.8.8.8 명령어를 입력해보자.

 

이번에는 응답이 잘 오고 있다. 인터넷이 잘 연결되었다.

이제 환경 세팅들을 하면 된다.

 

나는 "/" 경로로 GET 요청을 보내면 "success" 메시지를 반환하는 간단한 스프링 부트 jar 파일을 넣어주고 실행해주었다.

 

참고로 private subnet에 RDS 인스턴스를 생성하는 과정은 따로 포스팅하지 않는다.

 

이전에 포스팅했던 방식과 동일하기 때문이다.

 

궁금하다면 다음 포스팅을 참고하면 된다.

https://growth-coder.tistory.com/170

 

[AWS] public subnet에 EC2, private subnet에 RDS 인스턴스 생성하기 (2)

https://growth-coder.tistory.com/169 이전 포스팅에서 public subnet에 EC2 인스턴스를 생성해보았다. 이번 시간에는 private subnet에 RDS 인스턴스를 생성해서 EC2에서만 접근할 수 있도록 해 볼 예정이다. RDS를

growth-coder.tistory.com

정리

  1. public subnet에 NAT gateway를 생성한다.
  2. EC2가 존재하는 private subnet은 NAT gateway를 향하도록, NAT gateway는 인터넷 게이트웨이를 향하도록 설정한다.

 

주의 사항

NAT gateway는 프리 티어에 해당되지 않기 때문에 만약 환경 세팅에만 인터넷이 필요했다면 환경 세팅을 마치고나면 삭제해주도록 하자.

 

물론 외부 api를 사용하는 등의 인터넷 연결이 필요하다면 유지한다.

 

또한 할당받은 탄력적 IP도 해제해줘야 비용이 부과되지 않는다. 탄력적 IP는 연결하면 비용이 발생하지 않지만 할당받아놓고 연결하지 않으면 비용이 발생하기 때문이다.

728x90
반응형

댓글