SSE-S3 (AES 256) - что даёт?
У многих возникает вопрос - что за такое шифрование, которое просто галку поставил и всё типа зашифровано. В чём его смысл, если ничего не нужно делать и все запросы автоматически отдаются, если есть к бакету доступ?
Это никакой не развод (да и бесплатно), смысл в соблюдении различных compliance. Условно говоря, если есть требование, что данные зашифрованы и что враги не могут взорвать датацентр, утащить оттуда винчестеры и скопировать с них ваши данные - поставили эту галочку и compliance выполнены. Да и просто душу греет - данные не просто там бесхозно лежат, а зашифрованы.
Не ленитесь поставить - полезно, несложно, на халяву да и сразу же даёт хоть какое-то ощущение безопасности.
#S3 #security
У многих возникает вопрос - что за такое шифрование, которое просто галку поставил и всё типа зашифровано. В чём его смысл, если ничего не нужно делать и все запросы автоматически отдаются, если есть к бакету доступ?
Это никакой не развод (да и бесплатно), смысл в соблюдении различных compliance. Условно говоря, если есть требование, что данные зашифрованы и что враги не могут взорвать датацентр, утащить оттуда винчестеры и скопировать с них ваши данные - поставили эту галочку и compliance выполнены. Да и просто душу греет - данные не просто там бесхозно лежат, а зашифрованы.
Не ленитесь поставить - полезно, несложно, на халяву да и сразу же даёт хоть какое-то ощущение безопасности.
#S3 #security
SCP для запрещения обновления CloudFormation стэков
Если вы деплоите всё с помощью CloudFormation и используете мульти-аккаунт схему, то очень удобно в конце отработки процесса создания/обновления для требующих защиты окружений (читай - prod) накладывать на аккаунт следующее SCP:
В списке запрещены именно изменяющие действия, просто запретить
#SCP
Если вы деплоите всё с помощью CloudFormation и используете мульти-аккаунт схему, то очень удобно в конце отработки процесса создания/обновления для требующих защиты окружений (читай - prod) накладывать на аккаунт следующее SCP:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"cloudformation:CreateChangeSet",
"cloudformation:CreateStack",
"cloudformation:CreateStackInstances",
"cloudformation:CreateStackSet",
"cloudformation:CreateUploadBucket",
"cloudformation:DeleteChangeSet",
"cloudformation:DeleteStack",
"cloudformation:DeleteStackInstances",
"cloudformation:DeleteStackSet",
"cloudformation:ExecuteChangeSet",
"cloudformation:SetStackPolicy",
"cloudformation:UpdateStack",
"cloudformation:UpdateStackInstances",
"cloudformation:UpdateStackSet",
"cloudformation:UpdateTerminationProtection"
],
"Resource": [
"*"
]
}
]
}В списке запрещены именно изменяющие действия, просто запретить
cloudformation:* неудобно, т.к. тогда не получится зайдя в этот аккаунт посмотреть текущее состояние CloudFormation стэков. А так внешне ничего не меняется, только CI/CD утилиты получат отказ при случайном (или намерянном) запуске - прод в безопасности.#SCP
Single-Table Design with DynamoDB
Хорошая разъясняющая статья по #best_practices архитектуры для DynamoDB:
https://www.alexdebrie.com/posts/dynamodb-single-table/
Подробно описаны свойства и преимущества single-table архитектуры, а также случаи, когда это неуместно.
#DynamoDB #design
Хорошая разъясняющая статья по #best_practices архитектуры для DynamoDB:
https://www.alexdebrie.com/posts/dynamodb-single-table/
Подробно описаны свойства и преимущества single-table архитектуры, а также случаи, когда это неуместно.
#DynamoDB #design
Alexdebrie
The What, Why, and When of Single-Table Design with DynamoDB | DeBrie Advisory
AWS recommends using just a single DynamoDB table for your entire application. In this post, learn why you would do that and the few times you shouldn't.
Подробности.
Надпись на фото: «Друзья, не позволяйте друзьям строить датацентры».
Когда есть AWS — незачем строить свои датацентры — когда есть AWS!
Надпись на фото: «Друзья, не позволяйте друзьям строить датацентры».
Когда есть AWS — незачем строить свои датацентры — когда есть AWS!
Хорошее практически-прикладное видео по Amazon EventBridge:
https://www.youtube.com/watch?v=ea9SCYDJIm4
Коротко (9 мин.), понятно, на простом примере работы с эвентами для S3.
Кто ещё не познакомился с Amazon EventBridge - очень советую. А всем, кто работает с Event Driven архитектурой - просто must know.
#EventBridge
https://www.youtube.com/watch?v=ea9SCYDJIm4
Коротко (9 мин.), понятно, на простом примере работы с эвентами для S3.
Кто ещё не познакомился с Amazon EventBridge - очень советую. А всем, кто работает с Event Driven архитектурой - просто must know.
#EventBridge
YouTube
How To Get Started With Amazon EventBridge
Amazon EventBridge is a serverless event bus that is both powerful and easy to use. In this video we will demonstrate how you can get started with EventBridge including creating an event bus, setting up rules, and adding a target. You can use EventBridge…
Временные аккаунты в AWS
Если коротко - их нет. Ждём-с. А пока есть проект, где группа энтузиастов попыталось такое реализовать уже сейчас:
https://github.com/Optum/dce
Работает в схеме с AWS Organizations — вы закидываете в pool свои аккаунты, которые после можно легко выдавать в работу, под капотом отрабатывает терраформ, который делает базовые настройки аккаунта, а по окончании использования в аккаунте с помощью aws-nuke удаляются все ресурсы и он вновь отправляется в pool свободных для использования.
Хорошая идея реализации "одноразовой инфраструктуры". Которую, не будем показывать пальцем, всё ещё не сделали, хотя надо и давно.
Могу лишь добавить, что есть некоторая информация о новых фичах AWS Organizations и, возможно, как раз вскоре выкатят удаление аккаунтов, на которое так часто жалуюсь (что его нет). В общем - ждите настойчиво и дождётесь!
#Organizations
Если коротко - их нет. Ждём-с. А пока есть проект, где группа энтузиастов попыталось такое реализовать уже сейчас:
https://github.com/Optum/dce
Работает в схеме с AWS Organizations — вы закидываете в pool свои аккаунты, которые после можно легко выдавать в работу, под капотом отрабатывает терраформ, который делает базовые настройки аккаунта, а по окончании использования в аккаунте с помощью aws-nuke удаляются все ресурсы и он вновь отправляется в pool свободных для использования.
Хорошая идея реализации "одноразовой инфраструктуры". Которую, не будем показывать пальцем, всё ещё не сделали, хотя надо и давно.
Могу лишь добавить, что есть некоторая информация о новых фичах AWS Organizations и, возможно, как раз вскоре выкатят удаление аккаунтов, на которое так часто жалуюсь (что его нет). В общем - ждите настойчиво и дождётесь!
#Organizations
GitHub
GitHub - Optum/dce: Disposable Cloud Environment
Disposable Cloud Environment. Contribute to Optum/dce development by creating an account on GitHub.
Хотите работать в AWS?
У вас отличный шанс прямо сейчас:
https://media.thinknum.com/articles/amazon-job-openings-top-36000-yes-36-thousand/
Амазон прямо сейчас ищет 36 тысяч (реально) новых сотрудников! Например, самые многочисленные вакансии:
• девелоперы — 10 000+
• архитекты (SA) — 3 000
• опсы — 2 000+
• PM-ы — 2 000+
• сэйлзы — 2 000
• machine learning — 500
• железячники — 500
Так что не мешкайте, не сомневайтесь и пробуйте.
У вас всё получится!
#пятничное (но правда)
У вас отличный шанс прямо сейчас:
https://media.thinknum.com/articles/amazon-job-openings-top-36000-yes-36-thousand/
Амазон прямо сейчас ищет 36 тысяч (реально) новых сотрудников! Например, самые многочисленные вакансии:
• девелоперы — 10 000+
• архитекты (SA) — 3 000
• опсы — 2 000+
• PM-ы — 2 000+
• сэйлзы — 2 000
• machine learning — 500
• железячники — 500
Так что не мешкайте, не сомневайтесь и пробуйте.
У вас всё получится!
#пятничное (но правда)
Businessofbusiness
Amazon job openings top 36,000. Yes, 36 thousand. Here's what and where it's hiring.
As of today, Amazon ($NASDAQ:AMZN) lists 36,305 openings on its HR recruiting website. That is not an error: Amazon is hiring more than thirty-six thousand people around the world.
Картинок знаний для девопсов много, очередная найденная также будет полезной:
https://roadmap.sh/devops
Удобно - просто присмотревшись можно и увидеть свои дыры в знаниях, и наметить план собеседования (и, наоборот, подготовиться), быстро выбрать недостающий инстумент для какого-то процесса или просто помечтать, когда найдётся время начать всё это учить.
#info #devops
https://roadmap.sh/devops
Удобно - просто присмотревшись можно и увидеть свои дыры в знаниях, и наметить план собеседования (и, наоборот, подготовиться), быстро выбрать недостающий инстумент для какого-то процесса или просто помечтать, когда найдётся время начать всё это учить.
#info #devops
Beanstalk + ALB + CloudFormation
По умолчанию в Elastic Beanstalk создаётся ALB, если делать это через консоль:
By default, Elastic Beanstalk creates an Application Load Balancer for your environment when you enable load balancing with the Elastic Beanstalk console or the EB CLI.
А через CloudFormation - с классическим ELB! (Здравствуй, логика.) Из-за этого в документации не найти примеров кода для создания Beanstalk в CloudFormation.
Cервис старый и все примеры в интернете обычно лишь для классического (старого) ELB. И документация из-за старости и сложности (под капотом) сервиса, весьма неочевидна.
Вот главная ссылка, что всегда требуется при создании шаблона для Beanstalk:
https://docs.amazonaws.cn/en_us/elasticbeanstalk/latest/dg/command-options-general.html
А вот пример кода, как заставить создать Beanstalk + ALB через CloudFormation:
#Beanstalk #CloudFormation #templates
По умолчанию в Elastic Beanstalk создаётся ALB, если делать это через консоль:
By default, Elastic Beanstalk creates an Application Load Balancer for your environment when you enable load balancing with the Elastic Beanstalk console or the EB CLI.
А через CloudFormation - с классическим ELB! (Здравствуй, логика.) Из-за этого в документации не найти примеров кода для создания Beanstalk в CloudFormation.
Cервис старый и все примеры в интернете обычно лишь для классического (старого) ELB. И документация из-за старости и сложности (под капотом) сервиса, весьма неочевидна.
Вот главная ссылка, что всегда требуется при создании шаблона для Beanstalk:
https://docs.amazonaws.cn/en_us/elasticbeanstalk/latest/dg/command-options-general.html
А вот пример кода, как заставить создать Beanstalk + ALB через CloudFormation:
- Namespace: aws:elasticbeanstalk:environmentПеременные нужно поменять на свои, главная оставить
OptionName: LoadBalancerType
Value: application
- Namespace: aws:elbv2:listener:443
OptionName: Protocol
Value: HTTPS
- Namespace: aws:elbv2:listener:443
OptionName: SSLCertificateArns
Value: !Ref AcmCertificateArn
- Namespace: aws:elbv2:listener:443
OptionName: DefaultProcess
Value: default
- Namespace: aws:elbv2:loadbalancer
OptionName: SecurityGroups
Value: !ImportValue sgVpc4Web
- Namespace: aws:elasticbeanstalk:environment:process:default
OptionName: Port
Value: !Ref InstancePort
- Namespace: aws:elasticbeanstalk:environment:process:default
OptionName: Protocol
Value: HTTP
- Namespace: aws:elasticbeanstalk:environment:process:default
OptionName: StickinessEnabled
Value: true
- Namespace: aws:elasticbeanstalk:environment:process:default
OptionName: HealthCheckPath
Value: !Ref HealthCheckPath
LoadBalancerType - application.#Beanstalk #CloudFormation #templates
AWS CLI v2
Некоторое время назад в preview, а теперь полноценная замена:
https://aws.amazon.com/blogs/developer/aws-cli-v2-is-now-generally-available/
Чтобы поставить поверх текущей - нужно удалить ссылку предыдущей (первой) версии:
aws --version
which aws
rm -rf /usr/local/bin/aws
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
Кто ставит не в дефолтную юзеровскую директорию (использует ключики
То для второй версии:
Иначе (если указать для второй аналогичное
#aws_cli
Некоторое время назад в preview, а теперь полноценная замена:
https://aws.amazon.com/blogs/developer/aws-cli-v2-is-now-generally-available/
Чтобы поставить поверх текущей - нужно удалить ссылку предыдущей (первой) версии:
aws --version
aws-cli/1.16.300 Python/2.7.16 Linux/4.14.97-90.72.amzn2.x86_64 botocore/1.13.36which aws
/usr/local/bin/awsrm -rf /usr/local/bin/aws
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
aws-cli/2.0.0 Python/3.7.3 Linux/4.14.97-90.72.amzn2.x86_64 botocore/2.0.0dev4Кто ставит не в дефолтную юзеровскую директорию (использует ключики
-i и -b), обратите внимание, изменилась логика работы второго параметра -b, его нужно указывать без aws на конце - первая версия предполагает полный путь, а вторая лишь каталог для ссылки. Т.е. для первой нужно было, например:sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/bin/awsТо для второй версии:
sudo ./aws/install -i /usr/local/aws-cli -b /usr/binИначе (если указать для второй аналогичное
/usr/bin/aws) увидите после установки:You can now run: /usr/bin/aws/aws --version#aws_cli
Amazon
AWS CLI v2 is now generally available | Amazon Web Services
We’re excited to announce the v2.0.0 GA release of the AWS CLI version 2 (v2). AWS CLI v2 builds on AWS CLI v1 and includes a number of features and enhancements based on community feedback. New Features The AWS CLI v2 offers several new features including…
OrganizationAccountAccessRole
При создании нового аккаунта можно указать роль, через которую можно будет в него переключиться. Если в поле IAM role name ничего не указать, то по умолчанию создастся роль с именем OrganizationAccountAccessRole.
Обычно такое название устраивает и оно уже давно прописано в различных настройках. Но если аккаунты создаются не так часто, то можно забыть - создастся ли эта роль или аккаунт канет в бездну недоступности?
В интерфейсе текущей версии AWS Console для Organizations организации нет чётких подсказок на этот счёт. Потому, в том числе для себя в будущем, напоминаю:
If you don't specify a name, AWS Organizations gives the role a default name of OrganizationAccountAccessRole.
То есть, да, если оставить это поле (IAM role name) пустым, то создастся аккаунт с ролью OrganizationAccountAccessRole.
Просто редко делаю через консоль — всё через скрипты, CloudFormation или командную строку, а там очевидно. Надеюсь, теперь запомню.
#Organizations #AWS_Console
При создании нового аккаунта можно указать роль, через которую можно будет в него переключиться. Если в поле IAM role name ничего не указать, то по умолчанию создастся роль с именем OrganizationAccountAccessRole.
Обычно такое название устраивает и оно уже давно прописано в различных настройках. Но если аккаунты создаются не так часто, то можно забыть - создастся ли эта роль или аккаунт канет в бездну недоступности?
В интерфейсе текущей версии AWS Console для Organizations организации нет чётких подсказок на этот счёт. Потому, в том числе для себя в будущем, напоминаю:
If you don't specify a name, AWS Organizations gives the role a default name of OrganizationAccountAccessRole.
То есть, да, если оставить это поле (IAM role name) пустым, то создастся аккаунт с ролью OrganizationAccountAccessRole.
Просто редко делаю через консоль — всё через скрипты, CloudFormation или командную строку, а там очевидно. Надеюсь, теперь запомню.
#Organizations #AWS_Console
Well-Architected для Serverless
Для сторонников Serverless-подхода, и тех, кто желает к ним переметнуться, теперь можно удобно прямо в консоли поотвечать на вопросы и получить готовые рекомендации, насколько желаемое соответствует #best_practices по части Serverless:
https://aws.amazon.com/blogs/aws/new-serverless-lens-in-aws-well-architected-tool/
Кто не в курсе, что такое AWS Well-Architected Tool - это такая простая возможность провести аудит ваших подходов к дизайну архитектуры, получив консультацию и рекомендацию от самого Амазона. Очень стоит ознакомиться, особенно тем, кто принимает решения по архитектуре ваших приложений и вообще всего окружения.
#design #well_architected
Для сторонников Serverless-подхода, и тех, кто желает к ним переметнуться, теперь можно удобно прямо в консоли поотвечать на вопросы и получить готовые рекомендации, насколько желаемое соответствует #best_practices по части Serverless:
https://aws.amazon.com/blogs/aws/new-serverless-lens-in-aws-well-architected-tool/
Кто не в курсе, что такое AWS Well-Architected Tool - это такая простая возможность провести аудит ваших подходов к дизайну архитектуры, получив консультацию и рекомендацию от самого Амазона. Очень стоит ознакомиться, особенно тем, кто принимает решения по архитектуре ваших приложений и вообще всего окружения.
#design #well_architected
Amazon
New – Serverless Lens in AWS Well-Architected Tool | Amazon Web Services
When you build and run applications in the cloud, how often are you asking yourself “am I doing this right” ? This is actually a very good question, and to let you get a good answer, we released publicly in 2015 the AWS Well-Architected Framework, a formal…
CloudFormation StackSets + AWS Organizations
StackSets получили возможность автодеплоя для всех аккаунтов в организации. До этого был похожий функцилонал (можно было выбирать аккаунты-регионы), но не было возможности именно автодеплоя для вновь добавленных аккаунтов.
https://aws.amazon.com/blogs/aws/new-use-aws-cloudformation-stacksets-for-multiple-accounts-in-an-aws-organization/
Теперь есть возможность применять общие вещи ко всем аккаунтам организации централизованно или к выбранным OU.
Фича как бы относится ко всей организации, но вы не найдёте её на очевидной страничке Organizations → Settings (кстати, почему?? ). Чтобы включить такую возможность, нужно зайти в CloudFormation консоль мастер аккаунта, где на вкладке StackSets появится кнопка Enable trusted access (на картинке), нажав которую, CloudFormation Stacksets получит право деплоя в любой аккаунт организации.
Незаметной и важной фичей тут нужно отметить следующую вещь:
If your stack set targets a parent OU, the stack set also targets any child OUs.
Казалось бы - логично, что вложенные OU и все их аккаунты вы тоже бы хотели обрабатывать автоматически, указав "родительский" OU. Так вот - нет, не логично. Дефолтный функционал AWS Organizations не обрабатывает вложенные OU (и их аккаунты). Этот баг в своё время назвали фичей, а теперь, вот, пришлось тут править, чтобы удобно было пользоваться.
В общем, действительно важная и обязательно рекомендуемая фича в мульти-аккаунт стратегии.
#CloudFormation #Organizations
StackSets получили возможность автодеплоя для всех аккаунтов в организации. До этого был похожий функцилонал (можно было выбирать аккаунты-регионы), но не было возможности именно автодеплоя для вновь добавленных аккаунтов.
https://aws.amazon.com/blogs/aws/new-use-aws-cloudformation-stacksets-for-multiple-accounts-in-an-aws-organization/
Теперь есть возможность применять общие вещи ко всем аккаунтам организации централизованно или к выбранным OU.
Фича как бы относится ко всей организации, но вы не найдёте её на очевидной страничке Organizations → Settings (кстати, почему?? ). Чтобы включить такую возможность, нужно зайти в CloudFormation консоль мастер аккаунта, где на вкладке StackSets появится кнопка Enable trusted access (на картинке), нажав которую, CloudFormation Stacksets получит право деплоя в любой аккаунт организации.
Незаметной и важной фичей тут нужно отметить следующую вещь:
If your stack set targets a parent OU, the stack set also targets any child OUs.
Казалось бы - логично, что вложенные OU и все их аккаунты вы тоже бы хотели обрабатывать автоматически, указав "родительский" OU. Так вот - нет, не логично. Дефолтный функционал AWS Organizations не обрабатывает вложенные OU (и их аккаунты). Этот баг в своё время назвали фичей, а теперь, вот, пришлось тут править, чтобы удобно было пользоваться.
В общем, действительно важная и обязательно рекомендуемая фича в мульти-аккаунт стратегии.
#CloudFormation #Organizations
DaC - Diagram as Code
Если вы не любите рисовать диаграммы (а нужно) и любите питон (и правильно), то у меня для вас есть выход:
https://diagrams.mingrammer.com/docs/examples
Он же вход, подход и переход.
https://github.com/mingrammer/diagrams
Согласитесь, ведь проще написать:
...чем рисовать эти дурацкие квадратики и стрелочки (на картинке ниже).
В общем, для тех, кто предпочитает кодить - отличный способ кодить в том числе диаграммы для своих отчётов и презентаций!
#info #python
Если вы не любите рисовать диаграммы (а нужно) и любите питон (и правильно), то у меня для вас есть выход:
https://diagrams.mingrammer.com/docs/examples
Он же вход, подход и переход.
https://github.com/mingrammer/diagrams
Согласитесь, ведь проще написать:
from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB
with Diagram("Web Service", show=False):
ELB("lb") >> EC2("web") >> RDS("userdb")
...чем рисовать эти дурацкие квадратики и стрелочки (на картинке ниже).
В общем, для тех, кто предпочитает кодить - отличный способ кодить в том числе диаграммы для своих отчётов и презентаций!
#info #python
Встроенный SSM-агент для
https://aws.amazon.com/about-aws/whats-new/2020/02/amazon-ecs-optimized-linux-2-amis-come-pre-installed-aws-systems-manager-agent/
Теперь можно будет убрать из скриптов ставшую лишней строчку
#SSM #ECS #AMI
ECS-Optimized Amazon Linux 2 AMI:https://aws.amazon.com/about-aws/whats-new/2020/02/amazon-ecs-optimized-linux-2-amis-come-pre-installed-aws-systems-manager-agent/
Теперь можно будет убрать из скриптов ставшую лишней строчку
yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm (т.к. теперь SSM-агент идёт из коробки).#SSM #ECS #AMI
Amazon Web Services, Inc.
Amazon ECS-optimized Linux 2 AMIs now come with pre-installed AWS Systems Manager Agent
ECS task + init container
Часто нужно, чтобы ECS
https://github.com/applerom/cloudformation-examples/blob/master/ecs/task-with-init-container.yaml
Код из рабочего конфига, но отредактирован (длинный, выброшено не относящееся к делу), чисто к тому, как такое можно сделать. В нём будут интересны следующие строчки.
...
...
...
...
Поднимаем
Контейнер для инициализации отрабатывает первым и умирает, потому ставим ему:
Он должен выполнить какую-то команду(-ы), запускаем следующим способом:
После него должен стартовать основной контейнер, чтобы реализовать такую последовательность (сначала - init, а уже потому главный), добавляем зависимость от первого:
И ставим главному контейнеру:
Так можно регулировать последовательность запуска и инициализировать что-то перед работой основного сервиса.
#CloudFormation #templates #examples
Часто нужно, чтобы ECS
task-а сначала была проиниацилизирована, а уже потом стартовал сервис. Пример, как такое можно сделать с помощью CloudFormation:https://github.com/applerom/cloudformation-examples/blob/master/ecs/task-with-init-container.yaml
Код из рабочего конфига, но отредактирован (длинный, выброшено не относящееся к делу), чисто к тому, как такое можно сделать. В нём будут интересны следующие строчки.
ecsTaskWithInit:
Type: AWS::ECS::TaskDefinition
Properties:
...
ContainerDefinitions:
- Name: !Ref StdNameInit
Image: !Ref DockerImage
Essential: false
...
Command:
- sh
- '-c'
- !Sub |
cd /home/my/app \
&& ./setup.py migrate --noinput \
&& ./setup.py rebuild_index --noinput
...
- Name: !Ref StdName
Image: !Ref DockerImage
Essential: true
Links:
- !Ref StdNameInit
Environment:
...
Поднимаем
task-у с двумя контейнерами - один будет для инициализации, а другой уже стартует сервис (это может быть один и тот же образ, лишь с разными переменными, как в данном случае).Контейнер для инициализации отрабатывает первым и умирает, потому ставим ему:
Essential: falseОн должен выполнить какую-то команду(-ы), запускаем следующим способом:
Command:
- sh
- '-c'
- !Sub |
cd /home/my/app \
&& ./setup.py migrate --noinput \
&& ./setup.py rebuild_index --noinput
После него должен стартовать основной контейнер, чтобы реализовать такую последовательность (сначала - init, а уже потому главный), добавляем зависимость от первого:
Links:
- !Ref StdNameInit
И ставим главному контейнеру:
Essential: trueТак можно регулировать последовательность запуска и инициализировать что-то перед работой основного сервиса.
#CloudFormation #templates #examples
GitHub
cloudformation-examples/ecs/task-with-init-container.yaml at master · applerom/cloudformation-examples
AWS CloudFormation code examples. Contribute to applerom/cloudformation-examples development by creating an account on GitHub.
Кому нужны подробности: bad gateway также переводится как "плохой роутер" (это он слева на картинке).
Также напомню, что спросить, если что (подробности), можно в чате канала (да, такой есть - ссылка лежит в описании канала или кнопка комментировать под постом).
В частности, там недавно был отличный вопрос по подробностям работы SSM в ABAC схеме и другие вещи, которые неудобно спамить сюда.
Также напомню, что спросить, если что (подробности), можно в чате канала (да, такой есть - ссылка лежит в описании канала или кнопка комментировать под постом).
В частности, там недавно был отличный вопрос по подробностям работы SSM в ABAC схеме и другие вещи, которые неудобно спамить сюда.
EBS Volumes + Multi-Attach
Теперь на смешной вопрос новичков, а можно ли примонтировать один EBS диск к двум инстансам, вам придётся сдержать свой сарказм и ответить - да, можно:
https://aws.amazon.com/blogs/aws/new-multi-attach-for-provisioned-iops-io1-amazon-ebs-volumes/
Nitro-based системы продолжают удивлять и даже, вот, как теперь, обескураживать. Действительно, теперь можно элементарно подцепить один диск к нескольким инстансам. Они все смогут туда и писать и читать как на обычный диск. Просто сказка!
Подводные камни EBS io1 Volumes Multi-Attach
Ох, их есть, всё не просто так во всех смыслах.
Цена
Ну, для начала, собственно, это лишь для
EFS Killer? (спойлер - нет)
Далее - консистентность. Возможность монтировать к нескольким инстансам теперь есть, но кто позаботится о том, чтобы несколько пишущих одновременно на такой диск не потёрли сделанное соседом? Ответ - вы, ваше приложение. Вам дали возможность, а вот, чтобы было всё пучком - давайте, уж, сами. А если нет - используйте EFS, где за вас такое (с)делает Амазон.
В том числе поэтому выход данной фичи не заменит (и не убьёт) EFS, которой мы пользовались раньше для реализации подобного функционала. Опять же, EFS это MultiAZ, а диск, понятно, находится в какой-то конкретной одной подзоне. И, наконец, EFS масштабируется по объёму, что не сделает EBS Multi-Attach. Так что, нет, EFS никуда не денется. Хотя, конечно, для простых случаев, его можно будет заменить.
Файловая система
В примере по ссылке выше лихо показывается, как такое делается на файловой системе XFS, которая ничего не знает про кластерность и не заботится о подобных вещах. Если вы озаботитесь - тогда это OCFS или GFS2.
Способы применения
Однако, если мы подцепим диск и настроим, чтобы каждый инстанс писал в свою директорию (например, дружно складывая на такой логи с именем хоста в пути) - получим простую (с той же XFS) и при этом рабочую конструкцию.
Или когда один пишет, а все остальные лишь читают. И куча других вариантов, где, собственно, и получается, что Вы забодитесь о консистентности (учитывая возможные проблемы чтения/записи, а потому избегая их возникновения способом взаимодействия).
Сходу видятся способы применения для Warm DR - это когда основная система трудится, а другая стоит под парами и готова сразу же подхватить знамя, как только упадёт главная (и для этого к ней примонтирован тот же диск, с которым она не работает, пока работает-жива основная).
Опять же кубернетовское общество сейчас возрадуется и наверняка что-то понапридумывает для задействования в качестве Persistent Storage. В общем, применений Multi-Attach for Provisioned IOPS (io1) EBS Volumes наверняка будет не мало - поделитесь своими вариантами в комментариях.
В любом случае - отличная фича, нужно осваивать.
#EBS
Теперь на смешной вопрос новичков, а можно ли примонтировать один EBS диск к двум инстансам, вам придётся сдержать свой сарказм и ответить - да, можно:
https://aws.amazon.com/blogs/aws/new-multi-attach-for-provisioned-iops-io1-amazon-ebs-volumes/
Nitro-based системы продолжают удивлять и даже, вот, как теперь, обескураживать. Действительно, теперь можно элементарно подцепить один диск к нескольким инстансам. Они все смогут туда и писать и читать как на обычный диск. Просто сказка!
Подводные камни EBS io1 Volumes Multi-Attach
Ох, их есть, всё не просто так во всех смыслах.
Цена
Ну, для начала, собственно, это лишь для
io1 (Provisioned IOPS дисков), т.е., как минимум, банально дороже (по сравнению с gp2 General Purpose SSD). Как минимум на треть для больших объёмов и в разы для маленьких. Но тут понятно и каждый сможет выбрать и посчитать.EFS Killer? (спойлер - нет)
Далее - консистентность. Возможность монтировать к нескольким инстансам теперь есть, но кто позаботится о том, чтобы несколько пишущих одновременно на такой диск не потёрли сделанное соседом? Ответ - вы, ваше приложение. Вам дали возможность, а вот, чтобы было всё пучком - давайте, уж, сами. А если нет - используйте EFS, где за вас такое (с)делает Амазон.
В том числе поэтому выход данной фичи не заменит (и не убьёт) EFS, которой мы пользовались раньше для реализации подобного функционала. Опять же, EFS это MultiAZ, а диск, понятно, находится в какой-то конкретной одной подзоне. И, наконец, EFS масштабируется по объёму, что не сделает EBS Multi-Attach. Так что, нет, EFS никуда не денется. Хотя, конечно, для простых случаев, его можно будет заменить.
Файловая система
В примере по ссылке выше лихо показывается, как такое делается на файловой системе XFS, которая ничего не знает про кластерность и не заботится о подобных вещах. Если вы озаботитесь - тогда это OCFS или GFS2.
Способы применения
Однако, если мы подцепим диск и настроим, чтобы каждый инстанс писал в свою директорию (например, дружно складывая на такой логи с именем хоста в пути) - получим простую (с той же XFS) и при этом рабочую конструкцию.
Или когда один пишет, а все остальные лишь читают. И куча других вариантов, где, собственно, и получается, что Вы забодитесь о консистентности (учитывая возможные проблемы чтения/записи, а потому избегая их возникновения способом взаимодействия).
Сходу видятся способы применения для Warm DR - это когда основная система трудится, а другая стоит под парами и готова сразу же подхватить знамя, как только упадёт главная (и для этого к ней примонтирован тот же диск, с которым она не работает, пока работает-жива основная).
Опять же кубернетовское общество сейчас возрадуется и наверняка что-то понапридумывает для задействования в качестве Persistent Storage. В общем, применений Multi-Attach for Provisioned IOPS (io1) EBS Volumes наверняка будет не мало - поделитесь своими вариантами в комментариях.
В любом случае - отличная фича, нужно осваивать.
#EBS
Amazon
New – Multi-Attach for Provisioned IOPS (io1) Amazon EBS Volumes | Amazon Web Services
Starting today, customers running Linux on Amazon Elastic Compute Cloud (Amazon EC2) can take advantage of new support for attaching Provisioned IOPS (io1) Amazon Elastic Block Store (EBS) volumes to multiple EC2 instances. Each EBS volume, when configured…