오래전부터 하려 했으나, 못했던, AWS 제품 정리.
제품 정리를 위해서 아키텍처를 예를 들면서 설명하려고 한다.
아래의 아키텍처는 SM엔터테이먼트가 사용하는(사용했던) AWS 아키텍쳐로, AWS 홍보 자료에 있는 아키텍처이다.
컴퓨팅인 EC2와 스토리지인 S3를 설명하기 위해 좋은 아키텍처이고, 간단해서 가져와봤다.
우선 EC2
Elasitc Compute Cloud
클라우드에서 확장 가능한 컴퓨팅 용량을 제공하는 서비스이다. 확장 가능(Elastic, 탄력있는)한 컴퓨터(Compute)라고 보면 될 것 같다.(클라우드에서 사용되는(Cloud))
단위는 인스턴스라고 한다. 컴퓨터 한대 두대, 이런 것 처럼 EC2 인스턴스 하나, 둘.. 이렇게 보면 된다.
이 EC2 인스턴스는 CPU, 메모리, 스토리지, 네트워킹 용량 등의 컴퓨팅을 위한 정보를 바탕으로 구성된다. 이와 같은 정보들을 비롯해서 운영체제와 여러 소프트웨어들이 포함된 상태로 템플릿으로 만든 것을 AMI(Amazon Machine Image)라고 하며, 이 AMI를 통해 인스턴스를 쉽게 구성할 수 있다.(동일한 사양의인스턴스를 구성할 때 좋음)
인스턴스 스토어 볼륨이라고 해서 휘발성 메모리가 있고(RAM 같은것, 인스턴스 중단 혹은 종료 시 데이터 삭제) , 비휘발성 메모리로 EBS, EFS, S3가 있다(데이터는 사용자가 삭제하기 전까지 유지).
EBS는 EC2-EBS가 1:1로 연결되는 Elastic Block Store로 EC2의 블로 스토리지 "볼륨"이며 당연히 블록 시스템이며, 컴퓨터의 붙어 있는 디스크와 가장 근접하다.(파일 시스템이 아니라 블록 시스템이라는 것만 뻬면)
EFS는 EC2-EFS가 N:1로 연결되는 Elastic File System으로 파일 시스템이며, 여러 인스턴스가 한 파일 스토리지에 접근할 수 있다. 파일 서버와 유사하다고 보면 될 것 같다.
이번 글에서 다룰 S3는 Simple Storage Service로 오브젝트 스토리지이다. 뛰어난 내구성을 가지고 있으며, 확장성이 좋다. 그리고 오브젝트 시스템이기 때문에, 비정형 데이타인 음악과 이미지를 저장하기 위해 S3를 사용한 것 같다. 이 부분은 밑에서 좀 더 다뤄 보겠다.
그리고, EC2를 이용하기 위해서는 IP가 필요한데, EC2에서 기본적으로 제공되는 IP는 유동 IP이다. 그래서 EC2가 종료되고 다시 시작하게 되면 IP가 바뀌게 된다. IP를 고정 IP로 사용하기 위해서는 EIP라는 Elatic IP를 사용해야된다.(IPv4) EIP는 사용하는 것은 무료지만, 할당 받고 사용하지 않으면 과금되는 조금 신기한 체계이다.(쓸때없이 IP 낭비 하다니 괘씸한 것 뭐 이런 느낌?)
그리고... S3..
S3만 설명은 그냥 홈페이지에서 옮겨 적기만 해도 한나절 걸릴텐데.. 여튼
S3는 객체(object)라는 데이터와 메타데이터를 구성하고 있는 단위로 사용된다. 그리고 버킷이라고, 이러한 객체들을 저장하고 관리하는 컨테이너이다. 버킷에 저장할 수 있는 객체 수는 제한이 없고, 버킷은 최대 100개까지 가능하다(확장성이 뛰어나단 소리)
이 S3는 4가지의 상품으로 구성되어있다.
Standard, Standard-IA, Glacier 그리고 Intelligent-Tiering
S3 Standard는 말 그대로 standard이다. 일반적인 사용이면 standard를 사용하면 된다.
자주 엑세스 하는 데이터에 높은 내구성과 가용성, 성능등을 제공한다.(짧은 지연 시간, 많은 처리량)
S3 Standard-Infrequent Access
빈번하게 엑세스를 하진 않지만, 해당 데이터(객체)가 필요하게 될 때 바르게 엑세스를 해야한다면 Standard-IA를 사용하는 것이 좋다.
S3 One Zone-IA는 Standard-IA랑 동일한데, 하나의 가용 영역(Availability Zone)만 사용하는 것이다. S3 One Zone-IA를 제외하고 다른 S3 제품군은 3개 이상의 AZ를 사용한다. 그래서 하나의 AZ에 문제가 생겨도 다른 두 AZ이 있기 때문에 데이터 복원이 쉬운데, One Zone-IA에 경우 데이터 복원이 불가능하다. 대신 가격이 저렴하다는 장점은 있다. 그래서 데이터를 복원할 수 있는(온프레미스 스토리지를 통해서, 혹은 다른 방법을 통해서 손실 된 데이터를 복구할 수 있는 다른 방법이 있다면, 이 스토리지를 사용하는 것이 좋다.)
S3 Standard/One Zone-IA의 성능은 S3 Standard와 비교해서 성능은 동일하지만, 비용은 약 40% 절약된다. 그러면 당연히 S3 - IA를 쓰는 것이 합리적으로 보이지만...그렇지 않다.
S3는 Standard는 이용한 기간, 이용한 양만큼 비용을 지불하면 된다. 하지만 IA의 경우는 30일 보관했다 치고, 이용한 양만큼 비용르 지불하게 된다. 즉 A라는 데이터(객체)는 빈번하게 접속되는 데이터가 아니야, 라고 했지만, 일주일 마다 A에 엑세스를 했다면(총 2번, 총 14일 S3 이용), 30일(7일 보관료+최소 기간 30일의 남은 기간에 해당하는 비례 할당으로 계산된 요청 요금)의 요금이 2번 부과되는 셈이다.(총 60일) S3 Standard를 사용했다면, 14일 이용요금만 내면 되는 것이었는데 말이다.
S3 Glacier Instant Retrieval & Glacier Flexible Retrieval & Glacier Deep Archive
S3 Glacier Instant Retrieval은 IA랑 비슷하게 Standard랑 동일한 성능을 보이고, 최소 기간 90일이라는 조건이 있다. IA처럼 90일 이전에 데이터에 엑세스가 된다면 남은 기간에 해당하는 비례 할당으로 계산된 요금을 추가로 청구 받는다.
그래서 Glacier라고 하지만, 그렇게 저렴하지 않다.
Glacier Flexible Retrieval. 이 얘가 오리지널 Glacier이다.(예전에 이 Glacier 하나 뿐이었음) 이것도 90일이라는 조건은 동일하지만, Glacier Instant Retrieval와 차이점은 성능이다. S3 Standard가 밀리초의 성능(지연시간)을 보인다면, Glacier Flexible Retrieval의 경우 1분에서 12시간 걸린다. 그래서 데이터(객체)의 요청이 있을 때, 바로 검색이 되어서 사용되어야 되는 데이터라면 이 상품을 사용해서는 안된다. 대신, 가격은 싸다.
Glacier Deep Archive의 경우에는 180일으로 최소 이용기간이 더 길고, 지연시간은 수 시간(12시간 이내, 1시간 이상) 걸린다. 물론, 그래서 가격은 더 더 싸다.
뭐.. 메타데이터 어쩌구 저쩌구 가격 정책이 더 있지만 이건 넘어 가는 것으로...
S3 Intelligent-Tiering은 데이터에 대해 얼마나 많은 엑세스가 있을 지 예상을 할 수 없거나 시간이 지남에 따라 데이터에 엑세스가 변화가 있을 때 사용하기 좋은 S3 제품으로, 위의 3가지 S3가 티어링 할 수 있는 S3이다.
=> Standard를 써야할지, IA를 써야할지, Glacier를 써야할지 모르겠는데, 저렴하게, 혹은 3가지를 적절하게 믹스해서 쓰고 싶을 때 사용하면 되는 것이 S3 Intelligent-Tiering이다.
우선 스토리지 티어링이란 자주 접근하는 데이터를 빠른 스토리지(디스크)에, 접근 빈도가 낮은 데이터를 느리 스토리지(디스크)에 저장(이동)하는 것이다. SSD에는 엑세스가 빈번한 데이터, HDD에는 엑세스가 적은 데이터로 옮기고 그런 것인데, S3 자체가 SSD를 사용하는 것은 아니여서 이런 SSD<->HDD 간에 데이터 이동(저장)이 있는 티어링이 대신, Standard에서 IA로, IA에서 Glacier로 옮기는 것과 비슷하다.
처음 데이터는 Frequent Access(Standard에 해당)에 저장되어 있고, 그 중 30일 이상 엑세스 하지 않은 데이터(객체)를 Infrequent Access 티어(Standard-IA에 해당)로, 90일 엑세스 하지 않은 것은 Archive Instant Access 티어(Glacier Instant/Flexivle Retrieval에 해당)로, 180일 이상 엑세스 하지 않거나 즉각적인 검색이 필요하지 않는 데이터(객체)에 대해서는 Deep Archive Access 티어(Glacier Deep Archive에 해당)로 이동 시킨다. 그리고 Infrequent Access티어나 Archive Instant Access 티어, Deep Archive Access 티어로 옮겨진 데이터(객체)에 엑세스가 일어나면 그 데이터(객체)는 Fequent Access로 옮긴다.
S3 Intelligent-Tiering을 사용하게 되면, 남은 기간에 해당하는 금액을 지불하지 않으면서, 사용하지 않은 데이터는 자동으로 저렴하게 보관할 수 있기 때문에 더 좋아보이지만!
1) 우선은 Frequent Access 티어에서 저장된다는 것 => 처음에는 모든 데이터(객체)가 Standard 요금으로 사용
2) 모니터링하고 자동 계층화 시키는 요금은 추가적으로 부과
3) One Zone -IA는 S3 Intelligent-Tiering에서 지원하지 않기 때문에, One Zone을 사용할 수 있는 조건이라면 손해일 수도 있음.
그렇기 때문에, 앞서 말했듯이 엑세스가 예상이 되지 않거나! 엑세스의 변화가 있을 데이터들을 대상으로 사용하는 것이 좋다.
'AWS 정리 > AWS 개념 정리' 카테고리의 다른 글
AWS Athena / Redshift / QuickSight (0) | 2022.01.16 |
---|---|
AWS GLUE 와 EMR-EMR/MapReduce/Spark (0) | 2022.01.16 |
AWS GLUE 와 EMR-/후처리/Glue Studio/Crawler/Data Catalog (0) | 2022.01.16 |
AWS GLUE 와 EMR-우선 빅데이터/전처리/Glue Databrew (0) | 2022.01.15 |