Какие классы хранения (storage classes) существуют в Amazon S3?

«Какие классы хранения (storage classes) существуют в Amazon S3?» — вопрос из категории Облачные платформы, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Amazon S3 предлагает несколько классов хранения, оптимизированных под различные сценарии доступа к данным, долговечность и стоимость.

Для данных с частым доступом:

  • S3 Standard: Высокая доступность (99.99%), низкая задержка. Идеален для часто используемых данных: веб-сайты, мобильные приложения, аналитика.

Для данных с изменяющимся или неизвестным шаблоном доступа:

  • S3 Intelligent-Tiering: Автоматически перемещает объекты между тремя уровнями (частый, нечастый, архивный) на основе мониторинга шаблонов доступа. Не взимается плата за извлечение. Отлично подходит для данных с непредсказуемым доступом.

Для долгосрочных данных с редким доступом:

  • S3 Standard-Infrequent Access (S3 Standard-IA): Высокая доступность, но более низкая стоимость за ГБ и плата за извлечение данных. Для резервных копий, аварийного восстановления, архивов.
  • S3 One Zone-Infrequent Access (S3 One Zone-IA): Аналогичен Standard-IA, но данные хранятся только в одной зоне доступности (AZ). Стоимость ниже на ~20%, но есть риск потери данных в случае разрушения AZ. Для вторичных резервных копий или пересоздаваемых данных.

Для архивных данных:

  • S3 Glacier (теперь S3 Glacier Flexible Retrieval): Очень низкая стоимость для долгосрочного архивирования. Извлечение занимает от минут до часов (в зависимости от выбранной опции: Expedited, Standard, Bulk).
  • S3 Glacier Deep Archive: Самый низкий тариф в S3. Предназначен для данных, к которым обращаются раз в несколько лет. Извлечение занимает 12 часов (стандартно) или 48 часов (Bulk).

Практический пример: Настройка жизненного цикла для автоматического перехода между классами.

{
  "Rules": [
    {
      "ID": "Move to Standard-IA after 30 days",
      "Status": "Enabled",
      "Prefix": "logs/",
      "Transitions": [
        {
          "Days": 30,
          "StorageClass": "STANDARD_IA"
        }
      ]
    },
    {
      "ID": "Move to Glacier after 90 days",
      "Status": "Enabled",
      "Prefix": "backups/",
      "Transitions": [
        {
          "Days": 90,
          "StorageClass": "GLACIER"
        }
      ]
    }
  ]
}

Выбор класса зависит от требований к доступности, частоте доступа и бюджету.