UMC02 - AWS (VPC & Internet Gateway & EC2)

한포도·2024년 4월 27일
0

UMC-6th-NodeJS

목록 보기
3/5
post-thumbnail

UMC 2주차 학습
2주차에 시작하면서 본격적으로 서버에 관한 이론들을 복습하고 있다. 워크북 내용이 생각보다 방대하지만 모르는 내용을 찾으면서 쌓아가는게 나름 재밌기에...또 스터티장을 맡게 되어 조금더 책임감을 가지고 나아 가겠다.

AWS?


AWS는 "Amazon Web Services” 약자로, 아마존에서 제공하는 클라우드 서비스

AWS를 통해 제공받는 클라우드 컴퓨팅 서비스는 IT리소스를 네트워크를 통해 제공받으며, 이 클라우드 컴퓨팅은 3가지 유형으로 나눌 수 있다.

  1. Infrastructure as a Service(IaaS) 일반적으로 네트워킹 기능, 가상 서버/스토리지 공간 제공 IT 리소스에 대한 관리 제어 기능을 제공 IaaS의 경우 AWS EC2와 같은 가상 서버 인스턴스를 생성하여 웹 애플리케이션을 호스팅하는 것이 가능.
  2. Platform as a Service(PaaS) OS, DB 등 기본 인프라 제공 제공되는 서비스의 관리는 전부 서비스 제공자가 하므로, 인프라(일반적으로 하드웨어와 운영 체제)를 관리할 필요가 없어 애플리케이션 개발과 관리에 집중할 수 있다. PaaS의 경우 AWS Elastic Beanstalk를 사용하여 애플리케이션 코드를 업로드하고 배포할 수 있다.
  3. Software as a Service(SaaS) 네이버클라우드, 웹 메일, ERP 등과 같은 형태의, 소프트웨어나 애플리케이션의 기능 제공 사용자는 서비스를 유지 관리하는 방법이나 기본 인프라를 관리하는 방법에 대해 생각할 필요 없이 특정 소프트웨어를 어떻게 사용할 지만 생각하면 된다. SaaS의 경우 AWS의 예시로는 Amazon S3와 같은 객체 스토리지 서비스가 있다.

🏙️AWS 리전&가용영역

리전 (Region):
리전은 AWS 클라우드 인프라의 물리적인 위치를 나타낸다. 각 리전은 전 세계의 특정 지리적 지역에 위치하며, 여러 개의 독립된 데이터 센터로 구성

리전은 다음과 같은 특징을 갖는다:

  • 리전 간에는 물리적으로 격리되어 있어 재해나 장애 시에도 다른 리전으로 서비스를 이전 가능.
  • 각 리전은 독립적인 인프라와 자체적인 서비스 제공을 가지고 있다.
  • 리전 간 네트워크 속도에 따라 데이터 전송 속도가 다를 수 있다.

가용 영역 (Availability Zone):
가용 영역은 한 리전 내에서 물리적으로 격리된 데이터 센터의 그룹을 나타낸다. 각 가용 영역은 독립된 전원, 냉각 및 네트워킹 인프라를 보유하고 있어 서로 다른 실패 도메인에 위치. 이것은 가용 영역 간에 장애가 발생해도 서비스의 가용성을 유지할 수 있도록 한다.

가용 영역은 다음과 같은 특징을 갖는다:

  • 한 리전 내에서 여러 개의 가용 영역이 존재하며, 각 가용 영역은 서로 독립적.
  • 각 가용 영역은 고유한 데이터 센터로 구성되어 있으며, 서로 다른 실패 도메인에 위치하여 장애가 전파되지 않도록 한다.
  • 가용 영역 간에는 저지연 네트워크로 연결되어 있어 안정적인 데이터 복제 및 트래픽 라우팅이 가능하다.

먼저 아마존의 VPC를 알기전에 IP(Internet Protocol)에 대한 지식이 필요하다.

  • 서브넷
  • 서브네팅
  • 라우팅
  • IP 개념
  • CIDR (Classless Interface Domain Routing)

위의 개념들을 모른다면 찾아보고 오도록. 숙제임.


☁️AWS VPC

VPC 소개

  • VPC (Virtual Private Cloud): 가상 서버 환경을 제공하는 AWS의 서비스. 아마존 뿐만 아니라 구글 등의 회사에서도 제공한다.
  • VPC는 가상의 영역으로, 클라우드 서비스를 사용하기 때문에 사설 IP 주소를 가진다.
  • 주로 알려진 사설 IP 대역은 다음과 같다:
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/24
  • VPC에는 서브넷을 설정하여 사용할 수 있다.

