Amazon S3: обзор хранилища

admin

Amazon Simple Storage Service (S3) – хранилище файлов любого типа, любого объема, с высокой доступностью и отказоустойчивостью. Оно разработано для хранения статического контента, пользовательских данных и бэкапов.

Сервис подходит для небольших, молодых проектов с несколькими тысячами файлов и сравнительно небольшим трафиком, ведь стоимость будет максимально низкой (порядка нескольких долларов в месяц).

Но с ростом стоимость будет пропорционально увеличиваться, нужно платить не только за загрузку и раздачу файлов, но также за трафик, запросы GET и POST.

Преимущества и недостатки

Главный недостаток S3 – высокая стоимость при загрузке и отдаче терабайтов данных.

Но и преимущества очевидные:

  • Надежность и безопасность – распределенные резервные копии данных (автоматически), поддержка SSL, шифрования, разрешения на доступ;
  • Высокая доступность – несколько регионов для увеличения скорости загрузки, гарантия доступности данных ;
  • Простота масштабирования – автоматическое увеличение объема по мере надобности;
  • Выдерживает любую нагрузку – резкие пики популярности не повлияют на доступность файлов;
  • Простота использования – веб-консоль, API, SDK и даже мобильное приложение.

Возможности

Весь цикл работы с сервисом ограничивается 5 действиями:

Все файлы (фото, видео, документы и т.д) хранятся в контейнерах (bucket). Самый простой способ создания новых bucket-ов – использовать веб-консоль [https://console.aws.amazon.com/s3/ Amazon S3]. А так это реализуется средствами PHP:

$result = $client->createBucket([

** ‘ACL’ => ‘private’,**

** ‘Bucket’ => ‘test-bucket’,**

‘CreateBucketConfiguration’ => [

** ‘LocationConstraint’ => ‘eu-central-1’,**

],

]);
## С указанием прав доступа, имени контейнера и региона

Также можно задействовать SDK для Ruby, Java и .NET ([http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html#create-bucket-get-location-console достаточно сложно и обширно]), и curl в виде:

curl -v https://testbucket.s3.amazonaws.com/

-H “Authorization: AWS4-HMAC-SHA256

Credential=AKIAIOSFODNN7EXAMPLE/20160530/us-east-1/s3/aws4_request,

SignedHeaders=host;x-amz-content-sha256;x-amz-date,

Signature=182072eb53d85c36b2d791a1fa46a12d23454ec1e921b02075c23aee40166d5a”

-H “x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855”

-H “x-amz-date: 20160530T124500Z”

## Создание нового контейнера с указанием учетных данных

Название контейнера может быть представлено в виде URL:

http://bucket.s3-**aws-region**.amazonaws.com

# Или

http://s3-**aws-region**.amazonaws.com/bucket
## Краткие названия регионов доступны в документации, по умолчанию US East (N. Virginia)

Утилиты командной строки

Для работы с S3 имеется достаточное количество 3rd party tools, один из лучших – консольный s3cmd для Ubuntu:

sudo aptitude install s3cmd
## Утилита доступна в системе aptitude

Прежде чем использовать s3cmd, нужно отредактировать конфигурационный файл ~/.s3cfg, добавив учетные данные S3. Затем утилита обеспечит упрощенное управление хранилищем:

s3cmd mb s3://newbucket # создать контейнер newbucket

s3cmd rb s3://newbucket # удалить пустой контейнер newbucket

s3cmd ls [s3://BUCKET[/PREFIX]] # список файлов или корзин

s3cmd la # список всех объектов во всех корзинах

s3cmd put FILE [FILE…] s3://BUCKET[/PREFIX] # загрузить файл в корзину

s3cmd get s3://BUCKET/OBJECT LOCAL_FILE # скачать файл

s3cmd del s3://BUCKET/OBJECT # удалить файл

s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] # синхронизировать каталог S3 с локальным каталогом

s3cmd sync s3://BUCKET[/PREFIX] LOCAL_DIR # синхронизировать каталог S3 с локальным каталогом

s3cmd du [s3://BUCKET[/PREFIX]] # показать объем файлов

s3cmd setacl s3://BUCKET[/OBJECT] # изменить параметры доступа к объекту

s3cmd info s3://BUCKET[/OBJECT] # свойства объекта
## Все команды находятся в справке s3cmd –help

Похожее решение предоставляет и сам Amazon. Но [http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html AWS CLI] более универсально и работает со всеми облачными сервисами компании:

curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

$ unzip awscli-bundle.zip

$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

## Скачивает пакет с корзины S3, распаковка и установка, требуется установленный Python

После установки также нужно настроить свой профиль:

$ /usr/local/bin/aws configure **--profile test-bucket**

AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE

AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Default region name [None]: aws-region

Default output format [None]: json
## Укажите свои учетные данные, если не указать профиль, то будет настроен основной

Утилита содержит большое количество [http://docs.aws.amazon.com/cli/latest/index.html опций и дополнительных функций].

Самое главное

Начните знакомство с Amazon S3 через веб-консоль – она даст наглядное представление вашего хранилища. В большинстве случаев ее будет достаточно для работы с сервисом. Для продвинутой работы с хранилищем доступны SDK и другие утилиты.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023