[aws] 프라이빗 서브넷 생성하기(feat. NAT 게이트웨이)
이전 내용
[aws] Bastion Hub 만들기
이전 내용 Bastion Hub 란? [Bastion Hub 개요]Bastion Hub는 클라우드 환경에서 보안과 관리의 편의성을 높이기 위해 설계된 플랫폼으로, 주로 클라우드 애플리케이션과 서비스의 보안 접근성을 지원
puppy-foot-it.tistory.com
프라이빗 서브넷 생성하기
이전에 만들었던 서브넷은 퍼블릭으로 외부 사용자를 위한 서버이다.
[aws] VPC, 서브넷, IGW, 라우팅 테이블 설정하기
프라이빗 서브넷은 외부 사용자를 위한 서버가 아닌, 내부용 (예를 들어 고객정보 DB, 회계정보 DB 같은 중요한 회사 내부 자료) 서버로, 퍼블릭 서브넷과 생성 방법은 비슷하나, 과정 중에 몇 가지 차이가 있다.
이번에는 프라비잇 서브넷을 두 개를 만드려고 한다.
[VPC] - [서브넷] 에서 '서브넷 생성' 을 클릭하여 서브넷의 이름, 가용 영역, CIDR 블록을 설정해 주고 생성한다. (여기는 퍼블릭과 과정이 같다. 총 2개니까 한 번 더 하면 된다.)
이렇게 두 개의 서브넷이 생성되었다,
그리고나서 라우팅 테이블도 설정해주면 되는데, 라우팅 테이블을 생성하는 방법 역시 퍼블릭 서브넷과 동일하다.
이제 여기서 다른 점이 있는데, 퍼블릭 서브넷의 경우 외부 접속자를 위해 인터넷 게이트웨이(IGW)를 생성하고 연결하는 데 반해, 프라이빗 서브넷은 내부용이므로 인터넷 게이트웨이를 생성하는 것이 아니다.
바로, NAT 게이트웨이를 생성하는 것인데, 그전에 NAT 과 NAT 게이트웨이에 대해 알아보자.
NAT과 NAT 게이트웨이
★ NAT이란?
NAT(네트워크 주소 변환, Network Address Translation)는 IP 패킷의 주소 정보를 변경하여 서로 다른 네트워크 간의 통신을 가능하게 하는 기술이다. NAT는 주로 사설 네트워크와 공인 네트워크 간의 연결을 설정하고, IP 주소의 고갈 문제를 해결하기 위해 설계되었다.
[NAT의 주요 기능]
- 주소 변환: NAT는 사설 IP 주소를 공인 IP 주소로 변환하여, 여러 장치가 인터넷에 연결할 수 있도록 돕는다. 이를 통해 사설 네트워크에 있는 수많은 장치들이 동일한 공인 IP 주소를 공유하게 된다.
- IP 주소 보안: NAT를 사용하면 사설 네트워크의 IP 주소가 외부에 노출되지 않기 때문에, 보안 측면에서 장점이 있다. 외부에서 직접 접근할 수 없기 때문에 네트워크가 어느 정도 보호된다.
- IP 주소 절약: NAT를 통해 여러 사설 IP 주소를 하나의 공인 IP 주소로 매핑함으로써, IP 주소를 절약하고 관리할 수 있다.
[NAT의 종류]
NAT는 주로 다음과 같은 방식으로 구분된다.
- 정적 NAT: 사설 IP 주소와 공인 IP 주소 간에 1:1 매핑을 제공한다. 특정 장치에 대해 항상 동일한 공인 IP 주소를 할당한다.
- 동적 NAT: 사설 IP 주소가 공인 IP 주소 풀의 공인 IP 주소 중 하나로 변환된다. 장치가 인터넷에 연결될 때마다 공인 IP 주소가 할당될 수 있다.
- PAT(포트 주소 변환) 또는 NAT overload: 많은 사설 IP 주소가 하나의 공인 IP 주소를 공유하게 만들며, 포트 번호를 사용하여 구분한다. 이 방식은 가장 일반적으로 사용된다.
★ NAT 게이트웨이란?
NAT 게이트웨이는 NAT 기능을 수행하는 장비 또는 소프트웨어를 의미하며, NAT 게이트웨이는 사설 네트워크와 공인 네트워크 간의 트래픽을 관리한다.
[NAT 게이트웨이의 역할]
- 패킷 라우팅: NAT 게이트웨이는 내부 네트워크와 외부 네트워크 간의 패킷을 라우팅하여 필요한 주소 변환을 수행한다.
- 세션 관리: 외부에서 들어오는 요청이 어떤 내부 장치로 전달되어야 할지 결정한다.
- 트래픽 모니터링: NAT 게이트웨이는 내부와 외부 간의 트래픽을 모니터링하여 비정상적인 활동이나 보안 위협을 감지할 수 있다.
NAT 게이트웨이 생성
NAT 게이트웨이는 [VPC] - [NAT 게이트웨이] 로 들어간 다음 'NAT 게이트웨이 생성' 버튼 클릭
NAT 게이트웨이 설정화면에서 이름을 입력하고, NAT 게이트웨이를 생성할 서브넷을 입력해야 하는데,
여기서 중요한 점은 NAT 게이트웨이는 반드시 퍼블릭 서브넷에 생성해야 한다는 것이다.
그리고나서 하단으로 가서 연결 유형은 '프라이빗'을 선택하고 프라이빗 주소 할당 방법을 선택해줘야 하는데, 만약에 이전에 받아둔 ELASTIC IP(고정 IP)가 있다면 '사용자 지정'을, 그렇지 않다면 '자동 할당'을 선택해주면 된다.
※ Elastic IP 발급법에 대해서는 따로 설명 예정
이렇게 하면 NAT 게이트웨이가 생성되고, 퍼블릭 서브넷에서 IGW의 라우팅을 편집했던 것처럼 NAT 게이트웨이 역시 라우팅을 편집해줘야 한다.
[라우팅 테이블]로 넘어와서 프라이빗 서브넷의 라우팅 테이블을 선택한 뒤 하단의 라우팅 탭에서 '라우팅 편집' 클릭하고,
여기에 '라우팅 추가' 버튼을 눌러 [대상]에 앞서 생성했던 NAT 게이트웨이를 선택하고 '변경 사항 저장'을 클릭하면 된다.
그리고나서 라우팅 탭 옆에 있는 서브넷 연결 탭에서 서브넷 연결 편집을 클릭하여 프라이빗 서브넷을 선택하고 '연결 저장'을 눌러 서브넷을 연결해주면 된다.
그리고 보안 그룹으로 넘어와서 '인바운드 규칙'에서 규칙에 '사용자 지정 TCP - 8080'을 추가해준다.
또한, 'ICMP'를 열어줘야 한다. ICMP는 서버끼리 통신할 수 있게 해준다.
★ SSH / HTTP / HTTPS / ICMP란?
SSH (Secure Shell)
- 정의: SSH는 네트워크 프로토콜의 하나로, 보안이 필요한 원격 로그인 및 기타 네트워크 서비스에 사용된다.
- 특징: 데이터를 암호화하여 보안성을 높인다. 원격 서버에 안전하게 접근하고 관리할 수 있는 기능을 제공한다. 일반적으로 시스템 관리 및 파일 전송에 사용된다.
▶ 서버에 안전하게 접속하기 위한 방법
HTTP (Hypertext Transfer Protocol)
- 정의: HTTP는 웹에서 데이터를 전송하기 위한 프로토콜이다.
- 특징: 텍스트, 이미지, 비디오 등 다양한 형식의 데이터를 전송할 수 있다. 기본적으로 암호화되지 않아 보안에 취약할 수 있다. 웹 브라우저와 서버 간의 통신에서 기본적으로 사용된다.
▶ 웹 페이지나 데이터를 전송하는 규칙. 그러나 보안이 없어 해커의 공격에 취약.
HTTPS (HTTP Secure)
- 정의: HTTPS는 HTTP에 보안을 추가한 프로토콜로, SSL/TLS를 통해 통신을 암호화한다.
- 특징: 데이터 전송 시 보안이 강화되어 신뢰성이 높다. 웹사이트의 신뢰성을 나타내며, 금융 거래 및 개인 정보 보호에 필수적이다. 브라우저 주소창에 자물쇠 아이콘이 표시되어, 사용자가 안전한 연결임을 인지할 수 있도록 한다.
▶ 안전하게 데이터를 전송하기 위한 HTTP의 버전. 정보가 암호화되어 안전하며 웹 브라우저 주소창에 자물쇠 아이콘이 나타나, 안전한 연결임을 알려줌.
ICMP (인터넷 제어 메시지 프로토콜)
- 용도: 네트워크에서 오류 보고 및 진단 정보를 제공하는 프로토콜.
- 특징: 컴퓨터나 라우터 간의 통신 문제를 진단하는 데 사용된다. 예를 들어, 특정 웹사이트가 접근이 불가능할 때, 문제의 원인을 찾는 데 도움이 된다. Ping이라는 명령어가 ICMP를 사용하여 대상 호스트의 응답 여부를 확인한다.ICMP는 데이터를 전송하는 것이 아니라, 메시지를 전달하여 상태를 알려준다.
- 사용 예시: Ping: 서버가 살아 있거나 네트워크 연결이 정상인지 확인하는 데 사용된다.- Traceroute: 데이터가 인터넷을 통해 이동할 때 통과하는 경로를 보여준다
마지막으로 프라이빗 서브넷에 인스턴스를 생성해주면 된다.
다음 내용
[aws] 3-Tier의 첫걸음: 도메인 톰캣 화면으로 바꾸기
이전 내용 [aws] 프라이빗 서브넷 생성하기(feat. NAT 게이트웨이)이전 내용 [aws] Bastion Hub 만들기이전 내용 Bastion Hub 란? [Bastion Hub 개요]Bastion Hub는 클라우드 환경에서 보안과 관리의 편의성을
puppy-foot-it.tistory.com