Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

AWS Private subnet (VPC, NAT gateway, Bastion)

AWS Private subnet (VPC, NAT gateway, Bastion)

오늘은 NAT Gateway, Bastion이 필요한 상황을 알아보고 AWS 네크워크 환경을 구성해볼 예정입니다.

VPC, Subnet 구성

  • VPC, Subnet을 먼저 생성하여 줍니다. Untitled-52

    Untitled-53

  • 구성이 완료되었다면 아래 그림과 같이 설정됩니다. Untitled-54

  • 라우팅에 IGW를 연결하여 주면 Public Subnet 입니다.
  • IGW를 생성하고 연결하여 줍니다.
    Untitled-55

  • 라우팅 테이블 설정을 다시 하여줍니다.
    Untitled-56

    Untitled-57

    Untitled-58

    Untitled-59

    Untitled-60

    Untitled-61


Bastion Instance란?

  • Private Subnet에 인스턴스를 구성하여, 외부 서비스에 접근하지 못하도록 구성하는 경우에 사용합니다. ( 내부 백오피스 )
  • VPC내 Private Subnet에 바로 접근이 불가능하기에 Bastion(Public Subnet)을 인스턴스로 구성하여 접속 후 다시 같은 VPC에 Private IP로 접속하는 개념입니다.
  • 인스턴스를 구성하였다면, SSH 연결을 위해 Security group inbound ssh 를 추가하여 줍니다. 2023-10-17-2-47-03

  • Public Subnet에 임의의 인스턴스(Bastion)를 띄워줍니다. Untitled-62

  • Private Instance에 다이렉트로 접속하려고 하면 다음과 같이 에러가 발생합니다. Untitled-63

  • Bastion을 통하여 우회 접속해보겠습니다.
  • SSH 파일이 필요하기에 업로드하여 줍니다.

    1
    
      $ scp -i pemfilename.pem filename user@public-ip:~/file_directory
    

    Untitled-64


Private Subnet에 구성된 Instance를 외부와 연결하려면 어떻게 해야할까?

  • Private Subnet의 인스턴스는 외부로 나갈 수 있는 루트가 막혀있다. Untitled-65

  • NAT GATEWAY 로 이를 해결 가능하다.
  • Private 인스턴스들만 외부와 통신하고 싶은 경우 사용한다. ( 인터넷 연결로 라이브러리 다운, 일방적인 데이터 요청 .. )
  • NAT Gateway를 Public subnet으로 만들어 통신 길을 만들어준다. ( 대다수의 블로그에서 NAT Gateway는 Public subnet이라고만 써 있는데, 사용 용도가 외부로 연결하기 위해서라는 의미로 해석) Untitled-66

  • 이 때, 외부와 통신하기 위해서는 고정 IP가 필수적인데 이를 Elastic IP로 설정하여 준다. Untitled-67

  • 위 작업이 끝나면, Private Subnet과 연결된 라우터에 NAT가 존재하는 Subnet에 이를 연결시켜 준다. Untitled-68

    Untitled-69