[AWS] VPC 구성하기 Hands-on

Falcon·2022년 12월 20일
1

aws

목록 보기
27/33

최종 구성도

1. VPC 생성

1개의 Available Zone에

Public Subent 1개, Private Subnet 1개를 구성해보자.

2. Subnet 생성

총 2개의 subnet 을 같은 Region, 같은 Available Zone 에 생성하자.

3. Internet Gateway 생성

Public vs Private Subnet 의 결정 여부는 'Internet Gateway' 라우팅 여부다.

Public Subnet 에 Internet Gateway 를 연결한다.

4. NAT Gateway 생성

Public Subnet 에 연결된 NAT Gateway를 생성한다.

NAT Gateway 는 인터넷에 연결되어야 하며, Elastic IP 가 필요하므로
Private 이 아닌 Public Subnet 에 위치해야한다.

Private Subnet - NAT Gateawy 라우팅 매핑

  1. 별도의 라우팅 테이블을 만들어 private subnet 과 연결한다.
  2. 생성한 라우팅 테이블의 모든 Inbound 트래픽을 NAT로 매핑한다.

5. EC2 인스턴스 생성

Private Subnet 내에 생성

Public Subnet 내에 생성


Elastic IP Public instance에 연결

탄력적 IP 주소를 생성하고 Public Subnet 에 생성한 EC2 Instance 에 할당한다.

Ping test

탄력적 IP를 할당받은 퍼블릭 인스턴스에 핑 응답이 오는지 테스트

6. Flow Logs 활성화하기

Private Subnet 이 정상적으로 NAT Gateway 를 타고 외부로 인터넷 접속이 가능한지 테스트하기 위해 필요하다

  1. Private subnet 을 선택 - 플로우 로그 생성

  2. CloudWatch Logs 로그그룹 생성

7. Local -> Public -> Private 접속하기

로컬 컴퓨터에서 SSH 를 통해 Public Subnet 에 존재하는 EC2 Instance 에 접속하고,
public instance 에서 private instance 로 SSH 로 접속하게한다.

이 과정에서 public instance 를 bastion host 라고 칭하기도 한다.

물론 Security Group 에서 동일 VPC 의 SSH 연결을 허용하는 정책이 설정되어있어야한다.
(Public instance -> Private instance 연결 허용)

Local -> Public instance SSH 접속

$ ssh -i [key파일명] ec2-user@[public-instnace-IP주소]

Public instance -> Private instance SSH 접속

# 현재 Public subnet 에 존재하는 인스턴스에 연결된 상태다.
[ec2-user@ip-Public-Instance주소]$ ssh -i [key파일명] ec2-user@[private-instance-IP주소]

⚠️ Warning

⚠️ ssh 연결시 아래와 같은 에러 메시지가 발생한다면
키파일의 권한 설정이 잘못된 것이다.

Permissions 0777 for [키파일] are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "./AWS-ImmersionDay-Lab.pem": bad permissions

다음과 같이 권한 설정하면 오류가 해결된다.

$ chmod 400 [키파일]

Private subnet 에서 인터넷 연결 테스트

ICMP Ping 을 사용하여 외부 인터넷으로부터 응답을 받는지 테스트해볼 것이다.

$ ping ietf.org

Private subnet 의 인스턴스에서 외부 ietf.org 에 Ping test 완료!


🔗 References

profile
I'm still hungry

0개의 댓글