서브넷 할당

  • 위의 사설 IP 대역 중 하나를 선택하여 VPC에 할당한다.
  • 예시: 10.0.0.0/16의 아이피 주소를 VPC에 할당한 상황에서, 서브넷을 나눠 각각 서브넷을 원하는 가용 영역에 배치하여 사용할 수 있다.
    10.0.1.0/24 의 네트워크를 서브네팅하여 120 개씩 호스트를 나누고 싶다면?
    
    10.0.1.0/25 로 서브네팅을 한다. 호스트 비트가 7개가 되므로 2^7=128 로 충분하다.
    
    나눠진 대역은
    10.0.1.0 ~ 10.0.1.127
    10.0.1.128 ~ 10.0.1.255 가 생성된다.

서브넷 대역 할당

  • 일반적으로 아이피의 첫 주소와 마지막 주소는 네트워크와 브로드캐스트로 사용된다.

    중요!!! AWS는 추가로 3개의 주소를 더 할당한다.

    1. 첫 주소: 서브넷의 네트워크 대역
    2. 두 번째: VPC 라우터에 할당
    3. 세 번째: Amazon이 제공하는 DNS에 할당
    4. 미래를 위한 예약
    5. 브로드캐스트 주소

VPC의 통신

  • Public Subnet과 Private Subnet으로 구분된다.
  • Public Subnet은 외부와 통신이 가능한 서브넷 대역이고, Private Subnet은 외부와 통신이 되지 않는 서브넷 대역이다.

Public Subnet

  • Public Subnet을 설정하기 위해 Internet Gateway (igw)를 사용하여 퍼블릭 서브넷으로 만든다.
  • igw를 거쳐 외부와 통신하도록 설정하며, 라우팅 테이블을 igw로 설정한다.
    퍼블릭 서브넷을 설정하려면 AWS에서 제공하는 Internet Gateway(이하 IGW)를 사용하여 외부와의 통신을 가능하게 해야한다. 이를 위해선 라우팅 테이블을 설정하여 IGW 를 통과하도록 지정해야 한다.

그럼 우리는 특정 방향으로 네트워크 패킷을 이동하도록 설정하기 때문에 라우팅 이라고 할수있다. 때문에 IGW 의 라우팅 테이블을 따로 설정해야 한다.

여기서 대상이 두개로 나오는데 DestinationTarget이다. 말그대로 목적지는 네트워크 패킷의 목적지, 보낼 장소이다.

타겟은 우리가 보내고자 하는 지점이라고 생각하면 된다. 이렇게 외부로 가는 IP주소를 설정해주면 퍼블릭 서브넷이 된다!

Destination : 10.0.0.0/16
Target : Local

위의 예시를 보자면 target이 로컬 즉, VPC내부의 모든 장소에서 우리가 설정한 VPC의 주소로 목적지가 설정되어있다. 즉 로컬에서 로컬로 보내는 라우팅 테이블!

Private Subnet

🔒Private Subnet - DB보호

우리가 프로젝트를 진행하며 인프라를 구축할 때는 사실 Private Subnet을 사용하지 않아도 된다.
그러나 실제로 배포하는 릴리즈 서버의 경우는 실제 고객의 데이터가 저장되는 데이터베이스를 보호해야 하므로, 데이터베이스를 Private Subnet에 배치해야 한다. 데이터베이스 털리기 싫으면

그럼 의문점이 몇가지 생긴다.

  • 데이터베이스에 접근하려면 통신이 돼야 하는데 사설 서브넷에 배치하면 접근 못하는거 아님?
  • 데이터베이스 접근하려면 원격에서 설정하는게 편한데 그것도 안되나?

첫번째 경우는 DB를 사용하는 자원을 같은 VPC에 배치하면된다. 왜? VPC에는 내부적으로 라우팅이 가능하다. 떄문에 같은 VPC의 서브넷은 통신이 가능하다!

Bastion Host

실제 배포하기위해 설계된 DB를 사설 서브넷에 배치했다고 가정하자. 배포중에 DB에 데이터가 정상적으로 저장되는지 원격으로 확인하고 싶다.

하지만 사설 서브넷에 어떻게 접근할까? 사설 서브넷과 같은 VPC에 존재하는 Public subnet의 도움을 받으면 된다.

이때 사설 서브넷에 접근하도록 도와주는 호스트를 Bastion host라고 한다.


profile
응애 개발맨

0개의 댓글