개념 정리

AWS 개념(1)(EC2, S3, RDS, VPC)

항상 발전하는 개발자 2024. 12. 24. 10:22
728x90

1. AWS란?

  • Amazon Web Services (AWS) : Amazon이 제공하는 클라우트 컴퓨팅 서비스 플랫폼
  • 클라우드 컴퓨팅 : 인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어 등을 제공하는 서비스

2. 주요 서비스

  • EC2(Elastic Compute Cloud) : 가상 서버를 제공하여 애플리케이션을 실행
  • S3(Simple Storage Service) : 확장 가능한 객체 스토리지 서비스
  • RDS(Relational Database Service) : 관리형 관계형 데이터베이스 서비스
  • VPC(Virtual Private Cloud) : 격리된 네트워크 환경을 제공

3. 주요 개념

  • 리전(Region) : 물리적으로 분리된 데이터 센터 위치
  • 가용 영역(Availability Zone) : 리전 내에 있는 독립적인 데이터 센터
  • 스케일링(Scaling) : 필요에 따라 자원을 자동으로 확장 또는 축소

4. 장점

  • 유연성 : 필요에 따라 자원을 쉽게 조정 가능
  • 비용 효율성 : 사용한 만큼만 비용 지불(Pay-as-you-go)
  • 확장성 : 비즈니스 성장에 따라 자원을 쉽게 확장 가능
  • 보안 : 다양한 보안 인증 및 규정 준수

Region(리전)

  • 리전은 지리적으로 분리된 AWS 데이터센터의 집합. 각 리전은 물리적으로 독립된 위치에 있으며, 다른 리전과는 완전히 분리되어 있음
  • 특징
    • 지리적 분산 : 리전은 전세계 여러지역에 분산
    • 데이터 주권 : 사용자는 특정 리전에 데이터를 저장함으로 주권 및 규제요구 사항을 충족할 수 있음
    • 독립성 : 각 리전은 독립적으로 운영되며, 리전 간의 장애가 전파되지 않음
    • 서비스 가용성 : 일부 AWS 서비스는 특정 리전에서만 제공될 수 있음

Availability Zone(가용영역)

  • 가용 영역은 하나의 리전 내에 있는 물리적으로 분리된 데이터 센터
  • 각 가용 영역은 독립적인 전력, 냉각, 네트워크를 갖추고 있으며, 다른 가용 영역과 저지연 네트워크로 연결되어 있음
  • 특징
    • 물리적 분리 : 가용영역은 물리적으로 분리되어 있어, 장애가 다른 가용영역에 영향을 주지 않음
    • 고가용성 : 애플리케이션을 여러 가용 영역에 배포하여 고가용성을 보장할 수 있음
    • 저지연 네트워크 : 가용영역 간의 네트워크 연결은 매우 낮은 지연 시간을 제공하여, 데이터 복제 및 동기화 작업 등을 효율적으로 수행할 수 있음

AWS EC2(Elastic Compute Cloud)

  • 사용자가 클라우드에서 가상 서버(인스턴스)를 생성하고 관리할 수 있게 해주는 AWS 서비스
  • 인스턴스 사용량을 기준으로 과금하는 구조(인스턴스 별 금액 정책은 고정되어 있음)
  • AutoScailing 등 유연한 서비스 사용이 가능한 여러가지 서비스 적용 가능
  • 인스턴스 과금기준
    • 인스턴스 타입
      • 성능에 따라 nano/micro/small/large/xlarge 등으로 세분화 되는데, 주의할 것은 성능 좋은 인스턴스를 쓸수록 그만큼 금액이 기하급수적으로 늘어남. 때문에 작은 서버 여러대로 분산처리를 하는 것이 필수
      • 고성능이 필요한 연산이 있다면 필요할 때만 잠깐씩 서버를 생성했다가 작업이 끝나면 즉시 삭제해버리는 식으로 사용 시간을 줄이는 방식으로 비용 관리 해주기.
    • 데이터 트래픽 요금
      • 월 1GB까지 무료, 10TB까지는 GB당 0.09달러 등으로 책정되어 있지만 Internet / Internal 모든 트래픽에 대해 과금을 하는 구조(EC2 사용료 합산 과금)
      • 소규모에서는 EC2가 저렴하다가 대규모로 서비스가 발전하면 비용 증가폭이 큰 점이 EC2의 특징

