[AWS] VPC

Bzeromo·3일 전
0

MSA

목록 보기
10/10
post-thumbnail

⚡ AWS VPC


📌 정책(Policy)

🔷 사용자와 그룹, 역할이 무엇을 할 수 있는지에 관한 문서

  • JSON 형식으로 정의

  • 그룹, 역할, 유저 등에 부여되어 각 주체가 행동 가능한 권한을 정의

🔷 구성

  • Resource: 어떤 AWS 리소스에 대해서
  • Action: 어떤 행동을
  • Effect: 허용/거부
  • Condition: 정책이 적용되는 조건 (예: IP주소, 시간, 태그 등)

🔷 예시

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": "arn:aws:s3:::example-bucket-name/*"
    }
  ]
}

📌 Virtual Private Cloud(VPC)

🔷 사용자의 AWS 계정 전용 가상 네트워크

  • VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리
  • Amazon EC2 인스턴스와 같은 AWS 리소스를 VPC에서 실행할 수 있음
  • IP 주소 범위와 VPC 범위를 설정하고 서브넷을 추가하고 보안 그룹을 연결한 다음 라우팅 테이블을 구성

🔷 VPC 구조

🔷 VPC의 사용 사례

  • EC2, RDS, Lambda 등의 AWS의 컴퓨팅 서비스 실행

  • 다양한 서브넷 구성

  • 보안 설정 (IP Block, 인터넷에 노출되지 않는 EC2 등 구성)

🔷 기본 VPC

  • AWS 계정 생성 시 자동으로 생성되어 있음

  • 기본적으로 각 AZ(가용 영역)마다 서브넷을 생성

    • 모든 서브넷에 인터넷 접근이 가능함 (= 퍼블릭 서브넷)
  • 다양한 AWS 서비스가 기본 VPC를 이용하기 때문에, 삭제 시 여러 AWS 서비스의 사용에 제약

🔷 커스텀 VPC

  • 직접 생성

  • 기본적으로 인터넷에 연결되어 있지 않음

    • 인터넷 게이트웨이와 라우팅 설정 없이 퍼블릭 서브넷 생성 불가능

    • 즉, 별도의 조치 없이 인터넷으로 연결 가능한 EC2 생성 불가


📌 세브넷팅 개념 이해하기

🔷 CIDR(Classless Inter-Domain Routing)

  • 기존의 A/B/C 클래스 네트워크 구조(클래스풀 방식)의 한계를 극복하고, IP 주소 공간을 유연하게 할당·분할할 수 있도록 도입

  • IP주소/Prefix(접두 비트 수) 형태로 표기 (예: 192.168.0.0/24)

🔷 CIDR 표기법 구성

예를 들어, 192.168.0.0/24 라는 IP 블록이 있다면,

  • CIDR 표기에서 뒤의 숫자 24는 "네트워크 부분의 비트 수"를 의미

  • IP 전체 비트(32비트) 중 앞의 24비트는 네트워크 주소, 뒤의 8비트는 호스트 주소에 해당

  • 따라서, 실제 사용할 수 있는 IP 주소 개수는 2⁸(호스트 비트 수) 로 계산됨

❗ 단, 실제 사용 가능한 IP는 일반적으로 2개(네트워크/브로드캐스트)를 제외
👉 2⁸ - 2 = 254 (실제 사용 가능 수: 254개)

CIDR호스트 비트IP 주소 개수실제 사용 가능한 IP 개수
/248256254
/239512510
/221010241022

📱 CIDR 계산 사이트
cidr.xyz, jodies.de/ipcalc


📌 VPC 생성 진행 단계

1. VPC 생성

2. 퍼블릭 서브넷 생성

  • 인터넷 게이트웨이 생성 및 VPC에 부착

  • 라우팅 테이블 생성 및 연결

  • 보안그룹 생성 및 규칙 추가

  • 인스턴스 생성 (nginx)

  • nginx 설치, 웹 접속 확인

3. 프라이빗 서브넷 생성

  • 엘라스틱 IP 생성

  • NAT 게이트웨이 생성 및 퍼블릭 서브넷에 부착

  • 라우팅 테이블 생성 및 연결

  • 보안그룹 생성 및 규칙 추가

  • 인스턴스 생성 (mariadb)

  • nginx 인스턴스에서 mariadb 인스턴스로 접속

  • mariadb 설치, root 접속 확인

  • clouds 계정 생성 및 접속 확인

4. IP 대역 설계

  • VPC CIDR : 172.16.160.0/20 ⇒ 4094개 IP

    • VPC 가용영역 CIDR : 172.16.160.0/22 ⇒ 1022개 IP

      • 가용영역 A : 172.16.160.0/22

        • 가용영역 내 서브넷 CIDR : 172.16.160.0/24

          • 퍼블릭 서브넷 A : 172.16.160.0/24

          • 퍼블릭 서브넷 B : 172.16.161.0/24

          • 프라이빗 서브넷 A : 172.16.162.0/24

          • 프라이빗 서브넷 B : 172.16.163.0/24

      • 가용영역 B : 172.16.164.0/22

      • 가용영역 C : 172.16.168.0/22

      • 가용영역 D : 172.16.172.0/22


📌 서브넷(subnet)

🔷 VPC의 하위 단위로 VPC에 할당된 IP를 더 작은 단위로 분할한 개념

🔷 하나의 서브넷은 하나의 가용영역(AZ) 안에 위치

🔷 별도의 설정이 없다면 동일한 서브넷 IP 끼리만 통신 가능

  • 다른 서브넷과 소통하기 위해서는 라우팅 설정이 필요

🔷 CIDR block range로 IP 주소 지정

🔷 서브넷의 종류

  • 퍼블릭 서브넷: 외부에서 인터넷을 통해 연결할 수 있는 서브넷,
    인터넷 게이트웨이(IGW)를 통해 외부의 인터넷과 연결되어 있음

    • 안에 위치한 인스턴스에 퍼블릭 IP 부여 가능

    • 웹서버, 어플리케이션 서버 등 유저에게 노출되어야 하는 인프라

  • 프라이빗 서브넷: 외부에서 인터넷을 통해 연결할 수 없는 서브넷
    외부 인터넷으로 경로가 없음

    • 퍼블릭 IP 부여 불가능

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


📌 인터넷 게이트웨이

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

  • 기본적으로 확장성과 고가용성이 확보되어 있음

  • IPv4, IPv6 지원

  • IPv4의 경우 NAT 역할

  • Route Table에서 경로 설정 후에 접근 가능

  • 무료


📌 NAT Gateway / NAT Instance

🔷 Private 인스턴스가 외부의 인터넷과 통신하기 위한 통로

  • NAT Instance: 단일 EC2 인스턴스

  • NAT Gateway: AWS에서 제공하는 매니지드 서비스

  • NAT Gateway / NAT Instance는 모두 서브넷 단위로 존재

    • 반드시 Public Subnet에 있어야 함

NAT Gateway를 만들기 전 엘라스틱 IP 생성이 우선임을 기억하자.

profile
Hodie mihi, Cras tibi

0개의 댓글