본문 바로가기
Tools/etc

AWS Lambda Python Socket connect 안될 경우 해결방법

by wakestand 2023. 3. 15.
반응형
import socket

def connect_tcp(event, context):
  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  sock.settimeout(8)
  hostname = "www.amazon.com"
  port = 443
  server_address = (hostname, port) # Server address and port
  try:
    IPAddr = socket.gethostbyname(hostname)
    print("Hostname: " + hostname)
    print("Host IP:" + IPAddr)
    print("Attempting to connect ..")
    sock.connect(server_address)
    sock.shutdown(socket.SHUT_RDWR)
    print("connected")
  except Exception as e:
    print("-- Error --")
    print(e)
  finally:
    sock.close()

 

위 코드는 AWS 에서 Lamdba를 사용하여

socket connect 사용 샘플 예제인데

위 코드는 잘 동작하지만

hostname과 port를 내 EC2 서버로 변경할 경우

 

“errorMessage”: “~ Task timed out after 60.06 seconds”

 

timeout 에러가 떨어지는 것이 보이는데

보안 그룹에서 설정 변경을 해줘야 한다

 

먼저 EC2로 들어온 뒤

왼쪽의 보안 그룹을 누르고 접속할 인스턴스를 선택한 후

하단 인바운드 규칙 탭을 누르고

인바운드 규칙 편집을 눌러주자

 

이후 소스 부분의 주소를 0.0.0.0/0

으로 변경하고 다시 socket.connect를 수행해 보면

연결이 잘 되는것이 보인다

반응형

댓글