質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Auto Scaling

Auto Scalingは、AmazonEC2のインスタンスを自動で調整することで スケーリングを行うサービスです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

3090閲覧

AWS Auto Scalingで起動するEC2インスタンスにElastic IPを自動的に割り当てたい

asral

総合スコア10

Auto Scaling

Auto Scalingは、AmazonEC2のインスタンスを自動で調整することで スケーリングを行うサービスです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2021/10/14 08:40

前提

Auto Scalingグループ及び起動テンプレートは以下の内容で作成しました。

◆EC2>起動テンプレート>AutoScalingTest
・グループの詳細
希望する容量:2
最小キャパシティ:0
最大キャパシティ:2

・起動テンプレート
EIPtest

◆EC2>起動テンプレート
・起動テンプレートの詳細
起動テンプレート名:EIPtest

・インスタンスの詳細
AMI:windows server 2019

・ネットワークインターフェース
パブリックIPの自動割り当て:有効
※その他は未設定

・高度な詳細
IAMインスタンスプロフィール

json

1{ 2 "Version": "2012-10-17", 3 "Statement": [ 4 { 5 "Action": [ 6 "ec2:DescribeInstances", 7 "ec2:DescribeAddresses", 8 "ec2:AssociateAddress" 9 ], 10 "Effect": "Allow", 11 "Resource": "*" 12 } 13 ] 14}

こちらを参考
auto scalingでElasticIPを自動割り当て

◆Elastic IP
IDを2つ発行

試したこと

以下のサイトのようにIAMロールの作成・Bashスクリプトをユーザーデータに張り付けて起動テンプレートに割り当てを行いましたが、起動したEC2にはElastic IPは関連付けされませんでした。
auto scalingでElasticIPを自動割り当て
Auto Scaling で追加したEC2 インスタンスにEIP を自動で紐づける
起動時に複数のEIPの中から一つを設定する

実現したいこと

上記の構築でAuto Scalingで起動するEC2インスタンスにElastic IPを自動的に割り当てたいのですが、色々とサイトを調べたり設定を変えたりしても出来ませんでした。
よろしくお願いいたします。

因みに「試したこと」の内容はAMIをLinuxに変更なら可能ということでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

WindowsのインスタンスならBashではダメなのではないでしょうか
Windows インスタンスでの起動時のコマンドの実行

EC2Launch v2環境でユーザーデータを扱う方法

投稿2021/10/14 10:13

yu_1985

総合スコア7586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asral

2021/10/14 23:55

返答ありがとうございます。 やはり使えないですか・・・。となると、PowerShell等で自力でどうにかして組むしかないのかもしれませんね。
yu_1985

2021/10/15 04:23

基本は同じ処理を書くだけなのでどうにかして組むというほどのものでもないはずです。 頑張ってやってみてください。
guest

0

自己解決

とりあえず自分が納得できる範囲での解決ができたので記載。
あくまでとりあえず出来ただけなので、間違いやもっとよいのがあれば個人で改修してください。

PowerShell

1<powershell> 2 3#割り当てるEIP 4$array = @("eipalloc-XXXXXXX","eipalloc-YYYYYY") 5 6$Instance_Id = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/instance-id 7 8for ($i=0; $i -lt 1; $i++) 9{ 10# EIPのインスタンスIPアドレスの取得 11$ins_id = (Get-EC2Address -Filter @(@{Name="instance-id";Values=null} ; @{Name="allocation-id";Values=$array[$i]}) | Select-Object InstanceId).InstanceId 12 13If($ins_id -eq $null) 14{ 15Register-EC2Address -InstanceId $Instance_Id -AllocationId $array[$i] 16break 17} 18 19} 20 21# IPアドレスの設定 22 23Register-EC2Address -InstanceId $Instance_Id -AllocationId $eip_alloc_ids 24 25</powershell> 26

EIPのインスタンスIDを取得し、NULL(使用済みでない)だったらarrayのEIPを自身のインスタンスに割り当てます。

投稿2021/10/18 11:05

編集2021/10/18 11:08
asral

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問