Amazon EC2 위에 분산 시스템을 구축 할 계획입니다.Amazon EC2의 분산 시스템
각 컴퓨터의 네트워크 IP 주소 (예 : 192.xxx.x.x)를 얻으려면 어떻게해야합니까?
이렇게하면 새 노드가 시스템에 들어가면 다른 노드가 통신 할 수있는 IP 주소 목록을 제공합니다.
감사합니다.
Amazon EC2 위에 분산 시스템을 구축 할 계획입니다.Amazon EC2의 분산 시스템
각 컴퓨터의 네트워크 IP 주소 (예 : 192.xxx.x.x)를 얻으려면 어떻게해야합니까?
이렇게하면 새 노드가 시스템에 들어가면 다른 노드가 통신 할 수있는 IP 주소 목록을 제공합니다.
감사합니다.
"노드가 시스템에 들어가면"나는 그것이 어떤 포트에 연결된다고 가정합니다. 그리고 그것은 바로 IP를 얻는 곳입니다. 예 : Java :
Socket socket = serverSocket.accept();
InetAddress addr = socket.getInetAddress()
System.out.println("new host with IP " + addr.getHostAddress() + " entered the system");
또는 시스템의 FQDN을 확인할 수 있습니다.
# bash
nslookup `hostname --fqdn`
# groovy
groovy -e 'println java.net.InetAddress.getLocalHost().getHostAddress()'
FQDN은 호스트 구성에 따라 다르지만 127.0.0.1로 해결 될 수 있습니다. 이는별로 도움이되지 않습니다.
EC2에 특정의 세 번째 옵션은 또한 AWS SDK 또는 EC2 CLI 사용할 수 있습니다으로 : 해결 된 경우는 EC2 내에서 개인 IP와 해결 공공 DNS 이름의 목록을 반환
# using CLI
ec2-describe-instances | grep INSTANCE | cut -f4
을 (출력을 각각 EC2 인스턴스 또는 EC2 외부의 xargs -n1 nslookup
으로 파이핑하십시오. 관심있는 특수 AMI에서 시작된 인스턴스 만 표시하도록 목록을 필터링 할 수 있습니다.
노드를 구성하려면 chef 또는 puppet과 같은 프레임 워크를 사용하십시오. 이렇게하면 시작할 때 인스턴스를 부트 스트랩 할 수 있습니다.
Amazon EC2에서 작동하는 방식은 각 인스턴스에 user-data을 전달할 수 있다는 것입니다. 일반적으로 명령을 실행하는 일종의 스크립트입니다. 부트 스트래핑 용.
자신이 장애물의 너무 많은이를 실행하는, 내가 같은 서비스 권하고 싶습니다 경우 (도 opensource)
을HTH
이렇게 할 수있는 프로그램을 작성할 수는 있지만 이미 존재하는 도구를 찾을 수 있습니다. 나는 http://serverfault.com/에 묻는 것을 시도 할 것입니다 – sje397