Примеры использования AWS SDK для EC2, EMR, Redshift, RDS - PullRequest
0 голосов
/ 01 августа 2020

Я знаком с AWS SDK (Python / Java) и необходим в них для множества сервисов, таких как S3, DDB, KMS и т. Д. c.

* 1002 варианты использования AWS Java SDK, например, для программного выделения экземпляра EC2, кластера EMR, кластера Redshift или экземпляра RDS или любого ресурса, требующего настройки инфраструктуры / кластера?

Если AWS консоль не подходит, а программный доступ c - это все, что у нас есть, то не всегда ли мы в конечном итоге используем AWS CLI для соответствующих служб или CloudFormation или Terraform в этом отношении?

Ответы [ 2 ]

2 голосов
/ 01 августа 2020

Как правило, это лучшая практика для управления развертыванием любой инфраструктуры / службы с использованием инфраструктуры в качестве кодовых решений, таких как CloudFormation , CDK (который генерирует стеки CloudFormation под капотом) или Terraform .

Хотя вы можете использовать SDK для создания этих сервисов (и создать решение, аналогичное решениям выше), вы будете создавать множество функций, которые уже были созданы другими сервисами, которые предоставит вам больше прав, чтобы исправить это, если вы хотите поддерживать другой сервис et c.

SDK просто предоставляют каждое AWS API-взаимодействие программным c способом, даже под капотом CloudFormation и Terraform, вероятно, будет использовать SDK для программного создания ресурсов (хотя я предполагаю), но затем добавит дополнительные функции, такие как управление состоянием и обнаружение дрейфа поверх этого.

Я видел только создаваемые службы через SDK, когда эта служба недоступен в выбранном инструменте, и даже в этом случае он обычно будет заключен в этот инструмент (например, пользовательские ресурсы для CloudFormation).

В итоге, да, вы можете использовать SDK для сгенерировать эти , но , если нет специального c сценария использования SDK, я бы посоветовал использовать инструмент, который уже управляет этим, чтобы вы могли больше сосредоточиться на своей инфраструктуре / приложениях.

1 голос
/ 03 августа 2020

CLI AWS построен с использованием AWS SDK для Python. Terraform построен с использованием AWS SDK для GoLang. Возможно, вы захотите придерживаться инструментов более высокого уровня «инфраструктура как код», но эти инструменты не существовали бы без SDK, и если вы хотите создать такой инструмент, вы, скорее всего, построите его поверх одного из SDK.

Есть также довольно много вариантов использования, которые я видел здесь, в StackOverflow, для выполнения автоматизации инфраструктуры с помощью AWS Lambda, например, периодическая остановка и запуск экземпляров RDS, где используется один из AWS SDK в коде Lambda, вероятно, будет намного проще, чем пытаться заставить Terraform работать внутри функции Lambda.

...