지난번엔 퍼블릭 서브넷을 야무지게 구성해보았습니다
이어서 이번엔 프라이빗 서브넷 구성을 시작하겠습니다!
Amazon VPC로 퍼블릭 및 프라이빗 서브넷 구성하기
실습의 목표는 Amazon VPC를 생성하여 퍼블릭/프라이빗 서브넷 환경을 구성하고 통신을 확인하는 것입니다!
프라이빗 서브넷 생성하기
1. 서브넷 생성하기
저번 실습과 거의 동일하게 진행된다!
서비스 > VPC > 서브넷에서 서브넷 생성을 누른다
이렇게 서브넷을 설정하고 생성해준다!
2. 라우팅 테이블 생성하기
라우팅 테이블에 들어가서 라우팅 테이블 생성을 눌러
1. 라우팅 테이블 설정에서 이름은 'CH3-Private-RT'로 입력하고 VPC는 CH3-VPC로 선택
2. 라우팅 테이블 생성 누르기
3. 라우팅 테이블 메뉴에 다시 들어가서 생성한 라우팅 테이블 선택
4. 서브넷 연결 탭 클릭
5. 서브넷 연결 편집 누르기
6. 'CH3-Private-Subnet'에 체크
7. 연결 저장 누르기
로 설정한다!
3. NAT 게이트웨이 생성하기
프라이빗 서브넷은 독립된 네트워크에서만 내부 통신하는 환경이지만, 외부 인터넷 통신을 위해 NAT 게이트웨이를 활용할 수 있다
이런 NAT 게이트웨이를 생성할 때는 기본적으로
이름, 서브넷, 연결 유형(퍼블릭/프라이빗), 탄력적 IP 할당 ID
를 정의해야 한다!
여기서 NAT 게이트웨이 연결 유형은 퍼블릭과 프라이빗으로 나누어진다
퍼블릭은 NAT 게이트웨이를 통해 IP 주소를 변환하여 인터넷 구간과 통신하는 연결 유형이고
프라이빗은 NAT 게이트웨이를 통해 IP 주소를 변환하여 다른 VPC나 온프레미스 네트워크와 연결하는 유형이다
(이번 실습에서는 외부 인터넷 구간과 통신하는 퍼블릭 유형을 사용)
그리고 탄력적 IP 주소는 고정된 공인 IP 주소를 의미하는데
기본적으로 AWS에서 부여하는 퍼블릭 IP 주소는 유동적으로 주소를 관리한다
예를들어, EC2 인스턴스에 퍼블릭 IP 주소를 할당했다고 가정하면, EC2 인스턴스를 중지한 후 다시 시작할 때,
할당받은 퍼블릭 IP 주소는 다른 주소로 변경된다
=> 이를 해결할 수 있는 주소인 탄력적 IP 주소는 특정 이벤트가 있어도 할당받은 주소를 그대로 유지하는 특징이 있다!
왼쪽 VPC 메뉴에서 NAT 게이트웨이를 선택하고 위쪽에 있는 NAT 게이트웨이 생성을 누르고
다음과 같이 설정하고 NAT 게이트웨이 생성을 누른다
프라이빗 서브넷의 외부 인터넷 구간 통신을 위해 NAT 게이트웨이를 사용하는 측면에서
프라이빗 서브넷을 선택해야 한다고 착각할 수 있는데
NAT 게이트웨이가 위치하는 서브넷을 의미하므로 인터넷 게이트웨이가 연결된 퍼블릭 서브넷을 선택해야함!
이런 식으로 생성된걸 확인할 수 있다
세부 정보를 살펴보면
연결 유형 : 외부 인터넷 구간과 연결하는 퍼블릭 유형
상태 : 일정 시간이 지나면 'Available' 상태가 됨
탄력적 IP 주소 : NAT 게이트웨이가 사용할 고정된 공인 IP 주소
서브넷 : NAT 게이트웨이가 생성된 서브넷으로, 우리가 생성한 퍼블릭 서브넷에 위치
VPC : NAT 게이트웨이가 생성된 VPC
가 있다!
4. 라우팅 테이블 편집하기
프라이빗 서브넷의 라우팅 테이블은 로컬 통신 경로만 있을 뿐 외부 인터넷 구간으로 갈 수 있는 경로 정보는 없다!
=> 라우팅 테이블 수정 작업을 수행
1. 라우팅 테이블로 들어가서 프라이빗 라우팅 테이블을 체크한 후 라우팅 탭을 클릭하고 라우팅 편집을 누른다
이렇게 타깃 대상에 NAT 게이트웨이를 선택하고 생성한 NAT 게이트웨이 ID를 선택하고 변경 사항 저장을 누른다
이렇게 프라이빗 서브넷 환경 구성이 완료되었고 이제 프라이빗 서브넷에 EC2 자원을 생성하고 통신을 확인해야 한다!
프라이빗 서브넷 통신 확인하기
1. EC2 인스턴스 생성하기
인스턴스 생성은 많이 해봤으니 간단하게 넘어가겠습니다!
1. 서비스 > EC2 > 인스턴스 메뉴를 선택하고 인스턴스 시작을 누른다
2. 이름 및 태그에서 이름 설정(CH3-Private-EC2)
3. 키 페어(로그인)에서 키 페어 이름을 기존에 생성한 키 페어 파일로 선택
4. Network settings(네트워크 설정)에서 편집 누르기
5. VPC는 CH3-VPC 선택
6. 서브넷은 CH3-Private-Subnet 선택
7. 퍼블릭 IP 자동 할당은 비활성화 선택
8. 방화벽(보안 그룹)은 보안 그룹 생성 선택
9. 고급 세부 정보에서 사용자 데이터는 다음 코드 입력(SSH 설정)
#!/bin/bash
(
echo "qwe123"
echo "qwe123"
) | passwd --stdin ec2-user
sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
systemctl restart sshd
10. 인스턴스 시작 누르기
11. 모든 인스턴스 보기 누르기
EC2 인스턴스를 생성할 때 고급 세부 정보 영역의 사용자 데이터는
EC2 인스턴스가 부팅할 때 미리 수행하는 명령어이다!
프라이빗 서브넷에 위치한 EC2 인스턴스에는 퍼블릭 IP 주소가 없다
=> SSH 접근을 위해 프라이빗 IP 주소를 메모한다!
2. EC2 인스턴스에서 외부 인터넷 통신 확인하기
생성된 EC2 인스턴스는 퍼블릭 IP 주소가 없는 프라이빗 서브넷에 위치한다
=> 현재 작업 중인 PC에서 SSH 접근을 바로 수행할 수 없는 관계로, 퍼블릭 서브넷의 EC2 인스턴스에 SSH로 접근한 후 생성된 EC2 인스턴스의 프라이빗 IP 주소로 다시 접근한다!
#프라이빗 서브넷의 EC2 인스턴스로 SSH 접근
ssh ec2-user@[복사한 프라이빗 IP 주소]
이렇게 하고 yes 를 한번 눌러주고 pasword 를 qwe123(고급 세부 정보에서 설정함) 를 입력해준다
이렇게 화면이 뜨면 프라이빗 서브넷의 EC2 인스턴스로 SSH 접근이 성공한 것이다!
이제 외부 인터넷 통신을 확인해보면
# 프라이빗 EC2 인스턴스 SSH 터미널 접속
# 외부 인터넷 구간으로 ping 테스트
ping google.com
...
# 외부 인터넷 구간으로 HTTP 접근 테스트 (인터넷 통신을 할 경우 공인 IP 주소 확인)
curl ipinfo.io/ip
이렇게 프라이빗 서브넷에 위치한 EC2 인스턴스는 외부 인터넷 구간의 대상과 정상적으로 통신이 가능하다
=> 하지만, 퍼블릭 IP 주소가 없는 대상으로 외부 인터넷 구간에서 프라이빗 서브넷의 EC2 인스턴스로 통신이 불가능하다
출발지 | 목적지 | 통신 여부 |
퍼블릭 서브넷 | 외부 인터넷 | 가능 |
외부 인터넷 | 퍼블릭 서브넷 | 가능 |
프라이빗 서브넷 | 외부 인터넷 | 가능 |
외부 인터넷 | 프라이빗 서브넷 | 불가능 |
이렇게 실습이 끝났다~~😎
이제 생성된 모든 자원을 삭제해보자 (삭제 안하면 돈이 계속 나간답니당..)
3. 실습을 위해 생성된 모든 자원 삭제하기
1. Amazon EC2 인스턴스 삭제하기
EC2 > 인스턴스 > 인스턴스 선택 > 인스턴스 상태 > 인스턴스 종료를 순서대로 클릭하여 삭제한다
2. NAT 게이트웨이 삭제하기
서비스 > VPC > NAT 게이트웨이 > NAT 게이트웨이 선택 > 작업 > NAT 게이트웨이 삭제를
순서대로 클릭한 후 '삭제'를 입력한다
(삭제 되려면 시간이 쫌 걸림)
3. 탄력적 IP 삭제하기
서비스 > VPC > 탄력적 IP > 탄력적 IP 선택 > 작업 > 탄력적 IP 주소 릴리스를 순서대로 클릭한 후 삭제
4. VPC 삭제하기
서비스 > VPC > VPC 선택 > 작업 > VPC 삭제를 순서대로 클릭한 후 '삭제'를 입력한다
이렇게 하면 모든 실습이 마무리 된다!
'Infra > AWS 교과서' 카테고리의 다른 글
[AWS 교과서] 4장 - AWS 부하분산 서비스(2) (3) | 2024.01.12 |
---|---|
[AWS 교과서] 4장 - AWS 부하분산 서비스(1) (0) | 2024.01.07 |
[AWS 교과서] 3장 - AWS 네트워킹 서비스(4) (2) | 2024.01.07 |
[AWS 교과서] 3장 - AWS 네트워킹 서비스(3) (2) | 2024.01.04 |
[AWS 교과서] 3장 - AWS 네트워킹 서비스(2) (1) | 2024.01.03 |