В случаях, когда узким местом становится скорость работы #S3 - не забываем, что дефолтные настройки можно изменить:
https://docs.aws.amazon.com/cli/latest/topic/s3-config.html
Например, для бакетов, имеющих #S3_Accelerate (в то время как по дефолту use_accelerate_endpoint=
https://docs.aws.amazon.com/cli/latest/topic/s3-config.html
Например, для бакетов, имеющих #S3_Accelerate (в то время как по дефолту use_accelerate_endpoint=
false) или просто для увеличения скорости загрузки (или наоборот - для уменьшения нагрузки на виртуалку).
AWS Notes
В общем случае стоит избегать использования #IAM #ManagedPolicy, т.к. граждане в Амазоне не утруждают себя использованием ограниченных #permissions в них и запросто ставят "жирные" #policy. Например, в AmazonEC2RoleforSSM, которое рекомендуется для работы…
Чтобы использовать безопасные #iam_policy для #SSM #Session_Manager, придётся использовать длинную простыню правил:
https://github.com/applerom/cloudformation-examples/blob/master/ssm/ssm-manager-policy.yml
#security
https://github.com/applerom/cloudformation-examples/blob/master/ssm/ssm-manager-policy.yml
#security
GitHub
applerom/cloudformation-examples
AWS CloudFormation code examples. Contribute to applerom/cloudformation-examples development by creating an account on GitHub.
Очень полезный и детальный список #best_practices и #worst_practices или паттернов и анти-паттернов для современного #CI_CD.
https://www.gronau-it-cloud-computing.de/pattern-and-anti-pattern-cicd/
#design
https://www.gronau-it-cloud-computing.de/pattern-and-anti-pattern-cicd/
#design
Если вы умеете работать в #AWS_Console, но не умеете или лишь осваиваете #CloudFormation, то для вас #AWSConsoleRecorder может быть бесценной находкой.
https://github.com/iann0036/AWSConsoleRecorder
Вы делаете всё нужное в браузере с помощью плагина, а на выходе получаете готовый сценарий в виде команд, CloudFormation шаблона или других вещей, в частности #Terraform.
https://github.com/iann0036/AWSConsoleRecorder
Вы делаете всё нужное в браузере с помощью плагина, а на выходе получаете готовый сценарий в виде команд, CloudFormation шаблона или других вещей, в частности #Terraform.
GitHub
GitHub - iann0036/AWSConsoleRecorder: Records actions made in the AWS Management Console and outputs the equivalent CLI/SDK commands…
Records actions made in the AWS Management Console and outputs the equivalent CLI/SDK commands and CloudFormation/Terraform templates. - iann0036/AWSConsoleRecorder
Добавление в #ECR возможности тэгировать репозитории может поломать ваши сценарии, т.к. в #IAM добавилось новое #policy 'ecr:ListTagsForResource':
... error getting ECR repository tags: AccessDeniedException: User: ... is not authorized to perform: ecr:ListTagsForResource ...Amazon Web Services, Inc.
Amazon ECR now allows Repository Tagging
В прошлом году под Рождество выкатили AWS SSO, в этот раз таким подарком для меня может оказаться AWS Client VPN.
Amazon
Introducing AWS Client VPN to Securely Access AWS and On-Premises Resources
В частности, про #SSO — небольшая утилитка на Go для аутентификации с использованием #Shibboleth Identity Provider.
https://github.com/CUBoulder-OIT/aws-shib
https://github.com/CUBoulder-OIT/aws-shib
Использование секции #Rules в #CloudFormation #templates для дополнительной валидации входных параметров (например, чтобы проверить, что один параметр равен другому).
https://www.cloudar.be/awsblog/undocumented-feature-using-template-constraint-rules-in-cloudformation/
Работает лишь в консоли, но для случаев её использования может быть крайне удобным.
https://www.cloudar.be/awsblog/undocumented-feature-using-template-constraint-rules-in-cloudformation/
Rules:
ValidateEqual:
Assertions:
- AssertDescription: Both parameters must be the same
Assert:
"Fn::Equals":
- !Ref CanBeAnything
- !Ref MustBeTheSame
Работает лишь в консоли, но для случаев её использования может быть крайне удобным.
Cloudar
Undocumented feature: Using Template Constraint Rules in CloudFormation - Cloudar
Last month there was a post on the AWS Management Tools blog about how you can use Template Constraint Rules in CloudFormation. Template Constraints is a Service Catalog feature that allows you to validate the values of different parameters against each other.…
Если вы шарите в контейнерах (но при этом вы не бомж), то хронологию новостей по теме #containers можно отслеживать тут:
https://aws.amazon.com/containers/new/
https://aws.amazon.com/containers/new/
Amazon Web Services, Inc.
What's New | Amazon Container Services
Amazon Container Services make it easy to run and manage containers in the cloud.
Бывает нужно найти "похожий сервис" в разных облаках. Соответствие сервисов #AWS и #Azure - официальный список от последней:
https://docs.microsoft.com/en-us/azure/architecture/aws-professional/services
https://docs.microsoft.com/en-us/azure/architecture/aws-professional/services
Docs
AWS to Azure services comparison - Azure Architecture Center
Compare Azure cloud services to Amazon Web Services (AWS) for multicloud solutions or migration to Azure.
Получить объём #s3 бакета:
[
136474715550,
24283
]
Первое число - объём в байтах, второе - количество файлов.
Посмотреть с помощью #aws_cli объекты в папке s3 бакета и узнать её объём:
aws s3api list-objects --bucket my-analytics-logs --output json --query "[sum(Contents[].Size), length(Contents[])]"
[
136474715550,
24283
]
Первое число - объём в байтах, второе - количество файлов.
Посмотреть с помощью #aws_cli объекты в папке s3 бакета и узнать её объём:
aws s3 ls --summarize --human-readable --recursive s3://my-analytics-logs/indices/
Чтобы прокинуть #IAM роль (инстанса) внутрь докера (актуально, например, при запуске тестов в докере на #CodeBuild), нужно использовать переменную AWS_CONTAINER_CREDENTIALS_RELATIVE_URI:
→ https://docs.aws.amazon.com/codebuild/latest/userguide/troubleshooting.html#troubleshooting-versions
→ https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html
docker-compose run --name MS -e AWS_CONTAINER_CREDENTIALS_RELATIVE_URI app bash -c "python manage.py test -v --junit-report=/report.xml"
→ https://docs.aws.amazon.com/codebuild/latest/userguide/troubleshooting.html#troubleshooting-versions
→ https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html
Amazon
Troubleshooting AWS CodeBuild - AWS CodeBuild
Provides troubleshooting information for AWS CodeBuild.
При монтировании #EFS через #VPC_peering нужно учитывать, что не все инстансы это позволяют, а лишь современные:
· T3
· C5
· C5d
· I3.metal
· M5
· M5d
· R5
· R5d
· z1d
Иначе (как я последние два дня с T2) получаем ошибку по таймауту: mount.nfs4: Connection timed out.
https://docs.aws.amazon.com/efs/latest/ug/manage-fs-access-vpc-peering.html
· T3
· C5
· C5d
· I3.metal
· M5
· M5d
· R5
· R5d
· z1d
Иначе (как я последние два дня с T2) получаем ошибку по таймауту: mount.nfs4: Connection timed out.
https://docs.aws.amazon.com/efs/latest/ug/manage-fs-access-vpc-peering.html
Amazon
Mounting EFS file systems from another AWS account or VPC - Amazon Elastic File System
Mount your EFS file system using IAM or access points from another account or VPC.
Как говорится, «запомните этот пост» — открывается первый фронт будущей широкомасштабной войны. AWS добавил в #SMS поддержку миграции виртуалок с #Azure.
https://aws.amazon.com/about-aws/whats-new/2019/04/announcing_azure_awsmigration_servermigrationservice/
#cloud_war
https://aws.amazon.com/about-aws/whats-new/2019/04/announcing_azure_awsmigration_servermigrationservice/
#cloud_war
Amazon
Announcing Azure to AWS migration support in AWS Server Migration Service
Чтобы следить за утечкой в общий доступ важных параметров (например, AWS ID) — можно использовать Google Alerts, настроив слежение за свежепроидексированным Google на эти значения.
Узнавать постфактум не лучшая практика, конечно, но лучше уж позже и вы, чем раньше и враги.
#security
Узнавать постфактум не лучшая практика, конечно, но лучше уж позже и вы, чем раньше и враги.
#security
Если свежесозданный #CloudFront отдаёт #error 307 при доступе в (также свежесозданный) бакет, находящийся не в дефолтном регионе (N.Virginia), то не стоит искать ошибку в вашем шаблоне — это лаг самого Амазона на создание DNS бакета в своём в регионе и тут придётся просто ждать (5-45 минут, в зависимости от текущего здоровья Амазона).
Когда он разродится, ошибка исчезнет сама (чтобы это увидеть быстрей - потребуется инвалидация кэша).
Ситуация не возникает по понятным причинам (время проходит и так), когда всё создаётся ручками. Чтобы как-то нивелировать проблему, желательно максимально разнести по времени процессы создания бакета и клаудфронта и/или, если окружение поднимается-удаляется (например, для тестов), то не удалять бакет (пустой бакет денег не ест).
Когда он разродится, ошибка исчезнет сама (чтобы это увидеть быстрей - потребуется инвалидация кэша).
Ситуация не возникает по понятным причинам (время проходит и так), когда всё создаётся ручками. Чтобы как-то нивелировать проблему, желательно максимально разнести по времени процессы создания бакета и клаудфронта и/или, если окружение поднимается-удаляется (например, для тестов), то не удалять бакет (пустой бакет денег не ест).
По умолчанию доступ к биллингу аккаунта имеет лишь root-юзер. Добавление другому юзеру (даже с админскими правами) в #IAM политики #Billing не даст доступ к биллингу.
Для этого нужно предварительно активировать IAM User and Role Access to Billing Information (залогившись под рутом). После этого политика Billing будет работать как положено для любого юзера/роли.
https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_billing.html?icmpid=docs_iam_console#tutorial-billing-step2
Для этого нужно предварительно активировать IAM User and Role Access to Billing Information (залогившись под рутом). После этого политика Billing будет работать как положено для любого юзера/роли.
https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_billing.html?icmpid=docs_iam_console#tutorial-billing-step2
Amazon
Setting up your AWS account - AWS Identity and Access Management
Before you start working with IAM, make sure you have completed the initial set up of your AWS environment.