В AWS здорово то, что этой платформе уже почти двадцать лет. Печально в AWS то… что ей уже почти двадцать лет. Если вы уже долгое время пользуетесь ею, то вам может быть сложно заметить тем изменений её «фундаментальных» сервисов. Хуже того: даже если вы относительный новичок в AWS, вам всё равно довольно легко найти устаревшие посты, объясняющие всё так, как было раньше, но не сейчас. В своей статье я перечислю часть примеров такой эволюции, которые помогут вам, если вы запутаетесь.

EC2

В EC2 теперь можно изменять группы безопасности и роли IAM без отключения инстанса.

Также можно менять размеры томов EBS, подключать и отключать их от работающих инстансов.

Из самого последнего стоит отметить, что теперь можно принудительно останавливать инстансы EC2 или прекращать их работу, не дожидаясь чистого выключения или долгого таймаута; это удобно для тех проектов, которые вы больше не планируете запускать снова.

Также была добавлена возможность миграции работающих инстансов на другие физические хосты; это проявляется в том, что сегодня гораздо реже можно увидеть уведомление о деградации инстансов.

Кроме того, беспрецедентным образом повысился уровень надёжности инстансов.

Spot instance раньше были похожи на аукцион. Сегодня они более плавные, мы уже меньше чувствуем себя инвесторами, следящими за числами на дэшбордах в реальном времени. 

Теперь почти никогда не требуются выделенные инстансы. Уже с десяток лет они не нужны для HIPAA BAA. 

По умолчанию AMI Block Public Access включён для новых аккаунтов, а в 2023 году он был включён для всех аккаунтов, не имевших публичных AMI в течение 90 дней.

S3

S3 гарантирует согласованность чтения после записи.

Теперь не нужно рандомизировать первую часть ключей объектов для их равномерного распределения и устранения горячих точек. 

ACL объявлены устаревшими и по умолчанию отключены для новых бакетов.

Block Public Access по умолчанию включён для новых бакетов.

Новые бакеты прозрачным образом шифруются в состоянии покоя.

Когда-то Glacier был о��дельным сервисом, никак не связанным с S3. Если приглядеться (привет, данные биллинга!), то можно увидеть остатки того, как он выглядел раньше, до того, как команда S3 поглотила его в виде набора классов хранения.

Стоимость восстановления Glacier раньше поистине ужасала, и её было трудно спрогнозировать. Проблему быстро устранили, но она оставила свой след: я до сих пор встречаю мнения о том, что восстановления и крайне дорогие, и непонятные. Это не так.

Кроме того, восстановления Glacier перестали быть мучительно медленными.

Сеть

Очевидно, что EC2-classic уже нет, но это произошло уже давно. Одна из проблем, которую часто упоминают, заключается в том, что публичные IP-адреса v4 перестали быть бесплатными, они стоят столько же, что и IP-адреса Elastic. 

Раньше VPC-пиринг был утомительным; теперь у нас есть такие опции, как Transit Gateway, совместное использование VPC между аккаунтами, совместное пользование ресурсами между аккаунтами и Cloud WAN. 

VPC Lattice позволяет разным элементам общаться друг с другом, по сути, игнорируя множество сетевых сложностей AWS. То же самое относится и к Tailscale.

CloudFront не связан с сетью, но уже давно находился в разделе «networking» AWS, поэтому приходится с этим мириться: раньше для его обновления требовалось около 45 минут, что было ужасно. Сегодня этот процесс занимает примерно 5 минут... что ощущается, как 45, если ожидаешь, пока CloudFormation завершит развёртывание.

За ELB Classic (в терминологии AWS «classic» означает «признанный устаревшим») раньше взимались деньги при передаче данных cross-AZ в дополнение к «налогу» балансировщика нагрузок по отправке бэкендов в другую availability zone. 

За ALB с автоматической балансировкой нагрузки зон не взимается дополнительной оплаты передачи данных трафика cross-AZ, только оплата LCU. То же относится и к классическим балансировщикам нагрузок, но учтите: за сетевые балансировщики по-прежнему взимается оплата за трафик cross-AZ!

Раньше сетевые балансировщики нагрузок не поддерживали группы безопасности, а сейчас поддерживают.

