AWS Notes
5.6K subscribers
447 photos
42 videos
10 files
2.8K 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
Zone ID vs Zone Name

Подзоны (Availabilty Zones) имеют свои уникальные имена (Zone Name), например, us-east-1d, us-east-1f, eu-central-1a, eu-central-1b и т.д.

В общем случае для простоты можно считать, что такая подзона — это какой-то датацентр. Однако в реальности у разных аккаунтов какой-то eu-central-1b совсем не обязательно будет один и тот же датацентр — набор соответствий «реальный датацентр – имя (Zone Name)» генерируется случайным образом при создании аккаунта.

Почему так сделано? Всё просто. Если бы не было такой случайности, то ваши скрипты, одинаково настроенные на очевидные по алфавиту us-east-1 и us-east-1b никогда бы не загрузили датацентры us-east-1e и не так давно появившийся us-east-1f. Перемешивание всё решает.

Итого – одна и та же подсеть в us-east-1a у каждого AWS аккаунта в реальности будет своя (может совпасть лишь случайным образом, но скорее нет).

Shared VPC

Однако с появлением Resource Access Manager и его возможности шарить ресурсы, в том числе VPC (точней подсети) возникла проблема — мы таки должны иметь возможность совмещать реальные подсети, т.е. чтобы был механизм узнать, что это один и тот же датацентр. Это для того, чтобы логика приложений, работающих на таких шареных подсетках, не страдала - чтобы не получалось дополнительных задержек и трафика между случайным образом выбранных датацентров.

Чтобы решить эту проблему к Zone Name добавили Zone ID - реальные идентификаторы, которые соотносятся с конкретным датацентром. Так и волки остались целы — старые скрипты не нужно переписывать и в общем случае получается случайный порядок. И овцы целы — если мы хотим получить реальное соответствие, смотрим Zone ID и ориентируемся на подсетки у него, а не на Zone Name.

В результате, если вам потребуется автоматизировать что-то для VPC Sharing - ориентируйтесь и закладывайте в свои скрипты именно Zone ID, который всегда можно получить для нужной VPC через стандартную команду describe-availability-zones.
Временное выключение масштабирования AutoScaling Group

Теперь есть удобная возможность отключить на время масштабирование ASG:

https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enable-disable-scaling-policy.html

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

#AutoScaling
При создании ES (Amazon Elasticsearch Service) кластера, выбирая тип инстанса нужно учитывать, что слабые виртуалки под него имеют ограничения по макимальному размеру диска.

Например, поставив слабенькую t2.medium виртуалку - не получится к ней подцепить диск больше 35 GB. И если в консоли это хоть как-то видно (но тоже плохо), то при написании шаблонов или каких-то скриптов, ошибка вылезет лишь при их отработке.

Потому лучше сразу зайти сюда:

https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/aes-limits.html#ebsresource

И выбрать нужно сочетание «тип виртуалки – объём диска».

#ES
S3 и защита от копирования (обнаружение утечки данных)

Когда в приватном бакете находятся важные данные и вам нужно максимально быстро узнать, если кто-то вдруг получил к ним доступ - такая задача решается с помощью CloudTrail + Events (CloudWatch Events или EventsBridge):

https://darkbit.io/blog/2020/02/18/simple-dlp-for-amazon-s3

Включаем CloudTrail, создаём SNS топик, запускаем в него эвенты на CopyObject с помощью EventsBridge, и прикручиваем лямбду, чтобы слала алерты сразу в Slack.

Предотвратить копирование так не получится, однако смысл в том, что мы можем контролировать и если кто-то поломает какую-то часть нашей системы, попытавшись скопировать в легальное место (например, какой-то "нормальный", но поломанный аккаунт организации) - мы об этом сможем узнать и принять какие-то действия.

p.s. DLP = Data Loss Prevention

#security #s3 #EventsBridge #DLP
CloudFormation vs Terraform

И вновь продолжается бой:

https://globaldatanet.com/blog/cloudformation-vs-terraform

Свежая (2020г.) таблица сравнения фич CloudFormation и Terraform.

Если у вас есть свои соображения по каким-то пунктам (у меня, вот, есть) — пишите в чат (кнопка комментировать).

#info #comparison #CloudFormation #Terraform
Форсирование создания ресурсов только через CloudFormation

