毎回ググってる気がするのでメモ。
準備
使用するツール
インストール
$ pip install awscli
プロファイル設定
$ aws configure --profile ${プロファイル名}
アクセスキーID、シークレットアクセスキー、デフォルトリージョン、出力フォーマットを指定。
出力フォーマットはだいたい json
にしてる。 jq
コマンドで使うので。
EC2インスタンス作成
キーペア作成
(必要であれば)
$ aws --profile=${プロファイル名} ec2 create-key-pair \
--key-name ${新規キー名} \
--query 'KeyMaterial' \
--output text \
> $HOME/.ssh/${保存する秘密鍵のファイル名} \
&& chmod 400 $HOME/.ssh/${保存する秘密鍵のファイル名}
インスタンス作成
設定するSecurityGroupとSubnetを事前に調べておく
$ aws --profile=${プロファイル名} ec2 describe-security-groups | jq -c ".SecurityGroups[] | [.GroupName,.GroupId]"
$ aws --profile=${プロファイル名} ec2 describe-subnets | jq -c ".Subnets[] | [.Tags[0].Value,.SubnetId]"
aws --profile=${プロファイル名} ec2 run-instances \
--image-id ami-923d12f5 \
--instance-type t2.micro \
--key-name ${新規キー名} \
--security-group-ids ${SecurityGroupのGroupID} \
--subnet-id ${SubnetのSubnetID} \
--monitoring Enabled=true
インスタンスIDを控えておく。
インスタンスに名前を付ける
$ aws --profile=${プロファイル名} ec2 create-tags --resources ${インスタンスID} --tags Key=Name,Value="${インスタンス名}"