Методы прекращения работы спотовых инстансов: подробное руководство

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

  1. Использование интерфейса командной строки (CLI) AWS.
    Интерфейс командной строки AWS обеспечивает простой способ завершения спотовых экземпляров. Вы можете использовать команду aws ec2 terminate-instancesи указать идентификаторы экземпляров для завершения. Вот пример:
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0
  1. AWS SDK.
    Если вы предпочитаете использовать какой-либо язык программирования, в комплекты разработки программного обеспечения AWS (SDK) входят библиотеки для разных языков программирования. Вы можете использовать SDK для программного прекращения работы спотовых экземпляров. Вот пример использования AWS SDK для Python (Boto3):
import boto3
ec2_client = boto3.client('ec2')
response = ec2_client.terminate_instances(
    InstanceIds=['i-1234567890abcdef0']
)
  1. Консоль управления AWS.
    Консоль управления AWS предлагает веб-интерфейс пользователя для управления экземплярами EC2. Чтобы завершить работу спотовых экземпляров с помощью консоли, выполните следующие действия:

    • Перейдите на панель управления EC2.
    • Выберите спотовые экземпляры, которые хотите прекратить.
    • Нажмите кнопку «Действия» и выберите «Состояние экземпляра» >«Завершить».
  2. Автоматическое масштабирование.
    Если ваши спотовые инстансы входят в группу автоматического масштабирования, вы можете прекратить их действие, настроив желаемую мощность или завершив всю группу автоматического масштабирования. Это можно сделать с помощью AWS CLI или SDK. Вот пример использования AWS CLI:

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --desired-capacity 0
  1. AWS Lambda:
    Вы можете использовать AWS Lambda для автоматического прекращения работы спотовых инстансов на основе определенных триггеров или событий. Например, вы можете создать функцию Lambda, запускаемую событиями CloudWatch для завершения экземпляров в определенное время или при выполнении определенного условия.
import boto3
ec2_client = boto3.client('ec2')
def lambda_handler(event, context):
    instance_id = event['detail']['instance-id']
    response = ec2_client.terminate_instances(
        InstanceIds=[instance_id]
    )

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