Назад | Перейти на главную страницу

Отметьте EC2 как промежуточную или производственную

Я новичок в AWS и хотел бы узнать, как это можно сделать:

У меня есть приложение на Python с отдельными наборами конфигурации для разработки, постановки и производства.

В коде я в настоящее время идентифицирую среду либо с помощью переменной среды, либо с помощью файла, установленного в каталоге (который, очевидно, не является частью Ste SCM)

Как пометить экземпляр EC2 как промежуточный, чтобы мое приложение Python могло его обнаружить и применить правильный набор конфигурации?

Есть как минимум пара способов:

  • Самый простой в использовании теги. Иметь тег с названием "среда" и значением разработка, постановка или производство.
  • Создайте отдельные подсети, VPC или учетные записи для каждой среды. Это дает больше изоляции и может снизить вероятность работы в неправильной среде.

Ответ Тима самый лучший. Лучше всего использовать отдельные VPC. Используя лямбда-выражение, вы можете запланировать отключения на ночь и выходные, чтобы выключать все серверы DEV / UAT, когда они не используются.

Разделение сетей безопаснее от случайного изменения кода в prod.

Обычно это делается с помощью instance tags

Экземпляр EC2 может иметь любое количество тегов в формате ключ: значение. Они часто широко используются, чтобы помочь дальнейшим процессам идентифицировать роли / типы / среды экземпляра / и т. Д.

Некоторые примеры:

sometag:somevalue
env:prod
type:webserver
backup:yes

Поскольку вы упомянули Python, я предполагаю, что вы используете BOTO. Проверьте документацию по бото, вы даже можете фильтровать по определенным тегам: https://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.describe_instances

На этой странице документа отмечено:

тег: ключ = * значение * - Сочетание ключа и значения тега, назначенного ресурсу. Укажите ключ тега в имени фильтра и значение тега в значении фильтра. Например, для тега Purpose = X укажите tag: Purpose для имени фильтра и X для значения фильтра.

Продолжая пример из документации:

Filters=[
    {
        'Name': 'tag:env',
        'Values': [
            'prod'
        ]
    },
],

Помимо BOTO, многие другие утилиты взаимодействия с AWS часто имеют аналогичный фильтр или систему запросов, основанную на тегах экземпляров. Как Ansible и т. Д.

Скриншот экземпляра теги панель в консоли EC2: