본문 바로가기
programing/aws

[ aws ] VPC(virtual private cloud)란?

by 궈능비 2023. 1. 18.
728x90
반응형

오늘은 VPC에 대해서 공부한 내용을 작성해 보겠습니다.

 

우선, 우리가 EC2를 통해 애플리케이션을 배포했다고 가정해 봅시다.

인터넷에 url을 검색하면 바로 애플리케이션을 볼 수 있습니다.

 

이걸 그림으로 표현해 보면 이렇게 됩니다.

대략 이런 느낌?

과연 이게 끝일까요? 아닙니다.

 

우리는 EC2를 배포한 그 순간부터 VPC를 사용하고 있습니다.

 

□ AWS VPC 란?

aws 리소스를 사용할 때 쓰는 가상 네트워크입니다.

 

각 리전에는 기본 VPC가 있습니다.

우리는 EC2를 배포할 때 기본 VPC를 이용하고 있습니다.

 

 

 

 

 

그럼 VPC는 어떤 역할을 하고 있을까요?

 

· VPC의 기능

    ① 게이트웨이 기능

        다른 네트워크에 우리의 네트워크를 연결합니다.

        EX) 

             인터넷 게이트웨이를 사용해 우리의 네트워크(VPC)를 인터넷에 연결합니다.   

             가상 프라이빗 게이트웨이를 사용해 네트워크를 인터넷에 연결합니다.

 

 

 

 

 

 

 

 

 

 

        ∴ 게이트웨이?

             -> 게이트웨이는 네트워크 간의 통신 가능하게 도와줍니다.

  

        ∴ 인터넷 게이트웨이?

             -> 인터넷에 url 입력했을 때 우리 EC2에 올 수 있게 해 줌.

             -> 즉, 우리의 네트워크랑 인터넷을 연결해 줌

 

        ∴ 가상 프라이빗 게이트웨이?

             -> 퍼블릭이지만, 보호된 유저만 접근 가능하게!

             -> VPC와 프라이빗 네트워크 간 VPN 설정 가능!

     

 

     서브넷 ( subnet )

        우리의 네트워크는 누구나 접근 가능하게 만들면 안 됩니다. 위험하니까요.

        우리는 접근 가능한 ip 주소를 설정할 수 있습니다.

        이때 사용하는 것이 서브넷입니다.

        

 

 

 

 

 

 

 

 

 

 

        ∴ 서브넷 종류

           1. 퍼블릭 서브넷

               ->  누구나 액세스 가능한 서브넷

 

           2. 프라이빗 서브넷

              -> 프라이빗 네트워크를 통해서만 액세스 가능

 

           3. VPN 전용 서브넷

              ->  VPN 연결 시 사용

 

       우리는 서브넷 종류를 이용해 공개/비공개 유무를 설정할 수 있습니다.

       만약 화면용 EC2와 RDS를 사용하고 있다면 서브넷은 어떻게 설정하면 좋을까요?

 

 

 

 

 

 

 

 

 

       데이터를 다루는 RDS는 비공개 서브넷을 사용하는 편이 좋습니다.

 

 

aws에서는 우리의 네트워크를 위해 보안 기능도 같이 제공합니다.

이번에는 보안에 대해서 알아보도록 하겠습니다.

 

· VPC의 보안

    ① 네트워크 ACL

        서브넷용 보안입니다.

        인터넷에 url을 쳤을 때 EC2로 접근시킬지 말지를 서브넷라인에서 판단할 때 사용합니다.

        인바운드, 아웃바운드를 전부 판단합니다.

 

        ∴ 인바운드?

            -> 인터넷에 url을 쳤을때 EC2로 가려고 접근하려고 시도하는 것을 말합니다.

            -> 유저 ≫ EC2

 

        ∴ 아웃바운드?

            -> 인터넷에 url을 쳤을때 EC2로 들어왔다가 다시 유저에게 돌아가려고 시도하는 것을 말합니다.

            -> 유저 EC2 ≫ 유저

 

        EX)  공항 여권 심사대

         우리가 만약 일본에 여행을 간다고 가정하겠습니다.

        일본에 도착하면 공항에서 여권 심사를 합니다.

        여권 심사를 해서 적격, 부적격 여부를 판단한 뒤, 일본 입국 도장을 찍어주거나 다시 한국으로 돌려보내거나 하겠죠.

        여기서 우리가 일본에 입국 심사를 하는 것이 인바운드입니다.

 

        일본 입국에 성공했습니다. 여행도 다 했고 이제 다시 한국으로 돌아가려고 합니다.

        이때도 우리는 공항에서 여권 심사를 해야만 합니다.

        공항에서는 뭔가 문제가 없었는지를 판단한 뒤 한국으로 돌려보내 주거나, 못 돌아가게 하거나 하겠죠.

        이때가 아웃바운드입니다.

 

        aws에서는 이를 상태 비저장이라고 말합니다.

        직전에 들어오는 데 성공했더라도, 무조건 나갈 수 없습니다.

        

    ➁ 보안 그룹

        EC2용 보안입니다.

        인터넷에 url을 쳤을 때 EC2로 접근시킬지 말지를 EC2라인에서 판단할 때 사용합니다.

        인바운드만 판단합니다.

 

        EX)  유료 박물관 문지기

        우리가 만약 유료 박물관에 간다고 가정하겠습니다.

        박물관에 들어갈 때 문지기는 우리가 표가 있는지 없는지를 확인합니다.

        표가 없으면 들여보내주지 않습니다.

 

        하지만 우리는 표를 내고 박물관에 입장했습니다.

        관람을 다 했고 이제 박물관에서 나가려고 합니다.

        이때 문지기는 우리가 나가는 것을 확인하지 않습니다.

 

        aws에서는 이를 상태 저장이라고 말합니다.

        직전에 들어오는 데 성공했으면 무조건 나갈 수 있습니다.

 

 

