ABOUT ME

Today
Yesterday
Total
  • AWS) Private Subnet 에서 NAT Gateway로 EC2 instance 관리 해보기 (+ Bastion Server)
    Cloud/AWS 2022. 9. 14. 14:14
    실습 환경 : AWS Console (2022/9), Visual Studio Code
    실습 목적 : NAT 게이트웨이와 Bastion server 활용하여  네트워크를 구성해본다.

    Private Subnet 상에서 EC2 instance를 생성할 경우?

    • Private Subnet에 위치한 AWS resource (EC2, RDS 등)은 직접적인 인터넷 접속이 불가능 하다.
    • Private Subnet에 위치한 AWS resource는 외부로부터 직접 접근을 허용하지 않기 위해 구성한다.


    Private Subnet 상에서 EC2 instance를 관리하는 방법?

    • Private subnet에 위치한 AWS resource가 인터넷에 접속하여 사용하기 위해서는 NAT 게이트웨이 서비스를 사용한다.


    NAT 게이트웨이 서비스란?

    • private subnet이 인터넷과 연결을 수행할수 있게 해주는 서비스다.
    • 통상적으로, private subnet에 위치한 AWS 리소스가 인터넷에 연결하여 사용할 때 활용하는 서비스이다.
    • 인터넷과 단방향 통신만 수행하기 때문에 일반 client가 private subnet에 있는 AWS 리소스 접근은 불가능하다.
    • NAT 게이트웨이 서비스 인스턴스는 public subnet에 위치해야 private subet에 접속할 수 있다.
    • NAT 게이트웨이 서비스는 EIP (Elastic IP)를 사용한다.


    Bastion Server 란?

    • private subnet에 위치한 EC2 instance를 제어하는 목적으로 사용하는 EC2 instance
    • public subnet에 위치한 bastion server를 통해 private subnet에 위치한 EC2 instance를 제어한다.


    Private EC2 Instance 생성


     

    EC2 메뉴 -> 인스턴스에서 인스턴스 시작 클릭 -> 이름 및 태그, 키페어, 네트워크 설정
     [ 네트워크 설정 ]
    - VPC
    - 서브넷: private subnet 선택
    - 퍼블릭 IP 자동 할당: 비활성화 선택
    - 방화벽: 기존 보안 그룹 선택 -> ssh (22번포트)


    Bastion Server 생성


    EC2 메뉴 -> 인스턴스에서 인스턴스 시작 클릭 -> 이름 및 태그, 키페어, 네트워크 설정
     [ 네트워크 설정 ]
    - VPC
    - 서브넷: public subnet 선택
    - 퍼블릭 IP 자동 할당: 활성화 선택
    - 방화벽: 기존 보안 그룹 선택 -> ssh (22번포트) ,web (80, 443번 포트)


    EIP 생성


    EC2 메뉴 -> 탄력적 IP에서 탄력적 IP 주소 할당 클릭 -> 태그 설정 -> 할당


    NAT 게이트웨이 생성


    VPC 메뉴 -> NAT 게이트웨이에서 NAT 게이트웨이 생성 클릭
     [ NAT게이트웨이 생성 ]
    - 이름
    - 서브넷: public subnet 선택
    - 연결 유형: 퍼블릭
    - 탄력적 IP 할당 ID: 위에서 만든 EIP 선택
    - 태그: Name 태그
    - NAT 게이트웨이 생성


    라우팅 테이블 생성 및 편집


    VPC 메뉴 -> 라우팅 테이블에서 라우팅 테이블 생성 클릭
     [ 라우팅 테이블 생성 ]
    - 이름
    - VPC
    - 태그: Name 태그
    - 라우팅 테이블 생성

    라우팅 테이블에서 생성한 라우팅 테이블 선택 -> 라우팅 -> 라우팅 편집
     [ 라우팅 편집 ]
    - 라우팅 추가를 클릭하면 새로운 라우팅 편집 입력 창이 생성된다.
    - 첫번째 대상: 0.0.0.0/0
    - 두번째 대상: NAT 게이트웨이 -> 새로 생성한 NAT게이트웨이 선택
    - 변경 사항 저장


    Bastion Server를 통해 Private Subnet에 접속


    visual studio code에서 bastion server에 연결 -> bastion server 홈 디렉토리에 키 파일을 드래그 앤 드롭으로 가져오기

    key 파일 권한 변경 -> ssh 명령어로 private ec2 instance에 원격 접속
     [ key 파일 권한 변경 ]
    - chmod 400 [키 파일 이름]
    [ ssh 명령어 ]
    - ssh -i [키 파일 이름] [유저]@[private IP]

     

    추가로 Bastion Server 생성시 보안그룹 규칙에서 내 IP 한정으로 지정하여 관리할 수 있다.


     

     

    댓글

Designed by Tistory.