이전 포스팅에서도 언급한 적이 있는
Public Area - Private Area 간의 통신에 대한 포스팅을 진행해보려 한다.
자세한 아키텍쳐나 프로젝트 정보는
아래 레포지토리에 자세히 설명되어있다.
0) 발생한 이슈
프로젝트의 아키텍쳐를 보면 알 수 있듯이
어플리케이션 서버는
공인 IP를 가지는 프록시 서버를 통해서만 접속할 수 있게 만들어진 Private Area이다.
Object Storage나 Container Registry, DB 서버는
어플리케이션 서버와 같은 VPC 안에서 서브넷만 다르게 설정된,
즉 같은 Private Area에서 통신하기 때문에 문제가 없지만
Effective Log Search, Papago Translation과 같은
공인 IP를 가지는 외부 서버와의 통신은 불가능하다는 문제가 있었다.
이를 해결하기 위해 NAT Gateway를 도입했다.
1) NAT Gateway?
Gateway 설명 ⬇️
Gateway?
우선 Gateway가 무엇인지 부터 알아보자.
3학년때 학교에서 배웠는데,, 뭔지는 대충 알아도 자세히는 기억이 안나서...
Gateway
게이트웨이는 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어, 즉 다른 네트워크로 들어가는 관문 역할을 하는 네트워크 포인트이다. 넓은 의미로는 종류가 다른 네트워크 간 통로의 역할을 하는 장치이다.
[출처] 위키피디아
라우터, 스위치와 같이 배웠던 기억이 난다.
스위치로 연결되는 장치들이 모여 네트워크가 되고
네트워크 간의 통신이 가능하도록 만들어주는 게 라우터이고
그 라우터는 서로 다른 네트워크끼리 통신할 때
패킷의 목적지인 게이트웨이로 가는 길을 알려준다라고 배웠던 것 같은..
그럼 NAT Gateway는?
Network Address Translation이라는 이름답게
사설 IP 주소(Network Address)에 공인 IP 주소를 가진 게이트웨이를 연결하여
게이트웨이의 IP 주소로 통신할 때
게이트웨이의 공인 IP 주소 -> 사설 네트워크 IP 주소 의 방식으로 번역되는 것 같이
통신이 가능하도록 하는 것으로 이해했다.
위 사진의 설명만 보아도
우리 상황에 딱 맞는 솔루션임을 알 수 있다.
어플리케이션 서버에
NAT Gateway 설정을 잡아 도입만 해주면 해결된다.
2) NAT Gateway 도입
2-1) NAT Gateway 생성
NAT Gateway 생성을 누르면
아래와 같이 화면이 나타난다.
외부와의 통신이 필요하므로 공인 IP를 가지도록 설정하고,
적용시킬 VPC와 게이트웨이를 사용할 서브넷을 선택한다. (서브넷이 없으면 서브넷 생성을 하면 된다.)
2-2) NATGW Route 설정하기
우리는 현재 사설 IP를 가지는
Private Area인 어플리케이션 서버(=> Subnet 지원 유형이 사설)에 대한 Route를
NAT Gateway로 잡아주어야 하니 위와 같이 선택하고 Routes 설정을 해준다.
Target Type을 NATGW로 설정하고 이전에 만들어놓은 NAT Gateway를 선택한다.
설정 끝!
3) 마무리
난관에 봉착하고 팀원들과 고민했던 시간에 비하면
너무나도 간단하게 해결되었던 이슈였다,,
짧은 포스팅임에도 많이 기억에 남는 것은
학교에서 배웠던 것을 실제로 사용해보았다는 느낌을 받았기 때문인 것 같다.
정확히 알고있었던 것은 아니었지만
알고 있는 것을 적재적시에 쓸 수 있는 것도 능력이라는 것을 다시 한번 깨달았다..ㅎ
'🎉 프로젝트 > 🍀 Naver Cloud' 카테고리의 다른 글
[NCP] 어플리케이션 로그 쉽게 수집하기 with Effective Log Search & Analytics (2) | 2024.01.31 |
---|---|
[NCP] 어플리케이션 성능 모니터링하기 with Pinpoint (0) | 2024.01.31 |
[NCP] 무중단 배포 환경 구축하기 with Jenkins (0) | 2024.01.15 |
[NCP] Oriental Unity 프로젝트 (0) | 2024.01.15 |
[NCP] Multipart 파일 업로드 with Object Storage (2) | 2023.10.02 |