여기서는 VPC를 사용해보겠습니다.
아래 사진과 같은 구성을 가질 것이며
왼쪽 서브넷이 퍼블릭 서브넷
오른쪽 서브넷이 프라이빗 서브넷입니다.
기본 VPC가 존재하지만 여기서는 VPC를 새로 만들겠습니다.
서비스 > 네트워킹 및 콘텐츠 전송 > VPC
로 가줍니다.
그리고 VPC생성을 누릅니다.
그리고 이름과 IPv4 CIDR을 설정해 줍니다.
이렇게 VPC를 만들면 기본 라우팅 테이블이 생기고 가상 라우터에 연결됩니다.
서비스 > 네트워킹 및 콘텐츠 전송 > 서브넷
으로 이동해줍니다.
그리고 서브넷 생성을 누릅니다.
이후 서브넷을 생성할 VPC와 서브넷 이름과 가용영역 IPv4 서브넷 CIDR 블록을 설정해 줍니다.
기본 라우팅 테이블을 사용하지 않고 새로 만들어 사용하겠습니다.
서비스 > 네트워킹 및 콘텐츠 전송 > 라우팅 테이블
로 이동해줍니다.
그리고 라우팅 테이블 생성을 누릅니다.
이후 라우팅 테이블 이름과 라우팅 테이블을 생성할 VPC를 설정해 줍니다.
이렇게 생성된 라우팅 테이블은 서브넷과 연결이 이루어지지 않았습니다.
라우팅 테이블에서 서브넷 연결로 들어가 서브넷 연결 편집을 누릅니다.
이후 연결할 서브넷을 설정해줍니다.
앞서 VPC내부에 서브넷을 만들고 라우팅 테이블도 연결해 줬습니다.
그러나 서브넷은 외부 인터넷과 통신할 수단이 없습니다.
외부 인터넷 통신을 위해 인터넷 게이트웨이를 만들겠습니다.
서비스 > 네트워킹 및 콘텐츠 전송 > 인터넷 게이트웨이
로 이동해줍니다.
그리고 인터넷 게이트웨이 생성을 누릅니다.
이후 인터넷 게이트웨이 이름을 설정해줍니다.
이렇게 만든 인터넷 게이트웨이를 VPC에 연결해줘야 합니다.
앞서 만든 라우팅 테이블은 들어오는 방향에 대한 정보만 있고 나가는 정보에 대한 정보는 없습니다. 이를 추가해줘야합니다.
라우팅 테이블에서 라우팅 테이블 편집을 누릅니다.
퍼블릭 서브넷 환경을 만들었으니 이제 EC2로 서버를 만들고 퍼블릭 서브넷에서 통신해 보겠습니다.
보안 그룹을 생성해 보겠습니다.
서비스 > 컴퓨팅 > 네트워크 및 보안> 보안 그룹
으로 갑니다.
이후 보안 그룹 생성을 눌러줍니다.
그리고 보안 그룹 이름과 보안 그룹을 적용할 VPC, 설명, 인바운드 규칙을 설정해줍니다.
앞에서 만들었던 VPC와 서브넷을 대상으로 EC2를 만들어 줍시다.
보안 그룹도 앞서 만들었던 것으로 설정해줍니다.
이전글을 참고해 주시면 됩니다.
EC2 사용하기
EC2에 SSH를 통해 접속합니다.
이후 슈퍼 유저로 변경합니다.
sudo su -
이후 http 데몬을 설치합니다.
yum install httpd -y
그리고 http 데몬을 실행합니다.
systemctl start httpd
외부 웹페이지를 내려받습니다.
curl -L https://bit.ly/afbtest02 > /var/www/html/index.html
외부 인터넷과 통신이 가능한지 보겠습니다.
ping google.com
위와 같이 뜬다면 정상적으로 작동하는 것입니다.
컨트롤+C를 통해 ping통신을 중지합니다.
http로 접속이 가능한지 테스트 해보겠습니다.
curl google.com
아래와 같이 나온다면 정상적으로 작동한 것입니다.
이번에는 프라이빗 서브넷을 생성해보겠습니다.
퍼블릭 서브넷을 생성할 때와 같습니다.
퍼블릭 서브넷의 라우팅 테이블 생성할 때와 같습니다.
NAT게이트웨이는 프라이빗 서브넷에서 자원이 외부에 요청을 보내기 위해 사용하는 게이트웨이입니다.
그러나 외부에서 프라이빗 서브넷으로의 요청은 불가능합니다.
NAT 게이트웨이는 퍼블릭 NAT 게이트웨이와 프라이빗 NAT 게이트웨이로 분류가능합니다.
퍼블릭 NAT 게이트웨이는 IP주소를 변환하여 인터넷 구간과 통신하는 연결 유형입니다.
프라이빗 NAT 게이트웨이는 IP주소를 변환하여 다른 VPC나 온프레미스 네트워크와 연결하는 유형입니다.
서비스 > 네트워킹 및 콘텐츠 전송 > NAT 게이트웨이
로 이동해줍니다.
NAT 게이트웨이 생성하기를 누릅니다.
이후 이름과 서브넷 연결 유형 탄력적 IP할당을 설정해줍니다.
여기서 서브넷은 Private 서브넷이 아닌 Public서브넷에 연결해줘야 합니다.
프라이빗 라우팅 테이블에 정보를 내보낼 수 있도록 라우팅을 편집해 줍니다.
EC2를 만들고 통신을 해보겠습니다
퍼블릭 서브넷에서 EC2 생성하기와 같습니다.
고급 세부 정보에 다음과 같이 추가해줍시다.
#!/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
위는 ssh로 접속할시 비밀번호는 qwe123으로 설정하는 것입니다.
프라이빗 서브넷의 EC2는 퍼블릭 IP 주소가 없습니다. 그리고 애초에 프라이빗 서브넷에 있기 때문에 외부에서 접근할 수 없습니다.
그렇기 때문에 퍼블릭 EC2를 이용해 프라이빗 EC2에 접근하겠습니다.
퍼블릭 EC2의 SSH로 접속합니다.
ssh ec2-user@[EC2의 프라이빗 IP 주소]
접속을 했다면 ping테스트를 해봅니다.
ping google.com
문제가 없다면 NAT게이트웨이가 정상적으로 작동한 것입니다.
그러나 외부에서는 요청을 할 수 없습니다.
이제 모든 자원을 삭제해줍시다.