최근 AWS S3 중단에서 얻은 교훈

Amazon S3는 AWS Lambda, Elastic BeanStalk 및 Amazon의 자체 서비스 상태 대시 보드를 비롯한 많은 AWS 서비스를 뒷받침합니다. 또한 매일이를 사용하는 다른 많은 인터넷 서비스에 대한 개체 및 미디어 저장소 역할도합니다.

2017 년 2 월 28 일 AWS는 US-EAST–1 리전에서 Amazon S3 서비스가 몇 시간 동안 중단되었습니다. 이는 Dockerhub와 같은 서비스를 포함하여 인터넷의 좋은 청크에서 중단의 연속적인 효과를 생성했습니다.

인적 오류가 근본 원인으로 밝혀졌습니다.

오전 9시 37 분 PST에 설정된 플레이 북을 사용하는 권한있는 S3 팀 구성원이 S3 청구 프로세스에서 사용되는 S3 하위 시스템 중 하나에 대해 적은 수의 서버를 제거하기위한 명령을 실행했습니다. 불행히도 명령에 대한 입력 중 하나가 잘못 입력되어 의도 한 것보다 더 많은 서버 집합이 제거되었습니다.

결과적으로 내구성과 가용성의 차이에 대한 일반적인 오해가 있습니다. 내구성은 스토리지의 신뢰성을 측정하고 "데이터를 잃게 될까요?"라는 질문에 답합니다. 반면 가용성은 데이터에 얼마나 액세스 할 수 있는지 측정합니다. 즉, "내 데이터를 검색 할 수 있습니까?"

AWS S3는 단일 리전 내에서 99.999999999 %의 내구성을 제공합니다. Amazon의 예를 살펴보면 S3에 10,000 개의 객체를 저장하면 평균적으로 1 천만년에 한 번씩 단일 객체가 손실 될 수 있습니다. Amazon S3는 지역 내의 여러 시설에 데이터를 복제하여이를 수행합니다.

반면에 객체의 표준 S3 가용성은 한 지역 내에서 연간 99.99 %입니다. 즉, 주어진 12 개월 기간 동안 총 52 분 33 초 동안 데이터에 액세스 할 수 없을 것으로 예상해야합니다.

AWS는 IaaS 및 PaaS 서비스를 모두 제공합니다. IaaS 수준에서 AWS 고객은 가상 서버와 네트워크를 완전히 제어 할 수 있습니다. 원하는 소프트웨어와 서비스를 구성 할 수 있으며 스스로 관리합니다. 모든 중단은 고객의 책임입니다.

PaaS 수준에서 AWS는 객체 스토리지, 데이터베이스, 대기열 등과 같은 완전 관리 형 플랫폼 서비스를 제공합니다. 클라이언트는 이러한 서비스의 가용성 및 내구성에 대한 책임을 관리 형 서비스 공급자 (이 경우 AWS)에 위임합니다. 독점 API를 통해 활용되는 AWS 플랫폼 서비스는 특히 AWS에서의 인적 오류로 인한 지역적 중단에 취약합니다.

인적 오류로 인해 온 프레미스, 클라우드, 관리 형 또는 자체 호스팅 등 어디서나 중단이 발생할 수 있습니다. 최근의 Delta 컴퓨터 중단을 전체 자체 호스팅 시스템이 다운되는 예로 고려하십시오. 플랫폼 서비스 관리 책임을 클라우드 공급자에게 위임한다고해서 인적 오류로 인해 서비스가 중단 될 수 있다는 사실이 바뀌지는 않지만 그 영향이 증폭됩니다. 델타 중단은 델타에만 영향을 미쳤지 만 AWS S3 중단은 인터넷의 상당 부분에 영향을 미쳤습니다.

다행히 AWS S3는 중단의 영향을 줄이기위한 충분한 도구를 제공합니다. 몇 가지만 고려해 봅시다.

S3 교차 리전 복제

특정 S3 지역에 저장된 데이터는 모든 가용 영역에 복제되며 모든 영역에서 중단을 유지할 수 있습니다. 그러나 2 월 28 일에 발생한 것과 같은 전체 지역의 중단에서 살아남을 수는 없습니다. 지리적 리전에 걸쳐 S3 객체를 복제하면 증가 된 중복 요구 사항을 충족하는 데 도움이됩니다.

백업

지역 간 복제는 가용성을 높이는 데 도움이 될 수 있습니다. AWS Glacier에 대한 백업은 내구성 향상에 기여할 수 있습니다. 편리하게 AWS는 S3의 객체를 Glacier로 백업하는 자동 메커니즘을 제공합니다.

CloudFront를 사용한 콘텐츠 배포 고려

S3 객체에 자주 액세스하는 경우 S3에서 객체를 제공하도록 AWS CloudFront를 구성하는 것이 좋습니다. CloudFront는 사용자에게 가장 필요한 곳에 데이터를 복제하고 일부 사용 사례에서 S3 중단의 영향을 완화하는 데 도움이 될 수 있습니다.

마지막 생각들

관리 형 플랫폼 서비스는 클라우드 서비스의 초석입니다. S3와 같은 것을 사용하면 DevOps 비용을 줄이고 애플리케이션을 더 빨리 출시 할 수 있습니다. AWS는 수년 동안 매우 안정적 이었지만 Amazon은 과거에 자초로 인한 중단을 경험했습니다. 최근 S3 중단도 예외는 아닙니다. 지역 간 복제, 백업 및 콘텐츠 배포의 일부 조합은 이러한 중단의 영향을 줄여야합니다.