AWS Load Balancer

Elastic Load Balancer(ELB)

  • 애플리케이션의 트래픽을 여러 대상(ex. EC2 인스턴스, 컨테이너, IP주소 등)으로 분산시켜 애플리케이션의 가용성과 확장성을 높이는 데 사용
  • 서비스 고가용 구성의 중요기능으로 On-Prem의 경우 장비로 구성하지만, AWS에서는 용도 및 기능에 따라 3가지 서비스를 제공

AWS에서의 Service Load Balancer

  • ALB(Application Load Balancer) : 주 용도 : HTTP/HTTPS 트래픽을 처리하며, 레이어 7에서 작동, 확장에 따라 EIP 변경이 발생
  • NLB(Network Load Balancer) : 주 용도 : TCP/UDP 및 TLS 트래픽을 처리하며, 레이어 4에서 작동
  • CLB(Classic Load Balancer) : 주 용도 : HTTP, HTTPS, TCP, 및 SSL 트래피을 처리하며, 레이어4와 레이어 7에서 작동

CLB를 쓰는 게 더 좋은 게 아닌가?

- CLB는 이전 세대의 로드밸런서로 물론 4계층, 7계층 트래픽을 모두 처리할 수 있지만 이후 세대의 ELB에 비해 지원하는 기능이 부족해서 특별한 경우를 제외하고 잘 사용되지 않는다.

- URL, Host 기반 라우팅(ALB), 정적 IP 제공(NLB), 낮은 지연시간, 고성능 및 고처리량 등 기능이나 성능적인 부분에서 많은 차이를 보이기 때문에 일정 규모 이상의 서비스 구축시에는 기능에 맞는 LB를 포함하여 아키텍처 구성


AWS S3(Simple Storage Service)

  • 무제한 용량을 제공하는 인터넷 스토리지 서비스
  • 확장성이 뛰어나고 사용한 만큼만 비용을 지불
  • 버킷(Bucket)이라는 영역을 생성하고 데이터를 키-값 형식의 객체(Object)로 저장
  • 다른 스토리지 서비스 대비 매우 저렴한 비용이 특징
  • 주요특징
    • 객체스토리지
      •  파일을 객체단위로 저장하며 이때 객체는 기가바이트(GB)단위로 저장
      • 각 객체는 데이터, 메타데이터, 고유키로 구성
        • 데이터 : vacation.jpg라는 이미지 파일을 업로드 한다면 이 이미지 파일이 객체의 데이터가 됨.
        • 메타데이터 : 파일 크리(2MB), 형식(JPEG), 업로드 날짜(2023년 10월 1일) 등 파일의 추가 정보
        • 고유한 키 : 객체를 식별하기 위한 고유키, 예를 들면 photos/2024/vacation.jpg라는 키를 사용할 수 있으며, 이 키를 통해 S3 버킷 내에서 이 객체를 찾고 접근할 수 있음.
  • 디렉토리와 고유키의 차이
    • S3의 고유한 키는 평면 구조에서 객체를 식별하는 문자열. 슬래시(/)를 사용하여 가상 디렉터리 구조처럼 보이기는 하지만 실제 디렉터리가 존재하지 않음

AWS FSx

  • FSx
    • 파일 스토리지 서비스 : 파일 시스템을 제공하여 파일 단위로 데이터를 저장하고 관리.
    • 완리 관리형 : 파일 시스템의 설정, 유지 관리, 확장, 백업 등을 자동으로 관리
    • => 완전 관리형(Fully managed)파일 시스템(스토리지) 서비스
  • FSx 주요 특징
    • 파일 시스템 인터페이스 : NFS, SMB, Lustre 등 파일 시스템 프로토콜을 지원
    • 고성능 : 밀리초 단위의 지연 시간과 높은 처리량을 제공
    • 고가용성 : 다중 AZ 배포 및 자동 복구 기능을 통해 높은 가용성을 보장
    • 사용 사례 : 엔터프라이즈 애플리케이션, 고성능 컴퓨팅(HPC), 데이터베이스, 백업 및 복구 등

S3와 FSx의 차이

  • FSx와 S3는 모두 AWS에서 제공하는 스토리지 서비스이지만, 그 목적과 사용 사례가 다르다.
    • Amazon FSx는 파일 시스템을 필요로 하는 워크로드에 적합하며, 고성능과 고사용성을 제공
    • Amazon S3는 객체 스토리지를 필요로 하는 워크로드에 적합하며, 무제한 확장성과 높은 내구성을 제공
  • 파일 시스템 옵션
    • Amazon FSx for Windows File Server : Windows 환경에 최적화된 파일 시스템
    • Amazon FSx for Lustre : 고성능 컴퓨팅(HPC) 워크로드에 최적화된 파일 시스템
    • Amazon FSx for NetApp ONTAP : NetApp의 데이터 관리 기능을 제공하는 파일 시스템
    • Amazon FSx for OpenZFS : OpenZFS 파일 시스템을 제공하여 데이터 무결성과 성능을 보장

RDS(Relational DataBase Service)

  • RDS는 클라우드에서 관계형 데이터베이스를 설정, 운영 및 확장할 수 있게 해주는 관리형 서비스
  • EC2 인스턴스 위에서 돌아가는 서비스이기 때문에 해당 EC2 인스턴스의 시간당 요금을 과금
  • RDS 운영 시 고려 사항
    • OS가 없는 PaaS
    • 장점 : 운영 및 관리 포인트가 설치형 DB보다 적음
    • 단점
      • 솔루션 사용에 제한적.(특히 Agent 설치 방식의 솔루션들은 사용 불가)
      • 커스터마이징 제한, 파라미터 조정으로 어느정도 가능하지만 설치형에 비해 기능이 약함
    • 확장성
      • 장점: 하드웨어 리소스 증설이 자유로움. AWS에서 제공하는 HA(High Availability) 환경 이용 가능
      • 단점: 전체 리소스에 대한 AutoScailing은 Maria DB 가능하며, 다른 DB는 제한적
    • 관계형 DBMS
      • Amazon RDS는 관계형 데이터베이스 엔진만 지원하나 예외로 NoSQL 데이터베이스인 DynamoDB는 RDS에서 지원을 하고 있음.

VPC(Virtual Private Cloud)

  • AWS에서 제공하는 가상 네트워크 서비스. 이 안에서 서버들과 서비스를 안전하게 운영할 수 있으며, 퍼블릭 서브넷과 프라이빗 서브넷을 통해 서버들의 활동을 관리
  • 인터넷 공간에서 서비스를 위한 서브넷을 구성하고 운영할 수 있는 가상 클라우드 서비스
  • Public Subnet과 Private Subnet
    • 기능에 따른 차이가 아닌 역할에 따른 차이
    • IGW 또는 NAT 게이트웨이를 통해 인터넷에 접속할 수 있는 기능을 제공하는 것은 동일
    • 다만 외부에서 접속할 수 있는 서비스와 접속하면 안되는 서비스를 구분하기 위해 분리 구성
    • Public Subnet
      • 웹서버, 로드밸런서 등 인터넷에 노출되어야 하는 서비스를 주고 구성(DMZ 구간 대치)
      • 서브넷 내의 리소스는 Public IP를 할당하며, 인터넷 게이트웨이를 통해 직접 인터넷 연결
    • Private Subnet
      • WAS, DB, 파일서버 등 외부 노출에 민감한 서비스를 주로 구성(TRUST 구간 대치)
      • 서브넷 내의 리소스는 Private IP를 할당하며, 필요한 경우 NAT 게이트웨이를 통해 인터넷 연결(아웃바운드)
    • VPC간 연결
      • 동일 리전 내 VPC연결은 Peering으로 연결, 다른 리전의 VPC간 연결은 TransitGW, VPN 등을 이용
728x90