AWS Notes
5.59K subscribers
449 photos
42 videos
10 files
2.8K links
AWS Notes — Amazon Web Services Educational and Information Channel

Chat: https://t.iss.one/aws_notes_chat

Contacts: @apple_rom, https://www.linkedin.com/in/roman-siewko/
Download Telegram
С одной стороны развлекаловка и тест на логическую непригодность дизайнеров иконок, с другой — полезная возможность узнать про сервисы Амазона, о которых даже не слышали:

https://quiz.cloudar.be
Тарификация AZ или снова мелкий текст в договоре

Намедни появилась быстро ставшей популярная статья на популярном блоге Corey Quinn, где срываются покровы особенностей национального тарифообразования трафика в Амазоне:

https://www.lastweekinaws.com/blog/aws-cross-az-data-transfer-costs-more-than-aws-says/

Стоит (за)помнить, что если у вас там планируются или работают какие-то более-менее серьёзные мощности или вы просто занимаетесь бесчеловечным кост-менеджментом (и правильно делаете), то вчитывайтесь в детали и особенно подробно изучайте мелкий шрифт, чтобы не было никаких неясностей. Амазон - не благотворительная, а коммерческая организация и нужно всегда трезво оценивать его ценовую политику.

В частности, в случае мульти-AZ трафика между инстансами, в том числе, когда они соединены через VPC peering, то упоминаютые в основном прайсе 0.1 за гигабайт будут:

• за запрос исходящий из одной зоны
• плюс этот же запрос как входящий для другой зоны

Такая ситуация возникает, когда требуется сделать HA (High Availability) кластер для какой-нибудь собственной базы данных, для чего (т.е. отказоустойичовати) требуется задеплоить ноды в разных подзонах. Данные между нодами будут постоянно синхронизироваться и вы попадаете на бабки.

Ситуация не возникает для трафика балансеров (ELB/ALB/NLB), т.к. они имеют в каждой подзоне свой ENI (сетевую карту) и потому трафик получается внутри-зонный, т.е. бесплатный. Однако если балансировка происходит через VPC peering (да, так тоже можно), то включаются мульти-AZ издежрки.

п.с. Картинка по стоимости трафика, которая как-то была тут раньше.

#multi_az #pricing
GitHub status

https://www.githubstatus.com

Стоит проверять, если вдруг в логах каких-то вещей Амазона, завязанных на гитхаб, что-то не то. Например, вчера вечером это могло кому-то очень пригодиться.

Чтобы не видеть такие ошибки задним числом, стоит прикрутить оповещение в свой рабочий мессенджер. Например, я использую Slack в работе, для которого есть простой способ интегрировать такую вещь - выполнить команду в своём рабочем канале:

/feed subscribe https://www.githubstatus.com/history.atom

#github #info #slack
👍1
Route53 под DDoS атакой

Вчерашние проблемы с разрешением DNS для различных сервисов - S3-бакетов, RDS-эндпоинтов и прочие - продолжились (продолжаются?) и сегодня.

Проблемы многовероятны при создании и обновлении окружений. Особенно это касается S3-бакетов вида my-bucket.s3.amazonaws.com вне N.Virginia региона, т.к. для разрешения конечного имени делается ещё один DNS запрос.

Это недавно как раз описывалось здесь как рекомендация к использованию третьего типа написания бакета, которая могла быть спасительной для тех, кто ею воспользовался. Кто ещё нет - срочно переделайте свои бакеты к "правильному" виду my-bucket.s3.some-region.amazonaws.com и проблемы (связанные с DNS бакета) уйдут.

У кого не получается присоединиться к базе - попробуйте переключиться на гугловые днсы 8.8.8.8 или от CloudFlare 1.1.1.1.

В общем, если у вас есть возможность отложить обновление и создание критических ресурсов на пару дней - лучше обождать. Если же нет - нужно быть готовым к самым непредсказуемым ситуациям, создание CloudFormation стэков может давать ошибку, системные пакеты не обновляться, базы данных создаваться полчаса и больше, давая таймауты других операций - всего не перечесть. И это ведь ещё не пятница...

#route53 #ddos #s3 #rds
Amazon Route 53[RESOLVED]

5:44 PM PDT On October 22, 2019, we detected and then mitigated a DDoS (Distributed Denial of Service) attack against Route 53. Due to the way that DNS queries are processed, this attack was first experienced by many other DNS server operators as the queries made their way through DNS resolvers on the internet to Route 53. The attack targeted specific DNS names and paths, notably those used to access the global names for S3 buckets. Because this attack was widely distributed, a small number of ISPs operating affected DNS resolvers implemented mitigation strategies of their own in an attempt to control the traffic. This is causing DNS lookups through these resolvers for a small number of AWS names to fail. We are doing our best to identify and contact these operators, as quickly as possible, and working with them to enhance their mitigations so that they do not cause impact to valid requests. If you are experiencing issues, please contact us so we can work with your operator to help resolve.

https://status.aws.amazon.com

#route53
Let's Encrypt + cert-manager - November 1

В ноябре местами ожидаются сайтопады со шквалистой сертификатной недостаточностью:

https://community.letsencrypt.org/t/blocking-old-cert-manager-versions/98753

Всё потому, что старые версии cert-manager, который используется по дефолту в #kubernetes для получения бесплатных сертификатов Let's Encrypt, перестанет получать сертификаты.

Из-за серьёзных проблем у cert-manager до 0.8.0 версии, когда он из-за ошибок сильно грузит сервера Let's Encrypt, поддержка старых версий cert-manager в ноябре будет прекращена. Потому, если у вас поднят свой или EKS-кластер, стоит озаботиться обновлением всего, использующего cert-manager, в этом месяце.

Полезные ссылки:

• официальная страница обновления cert-manager - https://docs.cert-manager.io/en/latest/tasks/upgrading/index.html

• релизы cert-manager - https://github.com/jetstack/cert-manager/releases

helm-чарт для последнего (0.11) cert-manager - https://hub.helm.sh/charts/jetstack/cert-manager

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

===
Билет 4
===
В мульти-клауд проекте, использующим AWS и Яндекс.Облако, требуется обеспечить максимальную надёжность взаимного DNS-разрешения ресурсов. В обоих клаудах ресурсы находятся внутри собственных VPC.

Что вы будете использовать для EC2 инстансов в VPC на стороне AWS:

1. Route Tables.
2. VPC peering.
3. Internet Gateway.
4. DHCP option set.

#AWS_Certification #training #AWS #yandex
Ответы на Билет 4 по DNS

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

1. Route Tables - точно никакой связи с DNS - сразу отбрасываем, это неправильный ответ.

2. VPC peering - не только не связан с DNS, но и просто нет, понятно, такого функционала - VPC пиринг из AWS к Яндекс.Облаку (было бы прикольно, если бы был, но нет), всё-таки это разные сущности разных облаков, хоть и реализуют одинаковую функцию. Это неправильный ответ.

3. Internet Gateway - можно, в принципе, связать с DNS, например, предполагая гугловые DNS, но, всё же, это просто обеспечение доступа. Кроме того, была речь о VPC, а значит - приватная часть. Это неправильный ответ.

4. DHCP option set - оставшийся последним правильный ответ. Он непосредственно связан с DNS — с его помощью можно задать используемые EC2-виртуалками DNS-сервера.

https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html#DHCPOptionSets

Можно добавить, что ровно этот способ применяется, чтобы разрешать внутри AWS VPC адреса внешних по отношению к Амазону ресурсов. Так что пример с #yandex тут совершенно уместен.

#AWS_Certification #training #answers #VPC #DHCP
Граждане девопсы!

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

https://stackoverflow.blog/2019/10/16/coding-salaries-in-2019-updating-the-stack-overflow-salary-calculator/

#пятничное
AWS SSO + MFA

Наконец-то завезли честную MFA в SSO (до этого была лишь MFA через почту, что, скажем так, не так удобно и не совсем "мфашно") — теперь можно подключить любимый Google Authenticator сотоварищи:

https://aws.amazon.com/about-aws/whats-new/2019/10/increase-aws-single-sign-on-security-with-multi-factor-authentication-using-authenticator-apps/

Два года назад обещали сделать. Год назад обещали точно сделать через год. Что ж, Авээс обещал - Авээс сделал.

#SSO #субботничное #праздничное
Telegram + Devops

Хочу поделиться списком действительно хороших Telegram-ресурсов, которые регулярно читаю и которые особо рекомендуются, если вы девопс, собираетесь, хотите или рядом.

(Кому важно знать популярность - в скобках текущее кол-во участников/подписчиков.)

DevOps&SRE Library (4668)
Качественные ссылки на материалы по девопсу, кратко, регулярно и по теме.

CatOps (3186)
Разнообразные ссылки на статьи по околодевопсовой тематики.

Админим с Буквой (3214)
Отличный регулярный дайджест достойных внимания новостей из IT - позволяет быть в курсе плюс отличные хинты для администрирования.

Записки админа (6932)
Отличный ресурс по администрированию Linux, позволяет постоянно повышать bash-skill.

DevOops World (195)
Для расширения кругозора (и/или тренировки английского) - хорошая подборка импортного девопса.

DevOps Deflope News (3825)
Ссылки на видео с прошедших девопс-конференций, анонсы будущих - в общем, новости девопс-конференций.

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

AWS_ru (993)
Самый популярный чат по Амазону, must subscribe. У него, кстати, есть "зеркала" в Казахстане (113) и Беларуси (75).

terraform_ru (386)
Активный чат по Терраформу.

jenkins_ru (731)
(Гипер)Активный чат по Jenkins.

ru_freeswitch (505)
Кто связан с VoIP - тут сидят гуру этой области (а не только по Freeswitch). Материалов в интернете по VoIP на русском минимум, а тут можно просто читать логи и немеряно прокачаться.

Человек и машина (803)
Наш человек за бугром рассказывает, как загнивает девопс у буржуев. Компетентное и спорное (что хорошо) мнение человека, который ездит в булошную на такси (зачёркнуто) этим редким явлением (собственным мнением) публично делится.

noTieinIT (2132)
Редко обновляемый, но весьма полезный канал, не (с)только про девопс, но мне интересно.

ДевОпс Инженер (3427)
Не самый регулярно обновляемый, но местами интересный канал по девопсу.

aws_notes (559)
Канал по AWS - новости, подсказки, жалобы и прочие личные заметки по Амазону и девопсу.

aws_history (41)
Канал по истории Амазона - древний девопс на AWS, интересные факты и материалы из далёкого (по меркам IT) прошлого.

#devops #info
Amazon status

Амазон продолжает штормить, вчера ночью некоторым пришлось аврально дежурить ночью как минимум в Орегоне. Ох, зря Амазон выпустил свой злорадный пост про Oracle.

В общем, стоит добавить в закладки популярный ресурс с чатом, где по жалобам страждущих можно судить о проблемах, которые совсем не обязательно, что появятся на официальных дашбордах проблем Амазона:

https://downdetector.com/status/amazon

Кроме того, стоит помнить, что, как писалось по результатам последнего масштабного падения S3 в 2017-м, в результате падения не представлялось возможным написать про падение:

we were unable to update the individual services’ status on the AWS Service Health Dashboard (SHD) because of a dependency the SHD administration console has on Amazon S3

#info #status
ECR Image Scanning

По многочисленным просьбам трудящихся в ECR добавили фичу сканирования docker-образов на предмет известных уязвимостей:

https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html

Это можно делать как через консоль (на картинке), так и писать своё через ECR API:

https://aws.amazon.com/blogs/containers/amazon-ecr-native-container-image-scanning/

#security
RDS + доступ по TLS = обновление CA сертификатов

У кого приложения работают с БД по TLS, то стоит озаботиться обновлением амазоновских CA-сертификатов.

Процесс хорошо описан в официальной документации, всё с картинками:

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-updating

В качестве альтернативы можно использовать #aws_cli:

aws rds modify-db-instance \
--db-instance-identifier my_db_instance \
--ca-certificate-identifier rds-ca-2019 \
--no-apply-immediately


Стоит учесть, что операция требует перезагрузки сервера баз данных (RDS DB instance).

#RDS #security
​​aws cli + query + table headers + tags

Тема флажка --query в #aws_cli не раз здесь поднималась (её удобно тут искать по тэгу #query, если хотите почитать или просто скопировать и вставить, как я). Конструкции бывают сложные, быстро забываются, а получается красиво, потому залогирую ещё одну.

Одна из самых "отзывчивых" команд:

aws ec2 describe-instances

На выходе бывает вывод на десятки экранов. А вот нужно найти нужные инстансы и их внутренние айпишники. То есть среди этой простыни интересуют лишь следующие строчки:

{
 "Reservations": [
 {
  "Instances": [
   {
...
    "NetworkInterfaces": [
      {
...
       "PrivateIpAddresses": [
        {
         "PrivateDnsName": "ip-10-11-11-211.ec2.internal",
         "PrivateIpAddress": "10.11.11.211",
...
    "InstanceId": "i-09fedeb7686da6be5",
...

Просто табличка

Формируем запрос по ним, учитывая вложенность и добавяем вывод в виде таблицы (флажок --output table):

aws ec2 describe-instances --query "Reservations[].Instances[].[NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress,InstanceId]" --output table

Получилось неплохо (см.первый вывод на картинке), однако сложно сориентироваться, т.к. хотелось бы отдельной колонки под каждый элемент.

Ещё одна колонка

Будем использовать секретную конструкцию вида {MyTableHeader:JsonItem}. Из-за этого переходим на одинарные кавычки и получаем:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].{IP:NetworkInterfaces[0].PrivateIpAddresses[0].PrivateIpAddress,MyInst:InstanceId}' --output table

Другое дело! (см. второй вывод на картинке) Всё чётко, не спутаешь. Однако, конечно, по айдишникам инстансов гадать очень сложно - хорошо бы видеть их названия. Что ж - добавим тэги.

Вывод тэгов

Тэгов может быть много, нас интересует стандартный тэг Name, потому в запрос добавим ещё одну колонку с именем инстанса. Для встроенного поиска по Name используем хитрую конструкцию:

[?Key==`Name`]

Но она на выходе даёт массив, потому добавляем к этому "палку" и вывод первого значения:

|[0].Value

Итоговый запрос

aws ec2 describe-instances --query 'Reservations[*].Instances[*].{IP:NetworkInterfaces[0].PrivateIpAddresses[0].PrivateIpAddress,MyInst:InstanceId,MyName:Tags[?Key==`Name`]|[0].Value}' --output table

Лепота! (см. последний вывод на картинке) Вот теперь полный порядок.
Верите ли вы в AWS vendor lock-in?
Секта какая-то. Здравые и просто счастливо неведующие люди - где же вы?!?