1. AWS CLIコマンドのヴァージョンアップをしよう
$curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o "awscliv2.zip"
$unzip awscliv2.zip
$sudo ./aws/insstall --update
$aws --version
aws-cli/2.9.10 Python/3.9.11 Linux/5.10.157-139.675.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off
2022/12/27 時点で最新バージョンです 詳しくは、以下を参照 AWS CLI 最新バージョンをインストールまたは更新する
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html
2. 前回の復習 InternetGW情報を出力しよう
InternetGWの情報を必要な項目のみ出力してみよう
$aws ec2 describe-internet-gateways \
--query "InternetGateways[].[{VPC_id:Attachments[0].VpcId,Name:Tags[0].Value}]" --out table
3. AWSが保持しているグルーバルアドレスCIDRを表示しよう
3.1 AWSが保持している東京リージョンのグローバルCIDRの表示
AWSが保持しているグルーバルアドレスのCIDRが公開されています。(json形式)その内容から東京リージョンのIPレンジのみを出力します。
$curl https://ip-ranges.amazonaws.com/ip-ranges.json | \
jq -r '.prefixes[] | select(.region=="ap-northeast-1") | .ip_prefix'
curl コマンドでjsonファイルを取ってきます。 jp コマンドでリストになっているprefix[]からreginがap-northeast-1(東京)のもので、ip_prefix項目のみ出力させます
jq コマンドは以下でインストールしてみてください
$sudo yum install jq
3.2AWSが保持している東京リージョンでEC2のグルーバルアドレスCIDRを表示
東京リージョンでEC2のIPレンジのみを出力します。
$curl https://ip-ranges.amazonaws.com/ip-ranges.json | \
jq -r '.prefixes[] | select(.service=="EC2" and .region=="ap-northeast-1") | .ip
_prefix'
curlコマンドでjsonファイルを取ってきます。jpコマンドでリストになっているprefix[]からreginがap-northeast-1(東京)かつ serviceがEC2のip_prefixのみを出力させます
4. AWS Health イベントで使用されるサービス名の一覧を出力
HealthイベントをEventBridge経由で監視するイベントルールの対象を特定のサービスとする場合に、対象のサービス名は、”A2I”、”SSM”と選択可能である、これがなんのサービスかわかりたい
$aws health describe-event-types
Health イベントで使用されるサービス名の一覧は、aws health describe-event-types コマンドで出力できます。json形式で出力されます。沢山出力されるのである程度絞り込みを行います。
$aws health describe-event-types | \
jq -r '.eventTypes[] | select(.service=="SSM" or .service=="A2I") | .code'
Health イベントで使用されるサービス名の一覧は、aws health describe-event-types コマンドで出力できます。これでは、沢山出力されるので、対象を絞ります。 jqコマンドのselectを利用して SSMとA2Iに絞ります。そして、codeの部分のみを出力します。A2IはAmazon Augmented AI(AmazonA2I)のことだそうです。「A2I aws」で検索するとヒットします。
5. AWS WindowsのAMI一覧を出力しよう
Windows-serverのAMIはどのような物があるか、質問が良くあります。AWS CLIコマンドを使って出力できます。(Windows-server2019の例です)
$aws ec2 describe-images \
--owners amazon \
--filters "Name=name,Values=Windows_Server-2019-*" \
--query "sort_by(Images,&Name)[].[Name,ImageId]" \
--out table
imageは、aws ec2 describe-imageコマンドで出力します。filterオプションで windows_Server-2019-*のみを対象にします。更に、queryで ImagesNameとImageIdをsortして出力します。
6. routeテーブルを見て、publicサブネットかどうか判断しよう
publicサブネットかどうかは、routeテーブルを見ないとわかりません。ルートテーブルの(0.0.0.0/0)があるかどうかで判断できます。
$aws ec2 describe-route-tables \
--query "RouteTables[].{Sub:Associations[].SubnetId,Id:RouteTableId,rou:join('<->',Routes[].DestinationCidrBlock),INgw:Routes[].GatewayId}"\
--out text
routeテーブルを出力します。queryで出力項目を絞り込みます。Associations[].SubnetIdとRouteTableId,join(‘<->’)で文字列を加え、Routes[].DestinationCidrBlock,Routes[].GatewayIdを出力します。<->0.0.0.0/0があるサブネットがpublicサブネットです。
Linux版その1 EC2の情報出力 https://opt-p.co.jp/blog/aws/post-1633/
Linux版その2 RDSの情報出力 https://opt-p.co.jp/blog/aws/post-1718/
Linux版その3 VPCの情報出力 https://opt-p.co.jp/blog/aws/post-2080/