2014-02-19 1 views
2

ruby aws-sdk docs을 자세히 읽은 후 VPC 내부에서 생성 할 때 공개 IP 주소를 인스턴스와 연결하는 방법을 알지 못합니다. 나는 신축성있는 IP 주소를 관리하고 싶지 않고 단지 좋은 오래된 랜덤 공개 IP를 가지고있다.aws-sdk for ruby. 인스턴스에 공용 IP 주소를 할당하는 방법은 무엇입니까?

instance = ec2.instances.create(
    count: 1, 
    image_id: IMAGE_ID, 
    instance_type: INSTANCE_TYPE, 
    key_name: KEYNAME, 
    subnet_id: SUBNET_ID, 
    security_groups: security_group, 
    user_data: USER_DATA 
) 

누구나 ec2 인스턴스 생성시 공개 주소를 연결하는 가장 간단한 방법을 알고 있습니까?

미리 감사드립니다.

답변

3

http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/EC2/Client/V20131015.html#run_instances-instance_method에서 run_instances 방법 아래 :network_interfaces 옵션에서 :associate_public_ip_address 입력 매개 변수를 사용하여 공용 IP 주소 할당을 지정할 수 있습니다.

참고하시기 바랍니다. 이전 버전의 Ruby SDK를 사용하고 있습니다. AWS SDK CORE을 사용하십시오. AWS는 현재 코어 SDK에 더 많은 시간을 집중하고 있습니다. 위의 AWS SDK CORE의 공용 IP 주소 할당 옵션은 here입니다.

1

다음은 Ruby AWS SDK 버전 2.2를 사용하여 공개 IP 주소로 VPC에서 인스턴스를 시작하는 몇 가지 샘플 코드입니다. 내가 알 수있는 한, 이것은 실제로 공용 IP 주소가있는 인스턴스를 시작하는 데 필요한 최소한의 코드입니다. 물론 my-something이라는 변수는 모두 먼저 설정해야합니다.

require 'aws-sdk' 
@ec2 = Aws::EC2::Resource.new 
@ec2.create_instances(dry_run: false, 
         min_count: 1, 
         max_count: 1, 
         image_id: my-image-id, 
         key_name: my-key-name, 
         network_interfaces: [{device_index: 0, 
              subnet_id: my-subnet-id, 
              groups: [my-security-group-id], 
              delete_on_termination: true, 
              associate_public_ip_address: true}] 
관련 문제