Мне нужно управлять некоторыми файлами конфигурации. Файлы можно хранить на AWS S3 и получать по URL-адресу. Альтернативой является использование сервера приложений и сохранение содержимого JSON в базе данных с предоставлением API для извлечения данных.
Каковы плюсы и минусы каждого подхода?
Это довольно открытый вопрос, и, как заявил Джеффатракэйд в своей заметке выше, это может просто превратиться в дебаты. Но, сказав это, вот мои два цента, как я это вижу, поскольку я управлял средой приличного размера, охватывающей несколько регионов AWS за последние пару лет.
Если все, что вам нужно, это разместить статический контент, то S3 - безусловно, самый простой способ. Вы просто создаете корзину, включаете доступ в Интернет, загружаете файлы и все готово. Если вы ожидаете большой объем трафика, вы даже можете очень легко использовать Amazon CloudFront CDN. Единственный потенциальный недостаток, который может не иметь большого значения, заключается в том, что имя домена будет иметь формат (bucketname). (Region) .amazonaws.com. Если вы используете только HTTP, вы всегда можете настроить CNAME, чтобы указать на него, чтобы вы могли использовать свой собственный домен. Если вы хотите использовать HTTPS, вам придется либо придерживаться DNS-имени amazonaws.com, либо жить с ошибками несоответствия SSL, если вы хотите использовать собственное доменное имя (или использовать CloudFront и заплатить небольшое состояние за поддержку настраиваемого SSL-сертификат на нем).
Самыми большими преимуществами установки экземпляра EC2 для обслуживания вашего контента будет, если контент будет динамическим по своей природе и / или если вы захотите использовать собственный сертификат SSL (намного дешевле, чем стоимость его использования в CloudFront).
Самым большим недостатком развертывания собственных экземпляров EC2 является то, что вам нужно знать, что EC2 спроектирован таким образом, что вам нужно подготовиться к тому, что ваш сервер может умереть, его потребуется перезагрузить и т. Д. вам нужно каким-то образом сохранить резервную копию всей конфигурации сервера (возможно, просто создав AMI или образ машины Amazon).
Если у вас запущен экземпляр EC2, он работает на физическом сервере. В отличие от таких сред, как VMWare, его нельзя перенести на другой физический сервер во время его работы. Поэтому, если произойдет сбой оборудования, Amazon решит обновить или списать оборудование, на котором работает ваш сервер, и т. Д. Затем они запланировали перезагрузку сервера, чтобы переместить его на новое оборудование.