이를 간략하게 정리하면 이렇게 됩니다.

  네트워크 ACL 보안 그룹
레벨 서브넷 EC2
검사 인바운드, 아웃바운드 인바운드
  상태 저장 상태 비저장

 

 

이제 다시 처음으로 돌아가 봅시다.

우리가 EC2를 통해 애플리케이션을 배포했다고 가정하겠습니다.

인터넷에 url을 검색하면 바로 어플리케이션을 볼 수 있습니다.

 

이걸 그림으로 표현하면 이렇게 됩니다.

네트워크 ACL과 보안그룹은 이해를 위해 표시했습니다

순서를 조금 정리해 보면 이렇게 됩니다.

url을 입력하면

인터넷 게이트웨이를 지나서

VPC의 서브넷에 도착합니다.

서브넷에서 네트워크 ACL을 통해 인바운드를 체크합니다.

성공했으면 EC2로 갑니다.

EC2에서 보안그룹을 통해 인바운드를 체크합니다.

성공했으면 EC2에서 처리를 하고, 화면을 돌려줍니다.

EC2에서 아웃바운드를 체크하지 않고, 바로 서브넷으로 갑니다.

서브넷에서 네트워크 ACL을 통해 아웃바운드를 체크합니다.

성공했으면 화면에 데이터를 띄웁니다.
(구글화면에 우리의 화면이 보입니다.)

 

여기까지 VPC에 대해 공부한 내용을 정리해 봤습니다.

 

 

***

 

S3를 사용해보고 싶다면?

2022.09.03 - [programing/aws] - [ aws S3 ] S3 (Simple Storage Service) bucket 만들기

 

[ aws S3 ] S3 (Simple Storage Service) bucket 만들기

aws s3를 이용해보려고 합니다 s3를 이용할 때는 버킷을 먼저 만들어줘야 합니다 버킷을 만들어 보겠습니다 우선 일반 구성부터 설정해줍니다 버킷 이름 : testbucket + 본인 이름(영어)으로 해줄게요

kwon-eb.tistory.com

 

RDS를 사용해보고 싶다면?

 

2023.01.12 - [programing/aws] - [ aws rds ] postgresql 데이터베이스 생성 및 연결, 삭제해 보기

 

[ aws RDS ] postgresql 데이터베이스 생성 및 연결, 삭제해보기

□ RDS 란? Amazon Relational Database Service(Amazon RDS)는 클라우드에서 데이터베이스를 설정, 운영 및 확장할 수 있는 관리형 서비스 모음입니다. MySQL과 호환되는 Amazon Aurora , PostgreSQL과 호환되는 Amazon Aur

kwon-eb.tistory.com

 

IAM를 사용해보고 싶다면?

2023.01.12 - [programing/aws] - [ aws IAM ] 유저 그룹, 유저 생성

 

[ aws IAM ] 유저 그룹, 유저 생성

aws에서 유저를 관리하는 기능을 사용해보려고 합니다. □ IAM 란? IAM은 사용자의 접근 권한을 관리하는 서비스입니다. IAM을 이용하면 사용자별로 AWS에서 제공하는 서비스들에 대해 권한을 지정

kwon-eb.tistory.com

 

aws에 클릭 몇 번으로 서비스를 배포해보고 싶다면?

 

2023.01.12 - [programing/aws] - [ AWS Elastic Beanstalk ] python 웹 애플리케이션 배포하기 - 샘플 어플리케이션

 

[ AWS Elastic Beanstalk ] python 웹 어플리케이션 배포하기 - 샘플 어플리케이션

□ AWS Elastic Beanstalk 란? 코드랑 원하는 구성만 제공하면 알아서 ec2, auto scaling, load balancing을 해주는 서비스 컨테이너화되지 않은 애플리케이션을 클라우드에 배포할 수 있습니다. 일일이 만들고

kwon-eb.tistory.com

 

ECS를 사용해보고 싶다면?

2023.01.15 - [programing/aws] - [ AWS ECS ] python 웹 어플리케이션 배포하기

 

[ AWS ECS ] python 웹 어플리케이션 배포하기

*** 이 글은 docker에 대해서 어느 정도의 지식이 있다는 가정 하에 쓰인 글입니다. 개인 공부 용도로 작성된 글이기때문에 틀린 개념이 있을 수 있습니다. *** □ AWS ECS 란? 컨테이너화된

kwon-eb.tistory.com

 

 

ECR를 사용해보고 싶다면?

2022.09.17 - [programing/aws] - [ aws ecr ] ecr 만들기

 

[ aws ecr ] ecr 만들기

순서입니다 1. 리포지토리 만들기 2. aws 설정하기 3. 리포지토리 권한 설정하기 4. iam 권한 설정하기 5. 리포지토리에 도커 이미지 빌드하기 리포지토리 만들기 ecs를 사용해보기 위해서 오늘은 ecr

kwon-eb.tistory.com

***

728x90
반응형

댓글