Tools/etc
AWS Lambda Python Socket connect 안될 경우 해결방법
wakestand
2023. 3. 15. 00:28
반응형
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를 수행해 보면
연결이 잘 되는것이 보인다
반응형