개인 IP 주소를 통해 ec2 인스턴스를 호출하는 람다를 얻으려면 어떻게 해야 합니까?
간단히 말해서, 마인크래프트 서버 동료가 AWS 인스턴스를 시작 및 중지하고 서버에 아무도 없을 때 자동 종료를 처리할 수 있는 디스코드 봇을 만듭니다.
Lambda 함수는 시작, 중지, 현재 자동 할당된 공용 IP 주소 가져오기 및 Minecraft의 쿼리 프로토콜(UDP 포트 25565)을 통해 서버가 실행 중인지 확인하는 작업을 처리합니다.
저는 이 작업을 가능한 한 비용 효율적으로 수행하려고 노력하고 있으며 탄력적 IP 주소를 할당하지 않고도 이 작업을 수행할 수 있는지 확인하고 싶습니다. 시작해야 할 마인크래프트 서버가 하나 이상 있기 때문입니다. 그리고 해당 서버가 탄력적 IP 주소로 오프라인 상태이거나 탄력적 IP를 1개 이상 사용하는 경우에는 요금이 부과됩니다.
동일한 서버가 탄력적 IP 주소를 사용할 때 동일한 기능을 테스트했는데 예상대로 작동했습니다. 이제 개인 IP 주소로 동일한 작업을 수행할 수 있는지 알고 싶습니다.
답변1
아직 연결하지 않은 경우 EC2 인스턴스가 실행 중인 VPC에 Lambda를 연결해야 합니다. https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html
기본적으로 Lambda 함수는 퍼블릭 인터넷의 리소스와만 통신할 수 있으므로 EC2 인스턴스의 퍼블릭 IP, AWS API 등은
여기에서 EC2 인스턴스에 할당된 보안 그룹(SG)이 Lambda 함수에 할당된 SG로부터 트래픽을 수신할 수 있는지 확인해야 합니다. 이는 UDP 포트 25565 또는 필요한 것입니다.
또한 Lambda 함수에 할당된 SG가 다시 UDP 포트 2265 또는 필요한 모든 항목에서 EC2 인스턴스에 할당된 SG에 대한 아웃바운드 연결을 만들 수 있는지 확인해야 합니다. 아웃바운드 정책은 일반적으로 광범위하게 개방되어 있으므로 이는 조금 더 쉽습니다.
테스트를 위해 Lambda 함수에 대한 SG를 다른 EC2 인스턴스에 할당할 수 있습니다. 동일한 서브넷에서 Lambda 함수의 일부를 재생하는 인스턴스를 배치하면 설정을 추가로 검증하는 데 도움이 됩니다.