Как отключить Amazon VPN с помощью Lambda

Я хочу создать соединение Amazon DirectConnect в качестве VPN для передачи данных из сети моей компании в экземпляр RDS. Связь не дешевая, и мне, конечно, не нужно, чтобы она была открыта все время. Наверное, достаточно всего 10 минут каждый день. Есть ли способ запланировать событие подключения/отключения VPN-подключения с помощью функции Lambda так же, как запуск/остановка экземпляра EC2 или RDS, как показано ниже, с использованием библиотеки Python Boto3:

def handler(event, context):

    ec2 = boto3.client('ec2', region_name=region)

    ec2.start_instances(InstanceIds=instances)

Хотя Boto3 поддерживает DirectConnect, похоже, любые методы, которые включают и выключают соединение. Есть ли способ контролировать соединение?


person ddd    schedule 23.09.2017    source источник
comment
Интуиция подсказывает, что играть в такую ​​систему невозможно. Кроме того... Direct Connect не является VPN.   -  person Michael - sqlbot    schedule 23.09.2017
comment
Даже если вы избегаете тарифа 30 центов в час (или того, что вы платите за прямое подключение), это ничтожно мало по сравнению с любыми затратами, которые вы платите за оптоволоконную линию, соединяющую ваш центр обработки данных с AWS. Ваша компания действительно не может позволить себе 7 долларов в день?   -  person John Rotenstein    schedule 23.09.2017


Ответы (1)


Код обработчика будет выглядеть так

def handler(event, context):
    client = boto3.client('directconnect')
    response = client.delete_connection(
        connectionId='string'
     )

Эта лямбда просто удалит соединение, которое оплачивается по часам работы порта и передаче данных.

Вы можете создать лямбду и автоматизировать с помощью триггера создание и удаление соединения, если у вас есть определенное временное окно.

Документация доступна здесь:

http://boto3.readthedocs.io/en/latest/reference/services/directconnect.html#DirectConnect.Client.delete_connection

ИЗМЕНИТЬ 1:

Связывание и отключение LAG для подключения:

http://boto3.readthedocs.io/en/latest/reference/services/directconnect.html#DirectConnect.Client.associate_connection_with_lag

http://boto3.readthedocs.io/en/latest/reference/services/directconnect.html#DirectConnect.Client.disassociate_connection_from_lag

Вам необходимо проверить, не взимается ли плата за связанные порты при удалении всех подключений. Таким образом, вы можете сохранить свой идентификатор соединения.

В качестве альтернативы вы можете сохранить свой идентификатор подключения в качестве ссылки в БД и извлекать оттуда при необходимости.

Надеюсь, поможет.

person Kannaiyan    schedule 23.09.2017
comment
поэтому переподключение будет использовать метод client.create_connection? Я подозреваю, что это создаст новое соединение с новым идентификатором соединения, верно? Если это так, мне нужно перенастроить все, например. виртуальный интерфейс с новым идентификатором соединения. Этот способ, вероятно, не сработает, так как я действительно хочу автоматизировать ежедневное включение/выключение события. - person ddd; 23.09.2017