AWS-CLIのHello Worldを試してみる
投稿日: 2024年9月22日 更新日: 2024年9月22日
概要
AWSに入門する土台をつくるために、AWS CLIの最初の一歩を踏み出します。
ゴール
AWS CLIを動かす環境をつくり、Hello WorldがてらVPCを構築することを目指します。
前提
$ aws --version
aws-cli/2.17.42 Python/3.11.9 Windows/10 exe/AMD64
環境構築
ここでは、AWS CLIをインストールし、動かせる状態をつくっていきます。
インストール
手順に従ってAWS CLIを導入します。
WindowsだとScoopを使うとサクッと構築できました。
疎通確認
aws --version
コマンドから、インストールに成功したか確認しておきます。
$ aws --version
aws-cli/2.17.42 Python/3.11.9 Windows/10 exe/AMD64
無事インストールに成功したので、自分が所有するAWS環境を操作するために認証しておきます。
認証
ここでは、公式にて推奨されているIAM Identity Centerを使って認証していきます。
とはいえ、AWSに入門したてで理解の浅い状態なので、ひとまずは手順を解説した記事を参考リンクとして載せておくに留めておきます。
(いずれIAMにも入門したい...。)
トークン取得
諸々設定が終わったら、実際に認証してみます。
最初に、aws configure sso
コマンドでクレデンシャルを取得するための設定を登録しておきます。
$ aws configure sso
SSO session name (Recommended): SESSION_NAME
SSO start URL [None]: PORTAL_URL
SSO region [None]: ap-northeast-1
SSO registration scopes [sso:account:access]:
Attempting to automatically open the SSO authorization page in your default browser.
...
そして、aws sso login
コマンドでトークンを取得します。以降はトークンで認証し、AWSのリソースを操作していきます。
$ aws sso login --profile PROFILE
PROFILE
オプションには、認証プロファイル名を指定しておきます。認証プロファイル名は、~/.aws/config
ファイルの[profile]
の項から参照・編集できます。
最後に、認証できているか動作確認しておきます。公式で推奨されているコマンドを叩いてみます。
$ aws sts get-caller-identity --profile PROFILE
{
"Result": "SomeResult"
}
なんらかの結果が返ってきたことから、成功していそうです。
VPCの構築
AWS CLIを使う準備が整いました。ここではHello WorldがてらVPCをつくってみます。
ドキュメント
AWS CLIからリソースを操作するときは、コマンドの使い方を理解することが重要です。コマンドの詳細は公式ドキュメントにまとまっているので、公式ドキュメントをどうやって読めば良いのか、簡単な地図をつくっておきます。
リファレンスの構造を読み解く
VPC作成コマンドを例に見てみます。
Description
リソース作成系のコマンドは、操作対象のリソースの補足説明が主に書かれています。具体的には、コマンドのオプションと関わりが深いAWS公式ドキュメントへのリンクが載っていることが多いようです。
AWS公式ドキュメントは膨大でどこから見れば良いか迷子になりやすいと感じています。
ですので、こうやって必要最小限のリンクだけまとまっていると、入門にはちょうど良いボリュームになりそうです。
Synopsis
Linuxコマンドのマニュアルのように、使えるオプションがまとまっています。[]
で囲まれたものは任意なので、まずは必須オプションだけ押さえておきたいです。
Options
Synopsisの項で見たオプションの詳細説明が書かれています。
Examples
ユースケース別のコマンドの実行例が載っています。あわせて、コマンドを実行した結果操作されたリソースの情報がOutputとして出力されています。
ドキュメントを見るときは、最初にこの辺りを眺めておけば、コマンドが何をしているのかイメージを掴むのに良さそうです。
コマンド実行
リファレンスに従い、実際にVPCをつくってみます。
今回はHello World的な位置づけなので、とりあえずコマンド例をもとに見よう見まねでコマンドを叩いてみます。
$ aws ec2 create-vpc \
--cidr-block '10.0.0.0/16' \
--tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=HelloAWSCLI}]' \
--profile 'PROFILE'
# output example
{
"Vpc": {
"CidrBlock": "10.0.0.0/16",
"DhcpOptionsId": "dopt-0b115d2f27d7dd260",
"State": "pending",
"VpcId": "VPC_ID",
"OwnerId": "OWNER_ID",
"InstanceTenancy": "default",
"Ipv6CidrBlockAssociationSet": [],
"CidrBlockAssociationSet": [
{
"AssociationId": "vpc-cidr-assoc-02df3e0e0aea59f92",
"CidrBlock": "10.0.0.0/16",
"CidrBlockState": {
"State": "associated"
}
}
],
"IsDefault": false,
"Tags": [
{
"Key": "Name",
"Value": "HelloAWSCLI"
}
]
}
}
出力のJSONにはVPCの特徴を掴むのに良さそうな情報がまとまっています。CLIはGitやDocker・Linuxコマンドなどで慣れ親しんだインタフェースで操作できるので、AWSへ入門するのにも良さそうです。
コマンドを実行すると、VPCが作成されたことをコンソール上でも確認できました。
後片付け
今後のことを考えると、実験用につくったリソースで不要な料金が発生しないよう、後片付けを習慣づけておきたいです。
ということで、つくったVPCを消しておきます。
VPCは、aws ec2 delete-vpc
コマンドで削除することができます。
削除対象のVPCのIDを明示してコマンドを実行します。
aws ec2 delete-vpc \
--vpc-id 'VPC_ID' \
--profile 'PROFILE'
コンソールにて、VPCが削除されたことを確認しました。
まとめ
本記事では、AWS CLIに入門してみました。CLIは思ったよりもとっつきやすいと感じたので、ここから普段触っているリソースを構築してみて、AWSへの理解を深めていきたいです。
記事はGitHubでも公開しています。間違い・よりよい書き方などございましたらIssueやPRを頂けるとうれしいです。
Author:
a-pompom: