Amazon Simple Storage Service (S3) – это высокомасштабируемая и экономичная служба объектного хранения, предлагаемая Amazon Web Services (AWS). S3 предоставляет различные уровни хранения, предназначенные для удовлетворения различных требований к надежности, доступности и оптимизации затрат. В этой статье мы рассмотрим различные уровни хранилища Amazon S3 и приведем примеры кода для каждого уровня.
- Стандартное хранилище.
Уровень хранилища «Стандартный» — это класс хранилища по умолчанию в Amazon S3. Он обеспечивает высокую надежность, доступность и производительность. Он подходит для часто используемых данных или рабочих нагрузок, требующих доступа в режиме реального времени. Ниже приведен пример загрузки объекта на стандартный уровень хранилища с помощью AWS SDK для Python (Boto3):
import boto3
s3 = boto3.client('s3')
s3.upload_file('local_file.txt', 'my-bucket', 'object_key', ExtraArgs={'StorageClass': 'STANDARD'})
- Интеллектуальное многоуровневое хранилище.
Интеллектуальное многоуровневое хранилище — это класс хранилища, который автоматически перемещает объекты между двумя уровнями доступа: частым доступом и нечастым доступом. Он идеально подходит для данных с неизвестными или меняющимися схемами доступа. В следующем примере демонстрируется загрузка объекта в класс хранилища Intelligent-Tiering Storage:
import boto3
s3 = boto3.client('s3')
s3.upload_file('local_file.txt', 'my-bucket', 'object_key', ExtraArgs={'StorageClass': 'INTELLIGENT_TIERING'})
- Хранилище Standard-IA (нечастый доступ).
Класс хранилища Standard-IA предназначен для данных, к которым доступ осуществляется реже, но при необходимости требуется быстрый доступ. Он предлагает более низкие затраты на хранение по сравнению с классом стандартного хранилища, но с платой за извлечение. Вот пример загрузки объекта в класс хранилища Standard-IA:
import boto3
s3 = boto3.client('s3')
s3.upload_file('local_file.txt', 'my-bucket', 'object_key', ExtraArgs={'StorageClass': 'STANDARD_IA'})
- Хранилище One Zone-IA.
Класс хранилища One Zone-IA аналогичен классу хранилища Standard-IA, но хранит данные в одной зоне доступности. Он обеспечивает экономию средств по сравнению с другими классами хранения, но с меньшей доступностью. Используйте этот уровень для данных, которые можно легко воспроизвести или которые не являются критическими. Вот пример загрузки объекта в класс хранилища One Zone-IA:
import boto3
s3 = boto3.client('s3')
s3.upload_file('local_file.txt', 'my-bucket', 'object_key', ExtraArgs={'StorageClass': 'ONEZONE_IA'})
- Glacier Storage:
Класс хранилища Glacier предназначен для архивирования и долгосрочного резервного копирования данных. Он предлагает самые низкие затраты на хранение, но с более длительным временем извлечения (от минут до часов). Используйте этот уровень для данных, к которым редко обращаются и к которым предъявляются строгие нормативные требования. Вот пример загрузки объекта в класс Glacier Storage:
import boto3
s3 = boto3.client('s3')
s3.upload_file('local_file.txt', 'my-bucket', 'object_key', ExtraArgs={'StorageClass': 'GLACIER'})
Amazon S3 предоставляет ряд уровней хранения для удовлетворения различных потребностей в хранении данных. Понимая характеристики каждого уровня, вы можете оптимизировать затраты на хранение, обеспечивая при этом необходимую надежность и доступность ваших данных. В этой статье мы рассмотрели различные уровни хранилища Amazon S3 и предоставили примеры кода для загрузки объектов на каждый уровень.
Не забудьте выбрать соответствующий уровень хранения в зависимости от ваших конкретных требований и моделей доступа, чтобы максимально использовать преимущества Amazon S3.