EC2 / S3 / RDS
AWS (Amazon Web Services) — крупнейший облачный провайдер, предоставляет вычислительные ресурсы по запросу, без необходимости покупать и обслуживать физическое железо. Три самых базовых сервиса:
EC2 (Elastic Compute Cloud) — виртуальный сервер по запросу, аналог обычного сервера, только арендуемого по часам/секундам, а не покупаемого навсегда:
# создать виртуальную машину через AWS CLI
aws ec2 run-instances --image-id ami-12345 --instance-type t3.micro
S3 (Simple Storage Service) — хранилище файлов (объектное хранилище), не файловая система в привычном смысле, а хранение по ключу:
s3Client.putObject("my-bucket", "photos/avatar.jpg", file);
String url = s3Client.getUrl("my-bucket", "photos/avatar.jpg");
RDS (Relational Database Service) — управляемая база данных (PostgreSQL, MySQL) — AWS сам занимается бэкапами, обновлениями, репликацией, не нужно администрировать сервер базы вручную.
Копнуть глубже
Главная идея облака — платишь только за то, что используешь, и можешь масштабировать по требованию. Вместо покупки сервера “с запасом на будущий рост” (который простаивает большую часть времени), арендуешь ровно столько мощности, сколько нужно сейчас, и увеличиваешь/уменьшаешь по факту нагрузки — это особенно выгодно для непредсказуемой или сезонной нагрузки.
S3 vs обычная файловая система. S3 не имеет понятия “папок” в техническом смысле — это плоское хранилище объектов по ключу, где / в имени ключа просто визуально имитирует структуру папок. Зато S3 практически неограниченно масштабируется, надёжно реплицируется в нескольких дата-центрах автоматически, и стоит дешевле, чем держать аналогичный объём на обычных серверных дисках.
RDS снимает с разработчика рутину администрирования базы — автоматические бэкапы, патчи безопасности, простое создание реплик для чтения (см. тему «Партиции, реплики») — настраивается несколькими кликами вместо ручной настройки PostgreSQL на голом сервере.
• главную экономическую идею облака — оплата по использованию (если дошёл до 2-го слоя).