AWS Notes
5.61K subscribers
491 photos
43 videos
10 files
2.86K links
AWS Notes — Amazon Web Services Educational and Information Channel

Chat: https://xn--r1a.website/aws_notes_chat

Contacts: @apple_rom, https://www.linkedin.com/in/roman-siewko/
Download Telegram
CloudFront KeyValueStore for CloudFront Functions 🎉

CloudFront KeyValueStore is a secure, global, low-latency key value datastore that allows read access from within CloudFront Functions, enabling advanced customizable logic at the CloudFront edge locations.

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/kvs-with-functions.html

Use cases:

▫️ URL rewrites or redirects.
▫️ A/B testing and feature flags.
▫️ Access authorization.

Supported values:

String
Byte-encoded string
JSON

#CloudFront
🔥8😁1
​​CloudFront embedded POPs

https://aws.amazon.com/cloudfront/faqs/#Embedded_Points_of_Presence

🔸CloudFront embedded POPs differ from CloudFront POPs based on where they are deployed and the content they deliver. CloudFront embedded POPs are deployed directly in ISP and MNO networks, unlike CloudFront POPs that are deployed within the AWS network.
🔹CloudFront embedded POPs are designed to deliver cacheable content that is accessed by many end viewers simultaneously such as large scale live video streaming, video on demand, and game downloads.

💰There is no additional charge for using CloudFront embedded POPs.
⚠️You don't have to choose between CloudFront embedded POPs or CloudFront POPs - CloudFront's routing system dynamically utilizes both CloudFront POPs.

#CloudFront
Добрая пятничная история

Пару недель назад AWS выкатил поддержку CloudFront OAC для Lambda function URLs, чтобы можно было удобно ходить в приватные Лямбды.

Сначала все обрадовались, полезное дело, безопасности, все дела, но после выяснилось, что работают лишь GET запросы, а на POST/PUT отдаётся ошибка.

Потом все расстроились, потому что зря обрадовались — ведь это не фича, а баг.

Но один хороший человек упоролся и выяснил, что если посчитать SHA256 хэш и добавить его в заголовок x-amz-content-sha256, то и POST/PUT тоже работают.

https://twitter.com/rooToTheZ/status/1788606025265975505

Он написал запрос на обновление AWS документации для CloudFront и теперь там:

ℹ️ Note
If you use PUT or POST methods with your Lambda function URL, your user must provide a signed payload to CloudFront. Lambda doesn't support unsigned payloads.

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

Какая же здесь мораль? Документация — важна. Грамотно задокументированный баг всегда можно сделать фичей.

#CloudFront #Lambda
😁8👍7
​​Global CDN Services Market About $5B in 2023, Expected To Grow 3% In 2024, Driven by AWS

https://www.streamingmediablog.com/2024/07/cdn-market-size.html

#CDN #CloudFront #info
👍5
CloudFront подешевел — больше не учитываются запросы, заблокированные WAF.

https://aws.amazon.com/about-aws/whats-new/2024/11/amazon-cloudfront-charges-requests-blocked-aws-waf/

— А что, раньше за это деньги брали?!
— Да. Но теперь совершенно бесплатно!

#CloudFront
👍11😁7
CloudFront VPC origins — подключаем CloudFront к приватным ALB/NLB/EC2

https://aws.amazon.com/blogs/aws/introducing-amazon-cloudfront-vpc-origins-enhanced-security-and-streamlined-operations-for-your-applications/

CloudFront — публичная сущность, поэтому просто так добраться до приватных ресурсов не может по определению. Кто хотел раздавать приватный контент, приходилось создавать внешний балансер. А для внутренних (в приватной подсети) балансеров такое сделать было нельзя.

CloudFront VPC origins решают эту проблему. Сначала вы создаёте CloudFront VPC origin в нужной VPC — по сути прокси для доступа в VPC из CloudFront. После этого можно выбрать созданный CloudFront VPC origin в качестве Origin в вашем CloudFront.

Ещё один набор костылей / лишних балансеров можно удалить.

P.S. При таком подходе (CloudFront VPC origins) могут возникнуть вопросы у безопасников. Возможность так лихо раздавать из интернета приватные ресурсы их может не порадовать. Так что попытка сэкономить таким образом наверняка закончится дополнительными расходами на WAF. 😁

#CloudFront
👍11🎉2
CloudFront + cross-account VPC origins 🎉

https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-cross-account-support-for-amazon-cloudfront-virtual-private-cloud-vpc-origins/

Теперь можно использовать один CloudFront для доступа в приватные ресурсы в разных аккаунтах. Заметное упрощение многих конфигураций, можно использовать один CloudFront для dev-stage-prod, например, расположив его в Shared аккаунте. Отличная фича.

#CloudFront #RAM
1😍9👍6
CloudFront + Flat-rate pricing plans 🎉

https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-flat-rate-pricing-plans-with-no-overages/

Теперь можно выбрать фиксированную цену 0/15$/200$/1000$/+ для нужного CloudFront. Выбирается конкретный CloudFront, поэтому можно иметь и "обычный" и фиксированный план для разных дистрибуций.

https://aws.amazon.com/cloudfront/pricing/

Свыше лимита запросы будут тротлиться, а не биллиться.

Дистрибуций с бесплатным фиксированным планом можно иметь лишь 3 на аккаунт.

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

⚠️ Фиксированная цена неприменима в случае использования Lambda@Edge и некоторых других специфичных фич:

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/flat-rate-pricing-plan.html#pricing-plan-unsupported-features

#CloudFront #cost_optimization
👍8
CloudFront + BYOIP 🎉

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/bring-your-own-ip-address-using-ipam.html

Теперь можно завести свой домашний CloudFront — используя собственный кусочек сети!

Для многих строгих compliance случаев это, наконец-то, решает вечную (точнее 17-летнюю) проблему айпишников CloudFront, которыми нельзя было управлять, т.к. они постоянно меняются.

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

Пока только IPv4, но, уверен, скоро подтянется и IPv6.

#CloudFront
1🔥17