Если раньше создание ресурсов через CloudFormation было лишь рекомендацией и #best_practices, то теперь с помощью нового Condition параметра aws:CalledViaFirst это можно сделать требованием:

https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledviafirst

Также, в продолжение предыдущего поста - можно защитить окружение от создания Терраформом. Не знаю зачем, но можно. :)

#IAM #SCP #Condition #CloudFormation
Лямбда теперь тоже входит в Savings Plans:

https://aws.amazon.com/blogs/aws/savings-plan-update-save-up-to-17-on-your-lambda-workloads/

Т.е. если у вас активно и постоянно используется в окружениях Лямбды - можно купить скидку на 1 или 3 года, которая по-максимуму даст экономию до 17%.

Важно отметить, что скидка распространяется и на другие сервисы Амазона, используеющие Лямбду, например, если вы работаете с SAM (Serverless Application Model), Step Functions или другие вещи, что под капотом запускают Лямбду (которая после попадает в ваш биллинг) — на всех них тоже будет распространяться скидка.

Ну, а если вы уже купили Savings Plans для своих Fargate-ов, то ничего делать не нужно — за февраль (и далее) автоматически получите скидку на все свои Лямбды вместе с Fargate.

#Lambda #Cost_Optimization
Официальные разъяснения по использованию появившейся возможности с помощью Conditions aws:CalledVia ограничивать IAM на уровне сервисов Амазона:

https://aws.amazon.com/blogs/security/how-to-define-least-privileged-permissions-for-actions-called-by-aws-services/

Показывается на примере ограничения доступа к бакету лишь для Athena и в определённой VPC. Правда я б в последнем #bucket_policy использовал бы не Principal на роль, а Condition на организацию, но это уже по вкусу.

#IAM
Простое, но полезное видео, где привычные вещи - CodeCommit, CodePipeLine, CloudFormation - работают в окружении для медицинских целей (с HIPAA требованиями):

https://www.youtube.com/watch?v=BLwskVnHbs4

#video
Видео по #IAM, #ABAC, #SCP и прочим Access Management тонкостям.

Высокий уровень сложности (Level 400 - Expert, т.е. максимальный по шкале Амазона). Но кому-то это, может, и в плюс - ABAC стратегия описывается весьма детально (обычно лишь общие фразы) и с примерами.

https://www.youtube.com/watch?v=BFrWnKZ0DQ8

#video
AWS Inside или как научиться понимать AWS

Есть много разной степени полезности видео, которые помогают сдать на AWS сертификацию, ссылки на которые в том числе здесь выкладываются. Однако они часто представляют собой конспект знаний, не дающих понимание.

Мне же лично интересно понимать. Если и вам тоже - далее подборка лучших (в моём личном рейтинге) видео на русском, посмотреть которые должен каждый, кто хочет понять AWS Inside.

Firecracker

Кто впервые слышит это слово, спойлер - то, на чём крутятся Лямбды и прочие Фаргейты, и куда постепенно переходит под капотом вся инфраструктура самого Амазона. Нужно, если не разбираться в деталях, то знать (что учить нужно не только Python и Go, но и Rust):

https://www.youtube.com/watch?v=cfsICOzt6Do

Как работают сервисы внутри

Далее, обязателен к просмотру полезнейший экскурс под капот работы всех сервисов AWS:

https://www.youtube.com/watch?v=S3f6nWJxBvk

Как разрабатывают сервисы внутри

И, наконец, уже было тут пару месяцев назад - Design of Failure, тоже на русском и также лучшее для тех, кто хочет разобраться и понять.

===

p.s. Все совпадения имён случайны и соответствуют действительности.

#video #design #best_of_the_best
В официальном разделе FAQ для Amazon EBS был добавлен следующий пункт:

Q: Can my application use Multi-Attach?

If your application does not require storage layer coordination of write operations, such as a read-only application or it enforces application level IO fencing, then your application can use Multi-Attach.

Он касается недавно вышедшей фичи EBS Multi-Attach, дающей возможность примонтировать один и тот же диск к нескольким виртуалкам сразу и что эту действительно полезную возможность нужно применять с головой. Потому, в частности, добавлю, что у файловой системы XFS есть её кластерный вариант - CXFS:

http://csweb.cs.wfu.edu/~torgerse/Kokua/Irix_6.5.21_doc_cd/usr/share/Insight/library/SGI_bookshelves/SGI_Admin/books/CXFS_AG/sgi_html/ch01.html

#EBS