Спотовые инстансы — это экономичный вариант выполнения рабочих нагрузок в облаке, обеспечивающий значительную экономию по сравнению с инстансами по требованию. Однако могут возникнуть ситуации, когда вам потребуется преждевременно завершить работу спотовых инстансов. В этой статье мы рассмотрим различные методы завершения спотовых экземпляров, а также приведем примеры кода, которые помогут вам эффективно управлять инфраструктурой.
- Использование интерфейса командной строки (CLI) AWS.
Интерфейс командной строки AWS обеспечивает простой способ завершения спотовых экземпляров. Вы можете использовать командуaws ec2 terminate-instancesи указать идентификаторы экземпляров для завершения. Вот пример:
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0
- AWS SDK.
Если вы предпочитаете использовать какой-либо язык программирования, в комплекты разработки программного обеспечения AWS (SDK) входят библиотеки для разных языков программирования. Вы можете использовать SDK для программного прекращения работы спотовых экземпляров. Вот пример использования AWS SDK для Python (Boto3):
import boto3
ec2_client = boto3.client('ec2')
response = ec2_client.terminate_instances(
InstanceIds=['i-1234567890abcdef0']
)
-
Консоль управления AWS.
Консоль управления AWS предлагает веб-интерфейс пользователя для управления экземплярами EC2. Чтобы завершить работу спотовых экземпляров с помощью консоли, выполните следующие действия:- Перейдите на панель управления EC2.
- Выберите спотовые экземпляры, которые хотите прекратить.
- Нажмите кнопку «Действия» и выберите «Состояние экземпляра» >«Завершить».
-
Автоматическое масштабирование.
Если ваши спотовые инстансы входят в группу автоматического масштабирования, вы можете прекратить их действие, настроив желаемую мощность или завершив всю группу автоматического масштабирования. Это можно сделать с помощью AWS CLI или SDK. Вот пример использования AWS CLI:
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --desired-capacity 0
- 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. Выберите метод, который лучше всего соответствует вашим требованиям, и автоматизируйте процесс расторжения, чтобы эффективно оптимизировать затраты.