TIL - 20250930

juni·2025년 9월 30일

TIL

목록 보기
140/317

0930 AWS : VPC 네트워킹과 고가용성 아키텍처


✅ 1. Amazon VPC (Virtual Private Cloud): 나만의 격리된 네트워크

  • VPC는 AWS 클라우드 내에서 논리적으로 격리된 나만의 가상 네트워크 공간을 만드는 서비스입니다. VPC를 통해 IP 주소 범위, 서브넷, 라우팅 테이블, 네트워크 게이트웨이 등을 완벽하게 제어할 수 있습니다.

➕ VPC의 핵심 구성 요소

  1. CIDR (Classless Inter-Domain Routing): VPC가 사용할 IP 주소 범위를 정의하는 표기법입니다. (e.g., 10.0.0.0/16)
  2. 서브넷 (Subnet): VPC의 IP 주소 범위를 더 작은 단위로 나눈 것입니다. 서브넷은 특정 가용 영역(AZ) 내에 존재합니다.
    • 퍼블릭 서브넷 (Public Subnet): 인터넷 게이트웨이(IGW)로의 라우팅 경로가 있어 외부 인터넷과 직접 통신이 가능한 서브넷. (e.g., 웹 서버)
    • 프라이빗 서브넷 (Private Subnet): 인터넷 게이트웨이로의 경로가 없어 외부에서 직접 접근할 수 없는 서브넷. (e.g., 데이터베이스 서버)
  3. 인터넷 게이트웨이 (IGW): VPC와 인터넷 간의 통신을 가능하게 하는 관문 역할을 합니다.
  4. NAT 게이트웨이 (NAT Gateway): 프라이빗 서브넷에 있는 인스턴스가 외부 인터넷으로 나가는(Outbound) 통신은 가능하게 하면서, 외부에서 직접 들어오는(Inbound) 연결은 차단하는 단방향 인터넷 출구입니다. (e.g., OS 보안 패치, 외부 API 호출)

➕ VPC 보안: NACL vs Security Group

  • VPC는 두 계층의 방화벽을 통해 리소스를 보호합니다. 이 둘의 차이를 이해하는 것이 매우 중요합니다.
구분NACL (Network ACL)Security Group
적용 수준서브넷 수준인스턴스 수준
상태Stateless (상태 비저장)Stateful (상태 저장)
규칙허용(Allow) 및 거부(Deny) 규칙 모두 설정 가능허용(Allow) 규칙만 설정 가능 (기본은 모두 거부)
동작 방식요청과 응답 트래픽에 대해 각각의 규칙을 설정해야 함허용된 요청에 대한 응답 트래픽은 자동으로 허용

➕ VPC 연결 옵션

  • VPC 피어링: 두 개의 VPC를 1:1로 직접 연결하여 비공개적으로 통신하게 합니다.
  • VPC 엔드포인트: VPC에서 인터넷을 거치지 않고 S3, DynamoDB와 같은 다른 AWS 서비스에 비공개적으로 안전하게 연결합니다.
  • Transit Gateway: 여러 VPC와 온프레미스 네트워크를 중앙 허브(Hub)에 연결하여 네트워크 구성을 단순화하는 서비스입니다.

✅ 2. 고가용성 및 확장성 아키텍처

  • 애플리케이션이 장애에 견디고(고가용성), 트래픽 변화에 유연하게 대응(확장성)할 수 있도록 만드는 핵심 서비스들입니다.

➕ 기본 개념

  • 고가용성 (High Availability): 시스템의 일부 구성 요소에 장애가 발생하더라도, 전체 서비스는 중단 없이 계속 운영되는 능력. (e.g., 다중 AZ 배포)
  • 확장성 (Scalability):
    • 수직 확장 (Scale-up): 서버의 사양(CPU, RAM)을 높이는 것.
    • 수평 확장 (Scale-out): 서버의 개수를 늘리는 것. (클라우드 환경의 핵심)
  • 느슨한 결합 (Loose Coupling): 각 컴포넌트가 서로에게 미치는 영향을 최소화하여, 한 컴포넌트의 장애가 다른 컴포넌트로 전파되지 않도록 설계하는 것.

➕ Elastic Load Balancing (ELB)

  • ELB는 들어오는 애플리케이션 트래픽을 여러 대상(e.g., EC2 인스턴스)에 자동으로 분산시켜주는 "트래픽 분산기"입니다.
  • 역할:
    1. 부하 분산: 여러 인스턴스에 트래픽을 고르게 분산하여 단일 서버의 과부하를 방지합니다.
    2. 고가용성: 특정 인스턴스에 장애가 발생하면, ELB는 이를 감지하고 정상적으로 작동하는 다른 인스턴스로만 트래픽을 보냅니다.
    3. 단일 진입점: 사용자에게는 복잡한 서버 목록 대신, ELB의 고유한 DNS 주소 하나만 노출합니다.

➕ EC2 Auto Scaling

  • Auto Scaling은 우리가 정의한 조건에 따라 EC2 인스턴스의 수를 자동으로 늘리거나 줄이는 서비스입니다.

  • 주요 구성 요소:

    1. 시작 템플릿 (Launch Template): 새로 생성될 EC2 인스턴스의 구성(AMI, 인스턴스 유형, 보안 그룹 등)을 정의한 설계도입니다.
    2. Auto Scaling 그룹 (ASG): 인스턴스들의 논리적인 그룹. 최소(Min), 최대(Max), 원하는(Desired) 용량을 설정하고, 어떤 서브넷에 인스턴스를 생성할지 지정합니다.
    3. 조정 정책 (Scaling Policy): 언제 인스턴스를 늘리거나 줄일지를 결정하는 규칙입니다.
      • 예시: "모든 인스턴스의 평균 CPU 사용률이 5분 동안 70%를 초과하면, 인스턴스를 1개 추가한다."
  • ELB와 Auto Scaling의 시너지: Auto Scaling이 트래픽 증가에 따라 새 인스턴스를 생성하면, ELB는 이 새 인스턴스를 자동으로 감지하여 트래픽 분산 대상에 추가합니다. 반대로 트래픽이 감소하여 인스턴스가 제거되면, ELB는 이를 대상에서 자동으로 제외합니다. 이 둘의 조합을 통해 탄력적이고(Elastic) 자가 치유(Self-healing)가 가능한 아키텍처를 구축할 수 있습니다.


📌 요약

  • VPC는 AWS 클라우드 내의 격리된 나만의 데이터 센터이며, 서브넷, IGW, NAT 게이트웨이 등으로 구성됩니다.
  • VPC의 보안은 서브넷 수준의 NACL(Stateless)인스턴스 수준의 Security Group(Stateful)이라는 두 계층의 방화벽으로 강화됩니다.
  • ELB는 트래픽을 여러 인스턴스에 분산하여 부하를 분산하고 가용성을 높이는 역할을 합니다.
  • Auto Scaling은 정의된 정책에 따라 인스턴스 수를 자동으로 조절하여 탄력성을 제공합니다.
  • ELB와 Auto Scaling을 함께 사용하는 것은 현대적인 클라우드 애플리케이션의 고가용성과 확장성을 확보하기 위한 표준 아키텍처입니다.

0개의 댓글