自分用のメモです。
boto3はpythonでAWSを操作するためのライブラリです。
AWSの公式SDKなので安心して利用できます。
##目的
・ALBでオンプレ環境のWEBサーバをあえてAct-Stbの構成としたい。
##環境
・AWSとオンプレ環境をDirectConnectで接続。(VGW
・ALBでオンプレ環境のWEBサーバを負荷分散。
・TargetGroupにオンプレのWEBサーバをIPで登録。
・CloudWatchで該当TargetGroupのHealthyHostCountが0になったら
Alartを発行しSNSで通知。
・SNSでLambdaを実行するトピックを作成。
・Lambdaで関数を作成し、以下のコードを登録。
ターゲットグループの入れ替えをしています。
・boto3の公式リファレンスのリンク
いろいろ載ってるので参考に。
リンク
##サンプルコード
import boto3
def lambda_handler(event, context):
client = boto3.client('elbv2')
#ターゲットグループへスタンバイのサーバを登録します。
response = client.register_targets(
TargetGroupArn='対象のターゲットグループのリソース番号を記載',
Targets=[
{
'Id': '172.16.1.1',
'Port': 80,
'AvailabilityZone': 'all'
},
]
)
#ターゲットグループからアクティブのサーバを削除します。
response = client.deregister_targets(
TargetGroupArn='対象のターゲットグループのリソース番号を記載',
Targets=[
{
'Id': '172.16.1.2',
'Port': 80,
'AvailabilityZone': 'all'
},
]
)
##最後に
今回はTargetGroupのターゲットの入れ替えによって実現しましたが、
Act-Stb構成としたい場合は、以下の方法でも検討の余地があります。
・HealthCheckのステータスで切り替え。
・リスナールールで切り替え。