0

아주 간단한 질문이지만 문제를 언급 한 사람이나 문제를 언급 한 사람을 찾을 수 없습니다. 기본적으로 환경 변수를 상자에 연결하여 원격 ec2 상자에 정보량을 조금 추가하려고합니다.boto로 ec2 인스턴스에 환경 변수 추가하기

tags의 개념에 대해 언급 한 적이 있지만 인스턴스 내에서 순식간에 확인하고 액세스 할 수있는 것을 찾고 있는데, tags에서 해당 기능을 제공하는지 여부는 확실하지 않습니다.

이러한 환경 변수를 추가하는 인터페이스는 인스턴스가 인스턴스화 된 후 외부에서 액세스 할 수없는 것이 가장 이상적입니다.

안전한 데이터베이스를 설정하여 비슷한 효과를 얻을 수 있다는 것을 알았지 만 인스턴스에 메타 데이터 몇 개를 추가하려고 시도한 것으로 지나치게 복잡합니다.

유인물을 찾고 있지는 않지만이 문서에 대한 링크는 많은 도움이 될 것입니다. 현재 boto (아래 코드)을 사용하고 있으므로 boto 프레임 워크에 맞는 것이 이상적이지만 아마존의 REST API로 드롭해야한다면 세상 끝이 아닐 것입니다.

def create_instances(connection, type, number, **kwargs): 
    kwargs.update({ 
     'min_count': number, 
     'max_count': number 
    }) 
    return connection.run_instances(**kwargs).instances # maybe if kwargs had an environment variable? 

답변

2

은 반드시이 출시 후 접근 할 수 없었던 당신의 요구 사항을 충족 할 그들 모두 몇 아마존 EC2 인스턴스에 정보를 전달하는 방법,하지만이 있습니다.

사용자 데이터

아마존 EC2 인스턴스를 시작, 사용자 데이터를 지정할 수 있습니다. 사용자 데이터의 내용은 URL에 액세스하여 인스턴스 내에서 액세스 :

http://169.254.169.254/latest/user-data/ 

에 (인스턴스 만 자체에서 하이퍼 바이저에 의해 차단되고, 볼)이 URL을 조회 할 수있는 인스턴스에 코드를 정보에 액세스하십시오.

사용자 데이터의 또 다른 용도는 execute as a script입니다. 스크립트는 코드가 액세스 할 수있는 환경 변수를 설정할 수 있습니다.

그러나 사용자 데이터는 EC2 관리 콘솔 또는 DescribeInstanceAttribute 호출을 통해 볼 수 있으므로 보안 요구 사항을 충족하지 못할 수 있습니다.

태그

또 다른 옵션은 태그를 사용하는 것입니다. EC2 인스턴스 (또는 AWS 내의 다른 객체)와 연결된 이름 - 값 쌍입니다. 태그는 'DescribeTags'에 대한 호출을 통해 검색 할 수 있지만, boto에는 액세스 할 수있는 몇 가지 단축키가 있습니다.

태그는 정보를 인스턴스와 연결하는 훌륭한 방법이며, 태그를 사용하여 특정 인스턴스 (예 : 환경, 프로젝트, 소유자 별)를 식별 할 수도 있습니다.

그러나 태그에 저장된 값은 EC2 관리 콘솔 및 API 호출을 통해 볼 수 있습니다.

다른 옵션 데이터베이스에서 값을 가져 오는

  • (그러나 데이터베이스에 대해 인증하는 방법의 문제가)는 AMI
  • 저장 데이터를 (하지만 아무튼
  • 데이터를 에 저장하고 Amazon S3에 데이터를 저장하고 해당 인스턴스에 할당 된 IAM 역할을 사용합니다. 인스턴스 (다시, 그러나, 보안 문제) 코드 저장소에서 데이터를 가져 오는 S3
  • 에서 데이터를 검색하는 자격 증명을 제공합니다
+0

정말 고마워요 존! 나는 사용자 데이터 옵션에 대해 알지 못했지만 여기서 가장 좋은 방법이라고 생각합니다. 몇 가지 해킹이있을 것입니다.하지만 저와 함께 작업 할 수있을 정도로 충분하다고 생각합니다. 정말 고마워! –

관련 문제