Когда-то availability zone рандомизировались между аккаунтами (мой us-east-1a был чьим-то us-east-1c); теперь можно использовать Resource Access Manager для получения ID зон, чтобы точно знать, что между аккаунтами есть согласование.

Lambda

Изначально у Lambda был таймаут в 5 и она не поддерживала образы контейнеров. Теперь можно выполнять их до 15 минут, пользоваться образами Docker, применять общие хранилища с EFS, выдавать им до 10 ГБ ОЗУ (для чего соответственным образом фоново масштабируется CPU) и /tmp до 10 ГБ вместо полугигабайта.

Вызов Lambda в VPC теперь гораздо быстрее.

Холодные запуски Lambda перестали быть такой серьёзной проблемой, как изначально.

EFS

Теперь не требуется записывать в том EFS огромную кучу бесполезных данных, чтобы получить достаточный объём ввода-вывода; его можно настаивать отдельно от ёмкости.

EBS

В пустых новых томах EBS мы теперь получаем полную производительность. Если создать том EBS из снэпшота, то стоит считать весь диск при помощи dd или чего-то подобного, потому что он лениво загружает данные из S3, и первое считывание блока будет очень медленным. Если торопитесь, то есть более доро��ие и сложные опции

Тома EBS можно одновременно подключать к нескольким инстансам EC2 (при условии использования io1), но этого почти точно не стоит делать.

DynamoDB

Теперь допускается использование пустых полей в элементе (в системе публикаций рассылок «Last Week in AWS» по-прежнему используется обозначение поля empty, потому что это изменение было выпущено позже).

Производительность стала намного надёжнее, вплоть до того, что ля изучения проблем горячих ключей теперь не нужно использовать инструменты, спрятанные за NDA.

Учитывая изменения цен, можно почти с уверенностью сказать, что всё нужно запускать On Demand, если только у вас нет очень специфичных требований.

Средства экономии затрат

Медленно, но уверенно EC2 избавляется от Reserved Instances. Дальнейшее развитие будет за Savings Plans. По ним больше не предлагают столь глубоких скидок, как когда-то RI, что компенсируется их дополнительной гибкостью. Будьте внимательны!

Теперь оплата за EC2 взимается посекундно, поэтому многократный запуск на пять минут больше не будет стоить вам каждый раз часовой цены.

Cost Anomaly Detector стал очень хорошо справляться с обнаружением внезапных изменений в паттернах трат. К тому же он бесплатен. 

Compute Optimizer также поддерживает тома EBS и прочие возможности. Его рекомендациям стоит доверять, во отличие от советов Trusted Advisor.

Рекомендации Trusted Advisor остаются в лучшем случае ненадёжными и противоречащими сами себе, однако часть из его проверок затрат можно направить через Compute Optimizer.

Аутентификация

Разрешениями следует управлять через роли IAM. Пользователи IAM остаются исключительно для легаси-приложений, а не для людей. IAM Identity Center стал заменой AWS SSO, и именно с его помощью люди теперь взаимодействуют со своими аккаунтами AWS. Время от времени это вызывает затруднения.

Для рут-аккаунта можно сконфигурировать несколько устройств MFA. 

Кроме того, не нужно сохранять учётные данные рута, сконфигурированные для аккаунтов участников организации.

Прочее

Регион us-east-1 перестал быть местом печали и сожалений. Ситуация улучшается и в других регионах: сегодня всё становится надёжнее, поэтому недоступность сервисов стала чем-то из ряда вон выходящим, а не «обычным вторником».

Хоть устаревание сервисов остаётся редким, тенденции определённо усиливаются; если сервис AWS кажется нишевым или неудобным, то придумайте план миграции на случай, если будете его использовать. Это не относится ни к одному из перечисленных сервисов.

Теперь последняя точка данных CloudWatch перестала быть очень медленной из-за несогласованности данных, поэтому если ваши графики внезапно падают до нуля для последней точки данных, это значит, что причина в вашем приложении.

Можно закрывать аккаунты AWS своей организации из рут-аккаунта без необходимости входа в аккаунт каждого пользователя в качестве его рут-пользователя.