趣旨
文字通り、Windows PCから1クリックでEC2インスタンスを起動します。
UserDataを利用して初期セットアップも可能です。
※セキュリティグループとキーペアの存在が前提です。
大まかに言うと、
・AWS CLI for Windows
・batファイル
を利用します。
IAMユーザ作成
Windows PCでAWS CLIを利用する為のIAMユーザを作成します。
EC2を起動する為のユーザなので、EC2のFullAccess権限があれば充分でしょう。
IAM(ユーザ)コンソールで[ユーザを追加]。
ユーザ名(分かりやすいもの)を入力、
[プログラムによるアクセス]を選択して[次のステップ]。
[AmazonEC2FullAccess]にチェックして[次のステップ]。 [ユーザーの作成]でユーザ作成は完了です。
最後に表示されるアクセスキーとシークレットアクセスキー(クリックして表示)をメモします。
AWS CLI for Windowsのインストール、セットアップ
公式ページからインストーラをダウンロードし、インストールします。
インストール後、コマンドプロンプトで下記のようにセットアップを進めます。
さきほどメモしたアクセスキー・シークレットアクセスキーも入力します。
1 2 3 4 5 6 7 |
C:\Users\User><span style="color: #ffff00">aws configure</span> AWS Access Key ID : <span style="color: #ffff00">AKIA****************</span> AWS Secret Access Key : <span style="color: #ffff00">Ptr5************************************</span> Default region name : <span style="color: #ffff00">ap-northeast-1</span> Default output format : <span style="color: #ffff00">(空Enter)</span> C:\Users\User> |
batファイル作成
下記内容をメモ帳などのテキストエディタに貼り付け、
batファイル(末尾.bat)として保存します。
1 2 3 4 5 |
aws ec2 run-instances ^ --image-id=<span style="color: #ffff00">ami-56d4ad31</span> ^ --instance-type=<span style="color: #ffff00">t2.micro</span> ^ --security-group-ids=<span style="color: #ffff00">sg-******</span> ^ --key-name=<span style="color: #ffff00">ec2-keypair</span> |
黄色で示した部分は適宜修正して下さい。
タスクバーに登録
batファイルからショートカットを作成し、
そのショートカットをタスクバーに登録します。
詳細はこちらを参照して下さい。
タスクバーに追加したアイコンをクリックして、
新規EC2が立ち上がれば成功です。
おまけ①Userdataによる初期セットアップ
EC2作成時、Userdataで起動時に各種インストールコマンドを実行させることが可能です。
CLIでUserdataを利用する場合は、下記のようにします。
1 2 3 4 5 6 |
aws ec2 run-instances ^ --image-id=ami-56d4ad31 ^ --instance-type=t2.micro ^ --security-group-ids=sg-******** ^ --key-name=aws-keypair-twice ^ <span style="color: #ffff00">--user-data=file://"C:\Users\User\Desktop\初期セットアップ.txt"</span> |
「初期セットアップ.txt」の内容は、
例えば下記のようなものです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#! /bin/bash # アップデート yum -y update # タイムゾーン設定 sed -i -e "/ZONE=/s/.*/ZONE=\"Asia\/Tokyo\"/g" /etc/sysconfig/clock ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # オートシャッター設定 echo "0 22 * * * root yum -y update && /sbin/shutdown -h now" >> /etc/crontab # アップデート・タイムゾーン変更のため再起動 shutdown -r now |
他にも、各種ミドルウェアのインストール等を記述すれば
テンプレートサーバの1クリック起動が可能になります。
おまけ②タグを指定する
おまけと銘打っていますが、個人的にはここがメインです。
下記内容のbatファイルで、起動時にNameタグ(TagTest)を付与できます。
1 2 3 4 5 6 7 |
<span style="color: #ffff00">FOR /F "usebackq" %%t IN (`</span>aws ec2 run-instances ^ --image-id=ami-56d4ad31 ^ --instance-type=t2.micro ^ <span style="color: #ffff00">--query "Instances[*].InstanceId" ^ --output text`) DO SET INSTANCE_ID=%%t aws ec2 create-tags --resources %INSTANCE_ID% --tags Key=Name,Value=<em>TagTest</em></span> |
describe-instancesコマンドでqueryオプションが使えるのは知られていますが、
実は(?)起動時(run-instances)でも同じオプションが使えます。
下記コマンドを実行すると、作成されたEC2のインスタンスIDだけ出力されるはずです。
1 2 3 4 5 |
aws ec2 run-instances ^ --image-id=ami-56d4ad31 ^ --instance-type=t2.micro ^ --query "Instances[*].InstanceId" ^ --output text |
おまけ②-2:任意のインスタンスNameを指定(入力)する
バッチファイルにNameタグの内容を記述するのではなく、
バッチ起動時にユーザからの入力を読み込むようにしました。
1 2 3 4 5 6 7 8 9 |
<span style="color: #ffff00">set /P INSTANCE_NAME="インスタンスNameを入力してください: "</span> FOR /F "usebackq" %%t IN (`aws ec2 run-instances ^ --image-id=ami-56d4ad31 ^ --instance-type=t2.micro ^ --query "Instances[*].InstanceId" ^ --output text`) DO SET INSTANCE_ID=%%t aws ec2 create-tags --resources %INSTANCE_ID% --tags Key=Name,Value=<span style="color: #ffff00">%INSTANCE_NAME%</span> |
投稿者プロフィール
- 2015年8月入社。弊社はインフラ屋ですが、アプリも作ってみたいです。