AWS Notes
الذهاب إلى القناة على Telegram
AWS Notes — Amazon Web Services Educational and Information Channel Chat: https://t.me/aws_notes_chat Contacts: @apple_rom, https://www.linkedin.com/in/roman-siewko/ No ads.
إظهار المزيد5 797
المشتركون
لا توجد بيانات24 ساعات
-57 أيام
-330 أيام
أرشيف المشاركات
5 796
Уважаемые коллеги. Кто не знаком, позвольте представить заслуженного мастера спорта международного класса по IAM и другим видам амазоноборства, спикера крупнейших конференций и при этом надёжного информатора о том, что происходит у них там в Европах, Карена Товмасяна.
У Карена есть отличный канал @manandthemachine, где можно прочитать не только про AWS (этого и здесь хватает), но и про тяжёлую судьбушеньку нашего простого человека, попавшего в незаморскую страну Нидерландию. Плюсы, минусы, подводные камни - всё, как вы любите, короче. Не то, чтобы сам лично согласен с излагаемым там, однако это мнение с большой буквы Мэ и кому-то может быть от интересно до помочь.
https://t.me/manandthemachine
5 796
Какой CI-продукт вы используете для работы с AWS?
Если несколько, то какой наиболее часто.
#опрос
5 796
По поводу обещанного анонса.
29 января у @AWS_ru третий день рождения. По такому прекрасному поводу москвичи и гости столицы могут лично послушать доклады от умных людей и пообщаться с коллегами по цеху. Те, кто не смогут приехать, могут расчитывать на трансляцию. Любители ставить докладчиков в неудобное положение своими каверзными вопросами могут расчитывать на призы. ^^
Регистрация: https://www.meetup.com/aws-ru/events/267985758/
Кто пойдет - обнимите от меня Стекова и Патрушева. 😉
P.S. При регистрации указывайте настоящие ФИО, чтобы безопасники Райфа лишний раз не нервничали.
5 796
И снова полезное чтиво.
Serverless vs Containers:
https://www.cloudjourney.io/articles/publiccloud/cost-matters-the-serverless-edition-ls/
Миграция на Serverless:
https://iamondemand.com/blog/modernizing-a-3-tier-application-with-serverless-on-aws/
Как работает CloudFront:
https://www.contentbloom.com/blog/what-you-need-to-know-about-amazons-cdn/
5 796
Баяны, но свежие и даже местами полезные.
101-й туториал по деплою микросервисов на ECS:
https://levelup.gitconnected.com/a-practical-guide-to-deploying-microservices-on-aws-6a8ddd298f7e
102-е сравнение Лямбды и Fargate:
https://www.trek10.com/blog/fargate-lambda-comparison/
103-я статья по S3 versioning:
https://medium.com/@pvinchon/amazon-s3-versioning-d6c57c513b04
5 796
Amazon EFS + IAM Authorization + Access Points
EFS серьёзно прокачался:
https://aws.amazon.com/blogs/aws/new-for-amazon-efs-iam-authorization-and-access-points/
Теперь, вслед за S3 Access Points у нас есть EFS Access Points и теперь можно переопределить все операции на своего юзера.
Другая фичиа - IAM Authorization, в том числе Resource-Based политики доступа для EFS, доступ к которому теперь можно рулить через IAM, аналогично с Amazon S3 bucket policies.
Но самое интересное, это что добавление доступа по IAM открывает прямую дорогу к появлению
persistent storage для Fargate. Как раз при помощи свежевышедших фич. В общем, выделяем желудочный сок и ждём.
#EFS5 796
Отличная утилитка под SSM Session Manager для борьбы с ключами SSH на ваших инстансах (чтобы их не использовать):
https://github.com/xen0l/aws-gate
#SSM
5 796
Три новых Edge locations для CloudFront открылись недавно поблизости - в Венгрии, Румынии и Болгарии.
Львовщина, Ивано-Франковщина и Одесса радуются - Амазон подобрался совсем близко. Остальные же могут покрутить следующую ссылку, надеясь, что разноцветные отметки переползут когда-то и на их территорию:
https://www.google.com/maps/d/viewer?mid=1cj0vZ2YZJNp39MHIbstZT3QKPkl3Xgw2
#CloudFront
5 796
Приятно вот так вот, вечерком, в выходные, посидеть за чашечкой чая или кофе, почитать что-нибудь, почесывая тисипи об айпи, как где-то у кого-то на амазоне что-то не работает или глючит.
И чтобы завязка была, а потом всё в огне или детектив, и после обязательно, чтобы всех спасли, она согласилась, а саппорт ответил. Ну, а под занавес ба-бах - бестпрактисы из всех щелей и сплошной хэппи энд.
В общем, приятного чтения:
https://m.signalvnoise.com/aws-s3-youre-out-of-order/
5 796
Неплохой наборчик AWS-безопасностей в докере набыстропопробовать:
https://github.com/z0ph/aws-security-toolbox
Elastic #Beanstalk обзавёлся своим Roadmap:
https://github.com/aws/elastic-beanstalk-roadmap/projects/1
И плагинчик под хром для тех, кто хочет отличать регион, где он работает в консоли, по цвету:
https://chrome.google.com/webstore/detail/aws-console-regions-color/gfeaclafcmbiakopneapkbaiifnhbkng
5 796
Работа с DynamoDB из aws-cli
scan
Предположим, в таблице много билдов разных проектов. Получим все записи таблицы с ограничением максимум 100 значений.
aws dynamodb scan --table-name jenkins
--max-items 100
Это будут все проекты, можно вывести лишь нужный, например, aws-notes с помощью #query:
aws dynamodb scan --table-name jenkins --query 'Items[?jenkinsProject.S==`aws-notes`]'
query
Сделать выборку по проекту jenkinsProject - получить все билды:
aws dynamodb query --table-name jenkins --max-items 100 --key-condition-expression "jenkinsProject = :jp" --expression-attribute-values '{":jp": { "S": "aws-notes" } }'
Как найти последнее значение билда (не обязательно совпадающее с количеством записей)? Для этого сделаем реверсивную выборку и получим последний элемент, выделив его с помощью #query и сделав таблицу:
aws dynamodb query --table-name jenkins --key-condition-expression "jenkinsProject = :jp" --expression-attribute-values '{":jp": { "S": "aws-notes" } }' --no-scan-index-forward --max-items 1 --query Items[].buildNumber.N[] --output table
------- |Query| +-----+ | 3 | +-----+delete-item Удалим билд
1 из таблицы:
aws dynamodb delete-item --table-name jenkins --key '{ "jenkinsProject": {"S": "aws-notes"}, "buildNumber": {"N": "1"} }'
delete-table
Удалим таблицу .
aws dynamodb delete-table --table-name jenkins
#DynamoDB #aws_cli5 796
Работа с DynamoDB из aws-cli
Примеров работы из aws-cli с DynamoDB кот наплакал, особенно, когда нужны простые вещи, но выходящие за рамки примеров из документации.
create-table
Создадим простенькую таблицу для условного Jenkins, куда будем писать для каждого проекта (
jenkinsProject) свои переменные для каждого билда (buildNumber). Для уменьшения стоимости (хоть и так будет около нуля) вместо дефолтного режима (PROVISIONED) сразу включим (PAY_PER_REQUEST).
Здесь и дальше предполагается, что настроен ~/.aws/config , иначе к каждому запросу добавляем регион --region eu-west-1 (и/или --profile my-profile)
aws dynamodb create-table \
--table-name jenkins \ --attribute-definitions \ AttributeName=jenkinsProject,AttributeType=S \ AttributeName=buildNumber,AttributeType=N \ --key-schema \ AttributeName=jenkinsProject,KeyType=HASH \ AttributeName=buildNumber,KeyType=RANGE \ --billing-mode PAY_PER_REQUESTput-item Запишем в таблицу значение для условного проекта
aws-notes и билда номер 1 из ветки feature-1. Для получения текущего timestamp вручную выполним:
date +%s
1578575096
Получение timestamp можно добавить и сразу в команду, но так наглядней.
Сделаем выполнение сразу из строки, а не через отдельный файл для JSON (из-за этого не получится разбить строчку обратным слэшем - поэтому получится длинная):
aws dynamodb put-item --table-name jenkins --item '{ "jenkinsProject": {"S": "aws-notes"}, "buildNumber": {"N": "1"}, "imageTag": {"S": "feature-1.build-1"}, "imageRepository": {"S": "123166313456.dkr.ecr.eu-west-1.amazonaws.com/aws-notes"}, "date": {"S": "2020-01-09 13:04"}, "timestamp": {"N": "1569486943"}, "branch": {"S": "feature-1"} }'
Переменных добавлено сразу много разных и больше условно, чисто для примера и чтобы удобней выбрать, удалив лишние.
update-item
Обновим билд 1, исправив в нём тэг и ветку (заменим 1 на 1а):
aws dynamodb update-item --table-name jenkins --key '{ "jenkinsProject": {"S": "aws-notes"}, "buildNumber": {"N": "1"} }' --update-expression "SET #T = :t, #B = :b" --expression-attribute-names '{ "#T":"imageTag", "#B":"branch" }' --expression-attribute-values '{ ":t": {"S": "feature-1a.build-1"}, ":b": {"S": "feature-1a"} }'
...продолжение следует
#DynamoDB #aws_cli5 796
ALB Ingress Controller - обновлённая версия статьи:
https://aws.amazon.com/blogs/opensource/kubernetes-ingress-aws-alb-ingress-controller/
#EKS #kubernetes
5 796
Если пересчитать, то в среднем дорога у читателей этого канала занимает 37 минут в одну сторону.
5 796
Сколько времени (примерно, обычно) вы тратите на то, чтобы добраться на работу (в одну сторону)?
#опрос
5 796
Отличный практикум по Лямбде из командной строки:
https://github.com/nsriram/lambda-the-cli-way
Поэтапное усложнение - от HelloWorld и логов, до интеграции с другими сервисами и SAM (Serverless Application Model). В закладки однозначно.
#Lambda #aws_cli #tutorial
5 796
IAM с самоуничтожением
Можно ли сделать такие политики для IAM, чтобы они отработали и уничтожились через некоторое время?
Чтобы совсем уничтожились - придётся наворачивать лямбду. А чтобы просто отработали лишь на какое-то определённое время — запросто.
Для этого нужно использовать Date Condition Operators, например, так:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/my-file",
"Condition": {
"DateGreaterThan": {
"aws:CurrentTime": "2020-01-04T10:00Z"
},
"DateLessThan": {
"aws:CurrentTime": "2020-01-05T18:00Z"
}
}
}
]
}
Т.е. доступ к my-bucket/my-file будет лишь с завтрашнего утра до послезавтрашнего вечера.
#IAM #policy5 796
AWS + operating system
Какую ОС стоит посоветовать освоить человеку в первую очередь, желающему в будущем работать с AWS?
С чего начать, чтобы максимально (практически, перспективно, денежно) полезно?
Какое семейство дистрибутивов выбрать? Личный опыт и с учётом на будущее (а не популярности где-то и когда-то).
1. Ubuntu и другие Debian based
2. CentOS, Fedora Core и другие RedHat based
3. Chrome OS, CoreOS и другие Gentoo based
4. OpenSUSE / SUSE
5. FreeBSD и другие BSD based
6. Другой
#опрос
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
