1. 블록, 파일, 객체 스토리지
블록 수준 스토리지는 Amazon EBS,
파일 수준 스토리지로는 Amazon EFS 또는 Amazon FSx,
객체 수준 스토리지는 Amazon S3 및 Amazon S3 Glacier를 사용합니다.
블록 스토리지 | 파일 스토리지 | 객체 스토리지 | |
설명 | - 원시 스토리지 데이터가 관련 없는 블록의 어레이로 구성 - 호스트별로 대기시간이 짧은 전용 스토리지 제공 |
- 파일 시스템이 서로 관련 없는 데이터 블록을 관리 - 공유 파일을 엑세스 해야하는 애플리케이션에서 사용 |
- 데이터, 데이터 속성, 메타데이터, 객체 ID를 캡슐화하는 가상 컨테이너를 저장 - 방대한 확장성과 유연성 제공 - 분석, 백업 또는 아카이빙을 위해 기존 데이터 스토어를 가져오는 데 사용 |
예 | 하드디스크, 직접 연결 스토리지(DAS), 스토리지 영역 네트워크(SAN), 스토리지 어레이 | 네트워크 연결 스토리지(NAS) 어플라이언스, Windows 파일 서버 | Ceph, OpenStack Swift |
2. 객체 스토리지 솔루션을 선택하는 방법
Amazon S3 스토리지 등급, 저장할 객체와 해당 객체에 액세스할 빈도를 고려해서 비용 효율적인 솔루션을 선택합니다.
Amazon S3:
Amazon S3는 객체 수준 스토리지입니다.
Amazon S3에는 데이터가 버킷 내에 객체로 저장됩니다.
객체에는 파일 데이터, 메타데이터, 고유 식별자가 포함됩니다.
객체 스토리지에는 기존의 파일 및 폴더 구조가 사용되지 않습니다
Amazon S3에서 데이터는 됩니다.
Amazon S3는 웹 기반 AWS 관리 콘솔을 통해, API 및 SDK를 통해 프로그래밍 방식으로 또는 API 및 SDK를 사용하는 서드파티 설루션을 통해 액세스할 수 있습니다.
Amazon S3 활용:
신속한 혁신추진 | 기존 파일시스템에 대한 의존도 축소 |
민첩성 향상 | - 데이터의 양과 크기가 늘어나도 스토리지를 확장할 필요가 없음 - 개별 객체의 크기는 5TB를 초과할 수 없지만 총 데이터양은 필요한 만큼 저장 가능 |
비용 절감 | 액세스 빈도가 낮은 데이터의 비용 감소 효과 |
보안 강화 | 암호화 기능과 액세스 관리 도구로 데이터 보호 |
Amazon S3 사용 사례:
- 콘텐츠에 엑세스하는 사용자가 많은 경우
- 데이터 집합이 계속 커지는 경우
- 데이터를 한 번 기록한 후 여러번 읽는 경우
- 정적 웹 사이트를 호스트하는 경우 정적 데이터 액세스, 복제 및 보호 관리가 필요한 경우
Amazon S3 비용 요인:
스토리지 | - 객체 크기, 월별 객체 저장 기간 및 스토리지 등급에 따라 객체 저장 요금 발생 - PUT, COPY 또는 수명주기 규칙을 사용하여 데이터를 이동할 때는 요청 당 수집 요금 부과 |
요청 및 검색 | - S3 버킷 및 객체를 대상으로 하는 API 호출(PUT 및 GET 요청)의 수를 고려 - 요청 유형을 기준으로 책정되며, 요청 양에 따라 부과 - GET, LIST 및 기타 검색 요청에 대한 요금이 부과 |
데이터전송 | - 인터넷으로부터의 데이터 수신에는 전송 요금이 부과되지 않음 - 요청자의 로케이션과 데이터 전송 매체에 따라 각기 다른 요금 부과 |
관리 및 분석 | 계정 버킷에서 활성화하는 스토리지 관리기능 및 분석에 대한 비용 |
복제 | - 객체 복사본을 여러 개 생성하므로 스토리지 티어 요금 외에 각 PUT 요청 요금도 지불 - S3 교차 리전 복제 사용 시에도 AWS 리전 간에 데이터를 전송해야함 - AWS 결제금액이 크게 늘어날 수 있는 기능 |
버전 관리 | - AWS 결제금액이 크게 늘어날 수 있는 기능 |
Amazon S3 객체 보호:
1. 엑세스 제어
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/access-control-block-public-access.html
기본적으로 버킷, 객체, 관련 리소스 등의 모든 Amazon S3 리소스는 프라이빗으로 설정됩니다.
리소스 소유자(리소스를 생성한 AWS 계정)만 해당 리소스에 액세스할 수 있습니다.
리소스 소유자는 액세스 정책을 작성하여 다른 사용자에게 액세스 권한을 부여할 수 있습니다.
특정 리소스를 퍼블릭으로 설정할 수 있지만 대개 퍼블릭 엑세스 권한이 필요하지 않습니다.
Amazon S3에는 퍼블릭 액세스 차단 기능이 포함되어 있어 고객 데이터 노출을 방지할 수 있습니다.
2. 버킷 정책
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/example-bucket-policies.html
버킷 정책은 S3 버킷용 리소스 기반 정책으로, Amazon S3 버킷과 객체에 대한 권한을 부여할 수 있습니다.
IAM 정책, S3 버킷 정책, AWS Organizations 서비스 제어 정책(SCP) 등의 정책을 기반으로 데이터 액세스를 제어합니다.
JSON 기반 액세스 정책 언어를 사용해 버킷 정책을 작성합니다.
버킷 정책을 사용하면 버킷의 객체에 대한 권한을 추가하거나 거부할 수 있습니다.
Amazon S3 엑세스 포인트:
https://aws.amazon.com/ko/s3/features/access-points/
S3 액세스 포인트는 버킷에 연결되며, GetObject, PutObject 등의 S3 객체 작업을 수행하는 데 사용할 수 있는 명명된 네트워크 엔드포인트입니다.
Amazon S3의 공유 데이터 집합에서 데이터 액세스를 대규모로 간편하게 관리할 수 있습니다.
버킷 정책을 관리하지 않아도 특정 애플리케이션에 맞게 조정된 정책으로 공유 데이터 세트에 대한 액세스를 허용하는 애플리케이션 특정 액세스 포인트를 생성할 수 있습니다.
Amazon S3 객체 암호화 옵션:
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/serv-side-encryption.html
Amazon S3 관리형 키 (SSE-S3) |
- 각 객체용 암호화 키를 생성하는데 사용되는 기본 키 관리 - 주기적으로 교체되는 기본 키로 키 자체를 암호화 - 256비트 AES-256를 사용하여 데이터 암호화 |
AWS KMS 키 (SSE-KMS) |
- 사용자가 AWS KMS를 사용하여 암호화 키 관리 - KMS 키 사용 시에는 별도의 권한 필요하여 무단 액세스를 더욱 철저히 방지 - KMS 키가 사용된 시점 및 사용 주체를 표시하는 감사 추적 기능 제공 - 사용 요금 발생 |
고객 제공 키 (SSE-C) |
- 사용자가 암호화 키를 관리 - S3는 디스크에 쓰는 데이터의 암호화와, 사용자가 객체에 액세스할 때 복호화를 관리 |
Amazon S3 스토리지 클래스:
S3 Standard | - 자주 액세스하는 데이터의 일반적인 스토리지용 - 높은 비용 |
S3 Standard-IA | 장기간 사용하며 액세스 빈도는 낮은 데이터용 |
S3 One Zone-IA | 장기간 사용하고 액세스 빈도가 낮으며 가용 영역 하나에 저장할 수 있는 데이터용 |
S3 Glacier Instant Retrieval | 거의 액세스하지 않지만 빠르게 복원(미리 초 단위)해야 하는 아카이브 데이터용 |
S3 Glacier Flexible Retrieval | - 복원 필요성을 예측할 수 없는 객체 - 합리적인 비용에 가장 유동적인 검색 옵션을 제공 - 액세스 시간은 몇 분~몇 시간 범위인 등급 - Retrieval 옵션을 선택하면 저렴한 가격으로 모든 아카이브에 액세스 가능 - 신속 검색(1~5분 내에 복원) - 표준 검색(3~5시간 내에 복원) - 대량 검색(5~12시간 내에 복원) |
S3 Glacier Deep Archive | - 복원할 가능성이 없는 아카이브 데이터용 - 장기간 보관해야 하는 스토리지 아카이브와 디지털 콘텐츠 보존용 - 12시간 이내에 객체 복원 가능 - 낮은 비용 |
Amazon S3 Intelligent-Tiering은 성능 영향 또는 운영 오버헤드 없이 가장 비용 효과적인 액세스 계층으로 데이터를 자동으로 이동하여 스토리지 비용을 최적화하는 스토리지 클래스입니다.
액세스 패턴을 알 수 없거나 액세스 패턴이 변화하는 데이터에 대한 스토리지 비용을 최적화하려는 경우에 이상적입니다.
S3 Intelligent-Tiering은 3개의 액세스 계층에 객체를 자동으로 저장합니다.
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/storage-class-intro.html
Frequent Access | S3 Intelligent-Tiering에 처음 배정된 객체가 배치되는 계층 |
Infrequent Access | 30일 연속으로 액세스되지 않은 객체를 Infrequent Access 계층으로 이동 |
Archive Instant Access | 90일 연속으로 액세스되지 않은 객체를 Archive Instant Access 계층으로 이동 |
Amazon S3 Glacier의 이점:
https://aws.amazon.com/ko/s3/storage-classes/glacier/
- 매우 저렴하면서도 우수한 성능과 유연성을 보장
- 아카이브 된 데이터용 목적별 스토리지 제공
- 3가지 스토리지 등급
- 검색해야 하는 데이터와 검색 속도에 맞는 옵션을 선택해서 비용 최적화 가능
- 데이터는 저장 시에 암호화 가능
- 규정 준수, 감사로 길, 비용 관리 등의 기능 집합 제공
- 유휴 시 암호화, AWS CloudTrail 통합 및 검색 정책
- 확장성와 내구성 보장
- 데이터의 양(기가바이트~엑사바이트 단위)에 따라 크기 조정 가능
- 내구성 99.999999999% 보장
Amazon S3 버전 관리:
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/Versioning.html
Amazon S3에는 객체 스토리지가 사용되므로 파일의 일부를 변경하려면 수정된 파일 전체를 다시 업로드해야 합니다.
같은 버킷에 여러 객체 변형 버전을 유지할 수 있습니다.
이전 버전이나 특정 버전으로 객체를 복원할 수 있습니다.
데이터 보존 또는 보호를 위해 S3 객체 잠금을 사용할 수 있습니다.
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/object-lock.html
Amazon S3 수명 주기 정책:
S3 수명주기 정책은 객체 사용기간을 기준으로 객체를 삭제 또는 다른 스토리지 등급으로 전환할 수 있습니다.
이러한 방식을 통해 시간이 지나면서 데이터의 중요도가 감소하면 비용을 더 적게 지불함으로써 전체 비용을 줄일 수 있습니다.
객체별로 수명주기 규칙을 설정할 수 있을 뿐 아니라, 버킷별로 수명주기 규칙을 설정할 수도 있습니다
S3는 다음 다이어그램과 같이 스토리지 클래스 간 전환을 위한 폭포형(Waterfall) 모델을 지원합니다.
수명 주기 구성은 데이터 스토리지 티어를 자동으로 변경합니다.
Amazon S3 객체 복제:
https://aws.amazon.com/ko/s3/features/replication/
S3 복제는 버킷 간에 객체를 복제하는 탄력적이고 저렴한 완전관리형 기능입니다.
복제 시 다음과 같은 태스크를 수행할 수 있습니다.
- 메타데이터를 유지하면서 객체 복제(소스 객체와 동일한 복제본 생성)
- 여러 스토리지 등급에 객체 복제
- 복제본 소유권 변경
- 다른 AWS 리전으로 데이터 복제
Amazon S3 멀티파트 업로드:
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/mpuoverview.html
멀티 파트 업로드를 사용하면 대용량 객체를 관리 가능한 파트로 분할하여 일관되게 업로드할 수 있습니다.
다음 기능을 사용하면 대형 객체의 업로드 프로세스를 개선할 수 있습니다.
- 파트를 병렬로 업로드하여 처리량 개선
- 네트워크 오류로 인해 실패한 업로드의 재시작에 영향을 최소화
- 객체 업로드 일시 중지 및 재개로 객체 파트를 장시간에 걸쳐 업로드 가능
- 객체를 생성하는 동안 업로드 가능
- 최대 5TB 크기의 대용량 객체를 업로드 가능
Amazon S3 Transfer Acceleration:
Amazon S3 Transfer Acceleration은 전 세계에 배포된 AWS 에지 로케이션을 사용하여 클라이언트 애플리케이션간 거리를 줄이고, 버킷으로 데이터를 빠르고 쉽게 전송합니다.
데이터는 최적화된 네트워크 경로(가장 가까운 에지 로케이션)를 통해 Amazon S3로 라우팅 됩니다
다음과 같은 경우에 Transfer Acceleration을 사용할 수 있습니다.
- 전 세계 고객이 중앙 버킷 데 데이터를 업로드하는 경우
- 기가바이트~테라바이트 단위 데이터를 대륙 간에 정기적으로 전송하는 경우
- 인터넷을 통해 Amazon S3엔 데이터를 업로드할 때 사용 가능한 대역폭을 모두 활용하지 않는 경우
Amazon S3 이벤트 알림:
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/EventNotifications.html
Amazon S3 이벤트 알림을 사용하면 버킷에서 특정 객체 이벤트가 발생할 때 알림을 받을 수 있습니다.
이러한 이벤트 중심 모델에서는 더 이상 객체 변경 사항을 확인하기 위해 서버 기반 폴링 인프라를 구축하거나 유지관리할 필요가 없습니다.
처리할 변경사항이 없을 때는 해당 인프라의 유휴시간에 대한 요금을 지불하지 않아도 됩니다.
허용되는 이벤트 유형:
- 새 객체 생성 이벤트
- 객체 제거 이벤트
- 객체 이벤트 복원
- RRS(Reduced Redundancy Storage) 객체 손실 이벤트
- 복제 이벤트
- S3 수명 주기 만료 이벤트
- S3 수명 주기 전환 이벤트
- S3 Intelligent-Tiering 자동 아카이브 이벤트
- 객체 태깅 이벤트
- 객체 ACL PUT 이벤트
이벤트 알림 메시지를 전송할 수 있는 대상:
- Amazon Simple Notification Service(Amazon SNS) 주제
- Amazon Simple Queue Service(Amazon SQS) 대기열
- AWS Lambda 함수
3. 안전하고 확장 가능한 보안 스토리지 구축
Amazon EBS는 EC2 인스턴스 하나에 연결되는 제한 떄문에 완전 관리형 파일 스토리지 솔루션의 확장성, 가용성, 경제성을 갖추기 어렵습니다.
Amazon S3는 객체 스토어 시스템이므로 변경사항이 파일 내 문자 블록이 아니라 전체 파일을 덮어씁니다.
다양한 크기의 파일을 높은 처리량으로 변경하려면 파일 시스템인 Amazon EFS와 Amazon FSx가 적합합니다.
Amazon EFS:
https://docs.aws.amazon.com/ko_kr/efs/latest/ug/how-it-works.html
Amazon EFS은 파일을 추가하고 제거할 때 자동으로 확장되고 축소되며 관리 또는 프로비저닝이 필요하지 않습니다.
Linux 기반 워크로드를 AWS 클라우드 서비스와 온프레미스 리소스에서 사용할 수 있도록 확장 가능하며 탄력적인 파일시스템을 제공합니다.
Amazon EFS 파일시스템은 AWS 리전 내에서 데이터를 중복 저장하므로 우수한 가용성과 내구성이 보장됩니다.
파일시스템을 생성하여 Amazon EC2 인스턴스에 탑재한 다음 해당 파일 시스템에서 데이터를 읽고 쓸 수 있습니다.
Amazon EFS 파일시스템을 Network File System(NFS) 버전 4.0 및 4.1(NFSv4) 프로토콜을 통해 VPC에 탑재할 수 있습니다.
Amazon EFS 관리형 파일 시스템의 이점:
- 버스트 처리량 모드를 사용하여 스토리지 사용량에 따라 처리량을 확장합니다.
- 스토리지와 관계없이 처리량을 프로비저닝할 수 있습니다.
- 프로비저닝을 수행하지 않아도 파일 스토리지가 자동으로 확장 및 축소됩니다(서버리스).
- 스토리지 한도 초과방지를 위한 모니터링을 수행할 필요가 없습니다.
- 실제 사용한 만큼만 지불하여 총 소유 비용(TCO)을 줄일 수 있습니다.
- EFS Infrequent Access 또는 One Zone 스토리지 유형을 선택하면 비용을 절약할 수 있습니다.
Amazon EFS 스토리지 클래스:
https://docs.aws.amazon.com/ko_kr/efs/latest/ug/storage-classes.html
EFS Standard | - 자주 액세스하는 데이터에 사용 - 내구성과 가용성 보장 |
EFS Standard–Infrequent Access (IA) | - 수명이 길고 액세스 빈도가 낮은 데이터에 사용 - 내구성과 가용성 보장 - GB당 검색 요금이 적용 |
EFS One Zone | - 자주 액세스하는 데이터에 사용 - 하나의 가용영역에 파일 시스템 생성 |
EFS One Zone-IA | - 수명이 길고 액세스 빈도가 낮은 데이터에 사용 - 하나의 가용영역에 파일 시스템 생성 - GB당 검색 요금이 적용 |
Amazon FSx:
Amazon FSx 사용 시 고성능 파일시스템을 빠르게 시작, 실행 및 크기를 조정할 수 있습니다.
하드웨어 프로비저닝, 패치 적용, 백업을 관리할 필요 없이 기존에 사용하던 다양한 기능이 포함된 제품을 계속 사용할 수 있습니다.
이 서비스에서는 4개 파일시스템 중에서 선택할 수 있습니다.
:
https://aws.amazon.com/ko/fsx/when-to-choose-fsx/
FSx for Windows File Server | - Windows Server에 구축 - 광범위한 관리기능 제공 - 예: 데이터 중복제거, 최종사용자 파일 복원, Microsoft Active Directory 등 |
FSx for Lustre | - 대다수 Linux 기반 AMI와 호환 - 예: Amazon Linux, Amazon Linux 2, Red Hat Enterprise Linux(RHEL), CentOS, SUSE Linux, Ubuntu 등 |
FSx for NETapp ONTAP | - AWS 클라우드에서 완전 관리형 공유 스토리지를 제공 - ONTAP에서 많이 사용되는 데이터 액세스 및 관리기능이 포함 |
FSx for OpenZFS | - OpenZFS 파일 시스템을 기반으로 구축 - AWS Graviton 프로세서 패밀리를 통해 구동 - NFS 프로토콜(v3, v4, v4.1, v4.2)을 통해 액세스 가능 |
4. 단시간에 대량의 데이터를 클라우드로 옮기는 방법
특정 소스에서 다른 대상으로 데이터를 이동하려면 AWS DataSync를 사용합니다.
하이브리드 스토리지 솔루션으로는 AWS Storage Gateway를 사용합니다.
오프라인에서 온프레미스 데이터를 AWS 클라우드 대상 위치로 이동하려면 AWS Snow Family를 사용합니다.
마이그레이션 도구를 선택하기 전에 다음 정보를 파악해야 합니다:
- 데이터를 이동하려는 위치
- 데이터 이동 관련 사용 사례
- 이동하려는 데이터의 유형
- 사용 가능한 네트와 크리 소스
마이그레이션 도구:
AWS Storage Gateway | - 온프레미스 애플리케이션을 AWS 스토리지에 연결 가능 - Server Message Block(SMB), Network File Sharing(NFS), Internet Small Computer Interface(iSCSI) 등의 여러 파일전송 프로토콜을 지원 |
AWS DataSync | 온프레미스 스토리지와 Amazon S3, Amazon EFS 또는 FSx for Windows File Server 간 대량의 데이터 전송 |
AWS Transfer Family | 보안 쉘 파일 전송 프로토콜(SFTP)을사용하여 Amazon S3에서 파일을 전송 및 수신 |
AWS Snow Family | 물리적 보안 전송용으로 설계된 엣지 컴퓨팅, 데이터 마이그레이션 또는 엣지 스토리지 디바이스그룹 |
Storage Gateway 유형:
Amazon S3 File Gateway | - Amazon S3에 파일을 객체로 저장하는 데 사용할 수 있는 파일 인터페이스 제공 - NFS 및 SMB 파일 프로토콜 가능 - 데이터 센터나 Amazon EC2에서 NFS 및 SMB를 통해 파일에 액세스 가능 - Amazon S3에서 파일(객체)에 직접 액세스 가능 |
Amazon FSx File Gateway | - 온프레미스 그룹 파일 공유 - SMB 프로토콜 사용 - Amazon FSx에서 파일 데이터 저장 및 액세스 |
Tape Gateway | - 장기 보존용 가상테이프 라이브러리 - 온프레미스 백업 애플리케이션 용 - iSCSI 기반 가상 테이프라이브러리(VTL) 및 가상 미디어 체인저를 제공 - Amazon S3에 가상 테이프를 저장하고 새 테이프를 자동으로 생성 - 테이프 관리와 AWS로의 전환이 간편함 |
Volume Gateway | - iSCSI 프로토콜을 사용하여 애플리케이션의 블록 스토리지 볼륨을 제공 - Amazon EBS 스냅샷, AWS Backup 통합, 클라우드 복구 기능을 사용하여 블록 수준에서 볼륨 백업 |
Storage Gateway 어플라이언스에서는 다음 프로토콜을 사용하여 로컬 데이터에 연결할 수 있습니다:
1. NFS 또는SMB(파일)
2. iSCSI(볼륨)
3. iSCSI VTL(테이프)
Storage Gateway 어플라이언스는 아래 4개 모드 중 하나에서 실행됩니다.
1. Amazon S3 File Gateway
2. Amazon FSx File Gateway
3. Tape Gateway
4. Volume Gateway
Storage Gateway를 사용하여 AWS로 이동한 데이터는 Storage Gateway 관리형 서비스를 통해 다음 대상 위치로 전송할 수 있습니다.
1. Amazon S3(Amazon S3 File Gateway, Tape Gateway)
2. Amazon S3 Glacier(Amazon S3 File Gateway, Tape Gateway)
3. Amazon FSx for Windows File Server(Amazon FSx File Gateway)
4. Amazon EBS(Volume Gateway)
5. AWS Backup
- AWS Backup을 사용하여 Volume Gateway에 볼륨 스냅샷 예약 가능
Storage Gateway 유형:
https://aws.amazon.com/snowcone/
https://docs.aws.amazon.com/snowball/latest/developer-guide/whatisedge.html
AWS Snowcone | - 견고한 소형 엣지 컴퓨팅 및 데이터 스토리지 제품 - 작은 크기로 휴대성 향상 |
Snowball Edge | - AWS Snowball 서비스에서 제공하는 엣지 컴퓨팅 및 데이터 전송 디바이스 - 데이터전송을 위해 코드를 작성하거나 하드웨어를 구매할 필요가 없음 - 어플라이언스를 로컬 네트워크에 연결하고 파일을 어플라이언스로 직접 전송 - Snowball Edge Optimized는 원격의 외진 환경 또는 네트워크 연결이 열악한 환경에 적합 |
Architecting on AWS 7.4.6 (KO): Student Guide 참고
'AWS > AWS Architecting' 카테고리의 다른 글
[AWS Architecting]모니터링 및 크기 조정 (0) | 2023.07.02 |
---|---|
[AWS Architecting]데이터베이스 (0) | 2023.07.01 |
[AWS Architecting]컴퓨팅 (0) | 2023.06.29 |
[AWS Architecting]네트워킹 (0) | 2023.06.29 |
[AWS Architecting]계정 보안 (0) | 2023.06.28 |