1

Cmdlet:Могу ли я использовать AWS Tools for Powershell для создания нового экземпляра EC2 и установки частного IP-адреса?

New-EC2Instance -ImageId ami-abcdefg123 -MinCount 1 -MaxCount 1 -KeyName Keypair ` 
       -SecurityGroupId sg-abcdefg -InstanceType m1.small ` 
       -SubnetId subnet-01bd1e76 

Как я могу изменить, чтобы добавить частный IP-адрес в этом случае? Кроме того, я не хочу присвоить ему публичный IP-адрес.

+0

Этот вопрос, как представляется, не по теме, поскольку речь идет не о программировании или развития. См. [Какие темы можно задать здесь] (http://stackoverflow.com/help/on-topic) в Справочном центре. Возможно, лучше сказать [Суперпользователь] (http://superuser.com/) или [Web Stack Exchange] (http://webapps.stackexchange.com/). – jww

+0

Первоначальное форматирование вопроса, возможно, сделало его неоднозначным, что это по теме, но пользователь просит помощи с AWS Tools For PowerShell. Это [программный инструмент, обычно используемый программистами] (http://stackoverflow.com/help/on-topic), и это конкретное использование вряд ли появится вне сценария. Это не похоже на просьбу об оказании помощи библиотеке или SDK на других языках. Я отредактировал вопрос, который, мы надеемся, вычеркнет это различие. –

ответ

0

При запуске экземпляра вам всегда должен быть назначен частный IP-адрес. В EC2 classic это назначается из диапазона EC2-Classic при каждом запуске вашего экземпляра. В VPC этот адрес является статическим (не сбрасывается при остановке/запуске) и поступает из диапазона адресов вашей подсети.

Вы можете отключить общественное назначение IP, но знать о настройках по умолчанию для присвоения общественных IP-адресов:

EC2-Classic: Ваш экземпляр получает публичный IP-адрес. Это поведение изменить нельзя.

Подсеть по умолчанию: ваш экземпляр получает общедоступный IP-адрес по умолчанию, , если вы не указали иначе во время запуска или не изменили атрибут общего IP-адреса подсети .

Подсети Nondefault: ваш экземпляр не получает общедоступный IP-адрес по умолчанию, если вы не указали иначе во время запуска или не изменили атрибут общего IP-адреса подсети.

Поскольку вы указали SubnetId в вашем New-EC2Instance я могу с уверенностью предположить, что вы работаете в VPC, и так как вы задаете этот вопрос, я могу предположить, что VPC сконфигурирован, чтобы установить IP-адрес общественности по умолчанию.

В этом случае переключение назначения общедоступного IP-адреса так же просто, как указание параметра -AssociatePublicIPNew-EC2Instance.

Пример 1: Просто переключите прочь на EC2 Launch

New-EC2Instance -ImageId ami-abcdefg123 -MinCount 1 -MaxCount 1 -KeyName Keypair ` 
       -SecurityGroupId sg-abcdefg -InstanceType m1.small ` 
       -SubnetId subnet-1a2b3c4d -AssociatePublicIP $false 

Пример 2: Отключить по умолчанию публичный IP на всех новых случаев в вашей подсети. Используйте -Force, указав это в скрипте, чтобы пропустить интерактивное подтверждение.

Edit-EC2SubnetAttribute -MapPublicIpOnLaunch $false -SubnetId subnet-1a2b3c4d -Force 

Документация:

+0

Спасибо за подробное объяснение. Это помогает мне изучать powershell. – minisch

+0

@minisch Нет проблем! Если это решит ваш вопрос, вы можете нажать галочку слева от этого ответа, чтобы пометить ее как «принятую», что позволит другим пользователям видеть, что это было разрешено без проверки комментариев. –