0
우리의 EC2 인스턴스에서 DNS가 손상된 경우에도이 머신이 100 %의 시간 동안 EC2 인스턴스인지 여부를 알려주는 Ruby 함수가 필요합니다. 우리가 사용하고내 컴퓨터가 EC2 인스턴스인지 여부를 어떻게 알 수 있습니까?
기능이었다 : 그 제외
def is_ec2?
require 'socket'
Socket::gethostbyname('instance-data.ec2.internal.')
true
rescue
false
end
는 DNS가 파산 할 때, 모든 EC2 기계는 그것이 EC2 기계되지 않았 음을 생각하고, 생산 기계가 삭제 등의 나쁜 일이 일어난 그 자신의 SSL 인증서에서와 파이썬에서
, 우리가 사용하고 .. 지역 develepment 상자의 인증서 표시로 대체 :@memoized
def is_ec2():
# This is a 99% check to avoid the need to wait for the timeout.
# Our VM's have this file. Our dev VM's don't.
if not os.path.isfile('/sys/hypervisor/uuid'):
return False
try:
result = boto.utils.get_instance_metadata()
if result == {}:
return False
return True
except Exception:
return False
,468,222을 사용하는 것을 제외하고는, boto.utils.get_instance_metadata()
대신, 그게 효과가 있습니까?
왜 아마존의 수영장 안에 IP가 있는지 확인하지 않아도 될까요? – taro
작동하지 않습니다. 우리는 로컬 네트워크를 통제하지 않으며 우리의 로컬 박스에있는 아마존의 IP 공간에 거의 존재하지 않습니다. 그래도 좋은 생각. –