AWS EC2 심화 가이드: 스토리지, 확장성, 그리고 고가용성

여준서·2024년 10월 10일
0

AWS(클라우드)

목록 보기
2/7
post-thumbnail

EC2 스토리지와 공동 책임 모델

1. AWS의 책임

  • 인프라 관리 : AWS는 데이터 센터와 하드웨어 보안을 관리하고, EBS와 같은 스토리지를 복제하여 데이터 손실을 방지합니다.

  • 하드웨어 결함 처리 : EBS 드라이브나 하드웨어에 장애가 발생하면, 결함 하드웨어 교체는 AWS의 책임입니다.

  • 데이터 보안 : 직원이나 외부인이 데이터에 접근하지 못하도록 데이터 접근 통제를 관리합니다.

2. 고객의 책임

  • 백업 및 스냅샷 : 데이터를 보호하기 위해 백업 설정과 스냅샷 절차를 마련하는것은 고객의 몫입니다.
  • 데이터 암호화 : AWS나 타 고객이 데이터에 접근하지 못하도록 데이터 암호화 설정은 고객이 관리해야합니다.
  • EC2 인스턴스 스토어 관리 : EC2 인스턴스 스토어는 인스턴스 중지나 종료시 데이터가 손실 될 수 있으므로 ,고객은 데이터 백업과 같은 보호 조치를 마련해야합니다.

Amazon FSx - 고성능 파일 시스템 관리

1. Amazon Fsx 개요

  • Amazon FSx타사 고성능 파일 시스템을 AWS에서 관리형 서비스로 제공하는 솔루션입니다.
  • EFS나 S3와는 다른 파일 시스템을 관리하고자 할 때 사용됩니다.
  • 대표적인 두가지 주요 옵션 :
  1. FSx for Windows File Server
  2. Fsx for Lustre

2. FSx for Windows File Server

  • Windows 파일 서버에 최적화된 완전 관리형 파일 시스템입니다.
  • SMB 프로토콜Windows NTFS를 지원하며, Microsoft Active Directory**와 통합됩니다.
  • Windows 기반의 EC2인스턴스와 온프레미스 인프라에서도 액세스 가능
  • 고신뢰성과 확장성을 가진 Windows 파일 공유 시스템입니다.

3. FSx for Lustre

  • 고성능 컴퓨팅 용도로 설계된 완전 관리형 파일 스토리지입니다.
  • LUStreLinux와 클러스터를 결합한 고성능 파일 시스템으로 대규모 데이터 처리 및 분석 작업에 적합합니다.
  • 초당 수백 GB의 데이터를 처리하며 지연 시간이 매우 낮습니다(밀리초 미만)
  • 머신 러닝,비디오 처리,재무 모델링 등의 고성능 컴퓨팅 작업에 최적화 되어있습니다.

4. 백엔드 데이터 저장

  • FSx for Lustre는 데이터를 Amazon S3에 저장하여 백엔드 스토리지를 제공합니다.

Elasitc Load Balancer와 Auto Scaling Group

1. 확장성의 두가지 유형

  • 수직 확장성(Vertical Scaling)** : 인스턴스의 크기를 늘려 더 많은 부하를 처리하는 방식입니다.
  • 예 : t2.micro에서 t2.large로 업그레이드
  • 한계 : 하드웨어 성능에 제한이 있습니다.
  • 수평 확장성 : 인스턴스의 수량을 늘려 부하를 분산하는 방식입니다.
  • 예 : 1명의 상담원을 6명으로 늘리는 것처럼 EC2 인스턴스를 더 배치한다.
  • 분산 시스템에 적합하며, AWS 웹 애플리케이션에 많이 사용됩니다.

2. 고가용성(High Availability)

  • 애플리케이션을 여러 가용영역(AZ)에 배포하여 한곳에서 장애가 발생해도 다른 AZ에서 애플리케이션을 계속 실행할 수 있게 해줍니다.
  • AWS에서 2개 이상의 가용 영역을 사용하여 재해 복구 대응이 가능합니다.

3. 오토 스케일링 그룹과 로드 밸런서

  • 오토 스케일링 그룹(ASG): EC2 인스턴스를 자동으로 스케일 아웃(인스턴스 수를 증가)하거나 스케일 인(인스턴스 수를 줄임)하고, 수평확장성을 지원해줍니다.
  • Elastic Load Balancer(ELB) : 여러 가용 영역(AZ)에 분산된 인스턴스 사이에서 트래픽을 분산하여 애플리케이션의 고가용성을 지원합니다.

4. 확장성과 탄력성(Elasticity)

  • 확장성 : 인스턴스를 스케일업(크기 증가)하거나 스케일 아웃(인스턴스 수 증가)하여 더 큰 부하를 처리할 수 있게 해줍니다.
  • 탄력성 : 오토 스케일링을 통해 수요에 따라 자동으로 확장또는 축소되며 사용한 만큼 비용을 지불합니다. AWS클라우드의 핵심개념입니다.

5. 민첩성

  • 민첩성은 확장성 및 탄력성과는 다른 개념으로 조직이 필요할 때 클릭 한번으로 리소스를 확보하고 빠르게 리소스를 사용하는 능력을 의미합니다.

AWS Elastic Load Balancer

1. Elastic Load Balancer(ELB)란?

  • 로드 밸런서 : 인터넷 트래픽을 여러 EC2 인스턴스로 분산시킵니다.
  • 단일 액세스 포인트 : 애플리케이션에 대한 단일 DNS 호스트 이름을 제공하여 다양한 서버로의 접근을 간소화합니다.
  • 장애 처리 : 인스턴스 장애 발생시 자동으로 트래픽을 다른 인스턴스로 재할당하여 서비스 중단을 방지합니다.
  • HTTPS 지원 : SSL 종료와 HTTPS 제공을 쉽게 설정할 수 있어 보안 설정이 간편해집니다.
  • 고가용성 : 여러 가용 영역에서 트래픽을 분산하여 시스템의 안정성을 높일 수 있습니다.

2. ELB 유형

1. Application Load Balancer(ALB)

  • 계층 7 : HTTP,HTTPS 트래픽을 처리하며 애플리케이션 계층의 로드 밸런싱을 담당합니다.
  • 사용 사례 : 주로 웹 애플리케이션과 마이크로서비스 아키텍처에서 사용됩니다.

2. Network Load Balancer(NLB)

  • 계층 4 : TCP,UDP 트래픽을 처리하며 매우 높은 성능을 제공합니다.
  • 고성능 : 초당 수백만 건의 요청을 처리할 수 있는 능력을 갖추고 있습니다.
  • 정적 IP 제공 : 탄력적 IP를 사용하여 정적 IP를 제공합니다.

3. Gateway Load Balancer(GWLB)

  • 계층 3 : GENEVE 프로토콜을 사용하여 IP 패킷을 처리합니다.
  • 사용 사례 : 방화벽,침입탐지,심층 패킷 검사 등 네트워크 보안 작업에 사용됩니다.

4. Classic Load Balancer(CLB)

  • 이전 세대 로드 밸런서로 2023년에 폐기되었습니다.
  • ALB 및 NLB로 대체되었습니다.

3. 주요 기능

  • 상태 확인 : 로드 밸런서는 EC2 인스턴스 상태를 주기적으로 확인하여 장애 발생시 트래픽을 다른 인스턴스로 전환합니다. 이를 통해 서비스의 연속성을 유지할 수 있습니다.
  • 확장성 : 트래픽 증가에 따라 자동으로 백엔드 인스턴스를 확장하여 부하를 효과적으로 분산시킵니다. 이는 애플리케이션의 성능을 지속적으로 유지하는데 중요한 역할을 합니다.
  • 관리형 서비스 : AWS에서 업그레이드와 유지보수를 자동으로 처리하므로 개발자는 운영부담을 덜고 애플리케이션 개발에 집중할 수 있습니다.

AWS Auto Scaling Group

1. 오토 스케일링 그룹이란?

  • 오토 스케일링 그룹(ASG)는 트래픽 부하에 맞춰 자동으로 EC2 인스턴스를 확장(스케일 아웃)하거나 축소(스케일 인) 할 수 있는** AWS 서비스입니다.
  • 웹 애플리케이션의 트래픽은 시간대나 상황에 따라 변화하기때문에 오토 스케일링 그룹을 사용하면 이러한 변화에 따라 적절한 리소스를 자동으로 조정할 수 있습니다.

2. 주요 기능

  • 스케일 아웃 : 웹사이트 트래픽이 증가할 때 EC2 인스턴스를 자동으로 추가하여 확장합니다. 예를 들어 낮 시간대에 트래픽이 많을 때 추가 리소스를 통해 더 많은 사용자를 수용합니다.
  • 스케일 인 : 트래픽이 감소하면 EC2 인스턴스를 자동으로 제거하여 비용을 절감합니다. 밤 시간대처럼 부하가 적을 때는 서버 리소스를 줄여 최적의 비용관리가 가능합니다.
  • 비정상 인스턴스 교체 : 애플리케이션 오류나 서버 비정상 상태를 감지하면 오토 스케일링 그룹은 해당 EC2 인스턴스를 종료하고 정상 인스턴스로 교체합니다.

3. Auto Scaling Group과 로드 밸런서의 동작방식

  • 로드 밸런서와 통합 : 오토 스케일링 그룹이 EC2 인스턴스를 추가하거나 제거할 때 로드 밸런서는 자동으로 트래픽을 분배합니다.
    • EC2 인스턴스를 제거하면 로드 밸런서에서 등록 해지되며 더 이상 트래픽을 받지 않습니다.

4. Auto Scaling Group의 설정

  • 최소 인스턴스 크기 : 오토 스케일링 그룹이 항상 유지할 최소한의 EC2 인스턴스 개수입니다.
  • 희망 용량 : 일반적으로 오토 스케일링 그룹의 기본 크기로 동작하는 EC2 인스턴스 개수입니다.
  • 최대 인스턴스 크기 : 오토 스케일링 그룹이 최대로 확장할 수 있는 EC2 인스턴스 개수입니다.

5. 비용 절감 효과

  • 오토 스케일링 그룹을 사용하면 트래픽 부하에 맞춰 서버 리소스를 자동으로 최적화하여 비용을 절감할 수 있습니다. 이는 클라우드의 핵심 원칙인 탄력성과 유연성을 기반으로 합니다.

오토 스케일링 그룹의 다양한 스케일링 전략

1. 수동 스케일링

사용자가 직접 ASG의 인스턴스 용량을 수동으로 조정하는 방식입니다 필요에 따라 인스턴스의 개수를 늘리거나 줄일 수 있습니다.

2. 동적 스케일링

  • 시스템 상태에 따라 자동으로 인스턴스를 추가하거나 제거하는 방식입니다.
    • 단순/단계 스케일링 : CloudWatch 경보를 기반으로 트리거되어 특정 수의 인스턴스를 추가하거나 제거합니다.
    • 대상 추적 스케일링 : CPU 사용률 등 목표 메트릭을 설정하여 자동으로 인스턴스를 조정해 목표를 유지합니다.
    • 예약 스케일링 : 특정 시간대나 사용자 패턴을 기반으로 ASG의 크기를 미리 설정하여 예측 가능한 수요에 맞춥니다.

3. 예측 스케일링

머신 러닝을 활용해 트래픽 패턴을 분석하고, 이에 맞춰 미리 필요한 인스턴스를 자동으로 프로비저닝하는 방식입니다. 이를 통해 트래픽이 증가할 시점을 예측하고 대응할 수 있습니다.

profile
DevOps 전향을 준비 중인 인프라 지향형 주니어 개발자

0개의 댓글