상세 컨텐츠

본문 제목

25.03.17. AWS Cloud Practitioner Essentials

AWS CLOUD SCHOOL 9기

by AI Engineer crystal 2025. 3. 17. 11:47

본문

내결함성(fault tolerance)

시스템이나 서비스가 일부 구성 요소에서 문제가 발생하더라도 전체 시스템이 정상적으로 운영될 수 있도록 설계하는 것을 의미합니다. 이를 좀 더 구체적으로 설명하자면, 시스템이 특정 하드웨어, 소프트웨어, 네트워크 등의 장애가 발생해도 시스템 전체의 가용성과 성능이 저하되지 않도록 하는 능력입니다.

  1. 장애 감지 및 대응: 내결함성 시스템은 장애를 신속하게 감지하고 이를 자동으로 해결하거나 대체할 수 있는 메커니즘을 갖추고 있습니다. 예를 들어, 서버 하나가 다운되면 다른 서버가 이를 대신하여 서비스를 계속 제공하도록 하는 방식입니다.
  2. 중복성 (Redundancy): 내결함성을 확보하기 위해 중요한 구성 요소들은 중복되어 배치됩니다. 예를 들어, 데이터베이스는 여러 대의 서버에 분산되어 저장되고, 여러 네트워크 경로가 존재하여 한 경로에 장애가 발생해도 다른 경로를 통해 데이터를 전달할 수 있습니다.
  3. 복구 및 자동화: 장애가 발생한 후에도 시스템은 빠르게 복구될 수 있도록 설계됩니다. 예를 들어, 자동화된 복구 절차나 시스템 재구성을 통해 서비스를 지연 없이 복구하는 방식이 포함됩니다.
  4. 지속적인 서비스 제공: 시스템이 장애가 발생한 경우에도 서비스의 가용성을 유지하며, 사용자는 장애를 인지하지 못하게 됩니다. 이는 데이터 백업, 로드 밸런싱, 클러스터링 등의 기법을 통해 달성됩니다.

따라서 내결함성은 단순히 다른 곳에서 동일한 환경을 사용하는 것을 넘어서, 시스템이 장애 상황에 대비하고, 문제 발생 시 신속하게 복구하며, 서비스를 계속 제공할 수 있도록 다양한 기술적 조치를 취하는 것을 의미합니다.

CDN(Content Delivery Network)

전 세계에 분산된 서버 네트워크를 통해 사용자에게 웹 콘텐츠를 빠르게 전달하는 시스템입니다. CDN의 주요 목적은 웹 사이트의 성능을 향상시키고, 사용자에게 더 빠르고 안정적인 콘텐츠 전달을 제공하는 것입니다.

CDN의 주요 기능과 개념:

  1. 콘텐츠 분산: CDN은 웹 사이트의 콘텐츠(예: 이미지, 비디오, HTML 파일, JavaScript, CSS 파일 등)를 여러 서버에 복제하여 분산 저장합니다. 이 서버들은 지리적으로 사용자와 가까운 위치에 배치되어 있어, 사용자가 콘텐츠를 요청할 때, 가장 가까운 서버에서 해당 콘텐츠를 빠르게 전달받을 수 있습니다.
  2. 지리적 최적화: 사용자가 웹 사이트에 접속하면, CDN은 사용자와 가장 가까운 서버를 찾아 콘텐츠를 제공하여 네트워크 지연(latency)을 최소화하고, 더 빠른 페이지 로딩 시간을 제공합니다. 예를 들어, 한국에서 웹 페이지를 요청하면, 한국에 위치한 서버나 근처의 서버가 콘텐츠를 전송하게 됩니다.
  3. 로드 밸런싱: CDN은 여러 서버에 트래픽을 분산시켜 서버 부하를 균등하게 유지합니다. 이는 특정 서버에 과부하가 걸리는 것을 방지하고, 서버 장애 시에도 서비스가 중단되지 않도록 도와줍니다.
  4. 캐싱: CDN 서버는 콘텐츠를 캐시하여 동일한 콘텐츠를 여러 번 요청하는 경우, 다시 원본 서버에 접근하지 않고 캐시된 콘텐츠를 제공합니다. 이를 통해 원본 서버의 부하를 줄이고, 사용자에게 빠르게 콘텐츠를 전달할 수 있습니다.
  5. 보안: CDN은 DDoS(분산 서비스 거부 공격) 방어, SSL/TLS 암호화, 웹 애플리케이션 방화벽(WAF) 등 다양한 보안 기능을 제공합니다. 이러한 보안 기능들은 사이트를 공격으로부터 보호하고, 안전한 콘텐츠 전달을 보장합니다.

CDN의 장점:

  1. 성능 향상: 콘텐츠가 사용자와 가까운 서버에서 제공되므로, 페이지 로딩 속도가 빨라집니다. 이는 사용자 경험을 향상시키고, 검색엔진 최적화(SEO)에 긍정적인 영향을 미칠 수 있습니다.
  2. 확장성: CDN을 사용하면 트래픽이 급증할 때도 원본 서버에 과부하가 걸리지 않도록 서버가 분산되어 있어, 많은 사용자들이 동시에 접속해도 안정적인 서비스를 제공할 수 있습니다.
  3. 비용 절감: CDN은 원본 서버의 부하를 줄여주므로, 더 많은 트래픽을 처리할 수 있게 되며, 원본 서버의 대역폭 비용을 절감할 수 있습니다.
  4. 보안: 웹 사이트가 CDN을 사용하면, CDN이 기본적으로 제공하는 보안 기능들로 인해 DDoS 공격이나 데이터 유출 위험으로부터 보호받을 수 있습니다.

CDN을 사용하는 대표적인 사례:

  • 웹사이트: 예를 들어, 대형 웹사이트나 eCommerce 사이트는 CDN을 사용하여 전 세계에서 빠르게 콘텐츠를 전달하고, 트래픽 부하를 분산시킵니다.
  • 비디오 스트리밍: Netflix, YouTube와 같은 스트리밍 서비스는 CDN을 통해 전 세계 사용자에게 빠르고 안정적인 비디오 콘텐츠를 제공합니다.
  • 게임: 온라인 게임 회사들은 CDN을 통해 패치, 업데이트 파일 등을 빠르게 전달하며, 사용자 경험을 향상시킵니다.

AWS에서 테넌시(Tenancy)

리소스(예: EC2 인스턴스)가 물리적으로 어떻게 배치되고 격리되는지를 나타내는 개념입니다. AWS에서는 여러 가지 테넌시 옵션을 제공하며, 이는 주로 보안 요구 사항이나 성능 최적화에 영향을 미칩니다.

1. Shared Tenancy (공유 테넌시)

  • 기본값: 대부분의 경우 AWS에서 사용되는 기본 테넌시입니다.
  • 설명: 여러 고객의 EC2 인스턴스가 동일한 물리적 서버에서 실행됩니다. 각 인스턴스는 하드웨어 자원을 독립적으로 공유하지만, 물리적으로 격리된 환경에서 실행됩니다.
  • 장점: 비용 효율적이며, 큰 규모의 서비스를 필요로 하지 않는 일반적인 워크로드에 적합합니다.
  • 예시: 일반적인 웹 애플리케이션, 개발 및 테스트 환경 등

2. Dedicated Tenancy (전용 테넌시)

  • 설명: 이 테넌시에서는 EC2 인스턴스가 특정 물리적 서버에서만 실행됩니다. 즉, 해당 서버는 오직 하나의 AWS 계정에만 할당되어, 다른 고객의 인스턴스와 겹치지 않습니다.
  • 장점: 특정 규제 준수나 보안 요구 사항이 있는 경우 유용합니다. 예를 들어, 데이터를 완전히 물리적으로 격리해야 하는 경우 전용 서버가 필요할 수 있습니다.
  • 사용 예시: 금융 산업, 정부 기관, 규제가 엄격한 분야에서 사용하는 인프라.

전용 호스트와 전용 인스턴스

1. 전용 호스트 (Dedicated Host)

  • 설명: 전용 호스트는 AWS에서 제공하는 물리적 서버로, 하나의 고객만 이 서버를 사용할 수 있습니다. 즉, 전용 호스트는 특정 물리적 하드웨어에 대한 전체적인 제어를 제공합니다.
  • 제어 수준: 사용자는 물리적 서버에 대해 더 세밀한 제어를 할 수 있습니다. 예를 들어, 어떤 인스턴스를 어느 물리적 서버에 배치할지, 서버의 CPU 코어 수나 물리적 리소스를 어떻게 활용할지를 결정할 수 있습니다.
  • 용도: 특정 라이센스 요구사항이나 규제 준수, 또는 온프레미스 환경에서처럼 물리적 서버에 대한 고급 제어가 필요한 경우에 적합합니다. 또한, 소프트웨어 라이센스가 물리적 하드웨어에 따라 결정되는 경우 (예: Microsoft, SAP 등), 전용 호스트가 필요합니다.
  • 특징:
    • 물리적 서버에 대한 완전한 제어 제공
    • 인스턴스 배치에 대한 높은 유연성
    • 특정 하드웨어 리소스의 사용량 모니터링 가능
    • 소프트웨어 라이센스를 하드웨어 기반으로 관리할 수 있음

2. 전용 인스턴스 (Dedicated Instance)

  • 설명: 전용 인스턴스는 AWS의 물리적 서버를 공유하면서도 하드웨어 수준에서 격리된 인스턴스를 제공하는 옵션입니다. 즉, 다른 고객의 인스턴스와는 격리되어 동일한 물리적 서버에서만 실행됩니다.
  • 제어 수준: 전용 인스턴스는 물리적 서버를 공유하지만, 하드웨어에 대한 제어 권한은 없습니다. 즉, 어떤 물리적 서버에 배치될지에 대한 제어는 제공되지 않으며, 물리적 리소스를 어떻게 사용할지에 대한 관리도 불가능합니다. 다만, 다른 고객의 인스턴스와 격리되기 때문에 보안이 강화됩니다.
  • 용도: 기본적으로 전용 인스턴스는 고립된 환경에서 실행되기를 원하는 경우에 적합합니다. 예를 들어, 규제가 요구되거나 보안상 이유로 물리적 서버에서 격리된 환경이 필요한 경우 유용합니다. 그러나 물리적 하드웨어에 대한 제어가 필요하지 않은 경우에 사용됩니다.
  • 특징:
    • 동일한 물리적 서버에서 하드웨어 수준 격리
    • 물리적 서버에 대한 제어 불가능 (배치 위치, 하드웨어 리소스 관리 불가능)
    • 전용 서버에서 실행되지만, AWS 관리 하에 있음
    • 비용이 전용 호스트보다 다소 저렴함

관련글 더보기