Aws:Lambda:SockConnect
                LambdaからEC2への疎通確認
EC2の生存監視や、経路監視をしたい時にLambdaを監視元とできないか?と考えてみました。
監視元の可用性を考えてLambdaありかなって思ったんです。
結論:TCPのコネクションで確認はできるが、Ping監視はできない。
・Pingが打てない理由は、簡単に言うと実行環境(amazonlinux2)でLambdaの権限はrootでなく、OSで必要な権限が不足しているためOS側でPermissonErrorとなる。
・こちらのようにICMPパケットを作成する場合も同様で、RAWソケットの作成にはroot権限が必要です。
Lambda関数サンプル
ポイント
コード
import socket
host = "10.0.0.10"
port = 22
def lambda_handler(event, context):
    socket.setdefaulttimeout(0.1)
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    result = sock.connect_ex((host,port))
    sock.close()
    if result == 0:
        print("Port", port, "is open")
    else:
        print("Port", port, "is not open")
if __name__ == '__main__':
    lambda_handler("event", "context")
Aws/Lambda/SockConnect.txt · 最終更新:  by admin
                
                