ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS VPC란?
    AWS 2023. 5. 23. 00:01

    VPN이란?

    Virutal Private Network의 약자로 가설사설망을 뜻합니다.

    예를 들어 회사 네트워크에서만 접속 가능한 서버를 집에서 접속하기 위해서 VPN을 이용하여 마치 회사 내부 네트워크에 있는 것처럼 만들어 주는 역할을 수행합니다.

     

    https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098

    회사 네트워크가 같이 구성되어 있고 보안상 이유로 직원간 네트워크를 분리하고 싶다면 인터넷 선공사를 다시 해주어야 합니다.

    이때 VPN을 활용하면 네트워크A와 네트워크 B가 실제로 같은 네트워크상에 있지만 논리적으로 다른 네트워크인 것처럼 동작합니다.

     

    VPC란?

    Virtual Private Cloud의 약자로 가상 네트워크를 의미합니다.

    VPC를 활용하여 외부와 격리된 네트워크 컨테이너를 생성할 수 있습니다.

    IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 사용자가 정의할 수 있습니다.

    예를 들어 Amazon EC2 인스턴스 같은 AWS 리소스들을 VPC에서 실행할 수 있습니다.

    https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098

    VPC를 적용하면 위 그림과 같이 VPC별로 네트워크를 구성할 수 있으며, VPC에 따라 다르게 네트워크 설정을 가질 수 있게 됩니다.

    즉, 각각의 VPC는 완전히 독립된 네트워크처럼 작동합니다.

     

    VPC를 사용하는 이유?

    퍼블릭 클라우드 공간에서 격리된 환경을 제공하기 위해 사용합니다.

    가상 네트워크에서 확실한 제어 권한을 유지하고 민간함 워크로드를 보호하는 동시에 퍼블릭 클라우드의 민첩성, 유연성, 확장성을 활용할 수 있습니다.

     

    VPC의 구조

    https://www.youtube.com/watch?v=WY2xoIClOFA

    AWS의 VPC는 위의 그림과 같이 구성됩니다.

    각 요소에 대해 알아보고 전체적인 그림을 이해해보고자 합니다.

     

    CIDR

    Classless Inter-Domain Routing의 약자로 1993년 도입되기 시작한, 최신의 IP 주소 할당 방법입니다.

    VPC의 IP 영역을 지정하는 설정이며, 최소 1개 이상의 IP/CIDR 규칙을 설정해야 합니다.

    RFC 1918 규격에 따라 구축해야 합니다.

     

    한번 설정된 아이피대역은 수정할 수 없으며 각 VPC는 하나의 리전에 종속됩니다.

    VPC 간 통신을 위해서는 VPC 피어링 서비스를 고려해 볼 수 있습니다.

     

    서브넷

    VPC의 하위 단위로 VPC에 할당된 IP를 더 작은 단위로 분할한 개념입니다.

    하나의 서브넷은 하나의 가용영역(AZ) 안에 위치합니다.

    이렇게 서브넷을 나누는 이유는 더 많은 네트워크망을 만들기 위해서입니다.

     

    서브넷은 public 서브넷과 private 서브넷으로 나뉩니다.

    public 서브넷은 외부에서 인터넷을 통해 연결할 수 있으며, 인터넷 게이트웨이를 통해 외부의 인터넷과 연결되어 있습니다.

    웹 서버, 애플리케이션 서버 등 유저에게 노출되어하는 인프라입니다.

     

    private 서브넷은 외부에서 인터넷을 통해 연결할 수 없으며, 외부 인터넷으로 경로가 존재하지 않습니다.

    데이터베이스, 로직 서버 등 외부에 노출될 필요가 없는 인프라등이 있습니다.

     

    라우트 테이블

    트래픽이 어디로 가야 할지 알려주는 이정표입니다.

    VPC 생성 시 기본으로 하나 제공됩니다.

    특정 IP가 어디로 가야 할지 알려주는 역할을 수행합니다.

    destination에서 가장 구체적인 것을 찾아 매칭시켜 줍니다.

     

    라우트 테이블을 기반으로 서브넷끼리 통신을 수행할 수 있습니다.

     

    인터넷 게이트웨이

    VPC가 외부의 인터넷과 통신할 수 있도록 경로를 만들어주는 리소스입니다.

    기본적으로 확장성 고가용성이 확보되어 있습니다.

     

     

    NACL/보안그룹

    Network Access Control List의 약자로 네트워크 접근 권한을 관리합니다.

    네트워크 ACL과 보안그룹은 방화벽과 같은 역할을 수행하여 인바운드 트래픽과 아웃바운드 트래픽 보안정책을 설정할 수 있습니다.

     

    만약 네트워크 ACL과 보안그룹이 충돌한다면 보안그룹이 더 높은 우선순위를 갖습니다.

     

    NAT Instance/ NAT Gateway

    NAT 게이트웨이는 프라이빗서브넷이 인터넷과 통신하기 위한 아웃바운드 인스턴스입니다. 

    인스턴스 펌웨어나 주기적인 업데이트가 필요하여 아운바운드 트래픽만 허용되야 할 경우가 있습니다.

    이때 퍼블릿 서브넷상에서 동작하는 NAT게이트웨이가 프라이빗서브넷에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷 게이트웨이와 연결합니다.

     

    Bastion Host

    Bastion Host는 Public Subnet에 속하며, 공인 IP를 할당받습니다.

    서버를 외부에서 접속하려고 할 경우, Bastion Host를 통해서 Private IP 서버에 접근할 수있게 설계합니다.

    Private Host는 공인 IP를 할당받지 못하며, Bastion Host에서의 트래픽만 받을 수 있게 보안 그룹을 설정합니다.

     

    VPC Endpoint

    네트워크, 인터넷 게이트웨이 등을 통하지 않고 AWS의 서비스를 비공개로 연결 가능하게 하는 서비스입니다.

     

    다시 VPC의 구조 보기

    https://www.youtube.com/watch?v=WY2xoIClOFA

    위의 개념들을 기반으로 다시 그림을 보게 되면 인터넷은 인터넷 게이트웨이를 통해 연결되어 있습니다.

    이때 퍼블릭 서브넷만 연결되어 있으며 NACL과 보안그룹에 의해 정해진 IP 대역만 접속할 수 있게 됩니다.

     

    라우트 테이블에 의해 2개의 서브넷이 통신합니다.

     

    프라이빗 서브넷의 경우엔 NAT gateway를 통해 아웃바운드 트래픽만 허용되는 화살표를 볼 수 있습니다.

    private subnet의 database에 접근하려고 한다면 퍼블릭 서브넷의 bastion host를 활용하여 접근할 수 있습니다.

     

     

    참고자료

    https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html

    https://dev.classmethod.jp/articles/for-beginner-vpc-explanation/

    https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098

    https://www.youtube.com/watch?v=WY2xoIClOFA 

    https://www.youtube.com/watch?v=ZISUSL431bY 

     

    'AWS' 카테고리의 다른 글

    [AWS] SQS 사용시 주의사항  (0) 2023.06.04
    [AWS] SpringBoot LocalStack으로 SNS, SQS 구성하기  (0) 2023.06.03
    AWS MFA 설정  (0) 2023.05.05
    AWS SQS vs SNS vs EventBridge  (0) 2023.05.02
    [AWS] CloudFront와 S3 연결하기[이론편]  (0) 2023.02.02

    댓글

Designed by Tistory.