AWS CLIでJSONを眺める。操作するだけでは見えてこないクラウドの仕組み

Teaching

マネジメントコンソールは便利だけれど

私が勤めるIT系専門学校では、AWS Academyを活用してクラウドの授業を行っています。

EC2でLinuxサーバーを起動したり、VPCでネットワークを構築したり、S3でファイルを管理したり。学生たちは実際にAWSのサービスを操作しながら学んでいます。

AWSのマネジメントコンソールは便利です。

画面を見ながら操作できるので、初めてクラウドに触れる学生でも、手順書に沿ってリソースを作成できます。

ただ、授業をしていて少し気になることがあります。

学生たちの意識が、どうしても「次はどこをクリックするのか」に向かってしまうことです。

もちろん、マネジメントコンソールでもリソースの詳細情報は確認できます。しかし、操作を進めることに集中していると、そこに記載された情報の意味や、リソース同士の関係まで意識が向かないことがあります。

操作ができることと、仕組みを理解することは、必ずしも同じではないかもなーと。

かく言う自分も意識して仕組みの理解をしないといけないと肝に銘じております。

なので、AWS CLIを使ってJSONを眺める時間を設けています。

あえて見づらいJSONを眺めてみる

AWS CLIでは、コマンドラインからAWSのリソース情報を取得できます。

例えば、EC2インスタンスの情報を取得するには、次のコマンドを実行します。

aws ec2 describe-instances --output json

※AWS CLIのインストールと認証情報(クレデンシャル)の設定が完了していることを前提としています。

実行すると、大量のJSONが返ってきます。

正直なところ、マネジメントコンソールよりもずっと見づらいものです。

しかし、その中にはインスタンスID、インスタンスタイプ、稼働状態、VPC ID、サブネットIDなど、授業で学んできた情報が含まれています。

最初は何が書いてあるのか分からなくても、知っている単語を探してみる。

その値が何を意味するのか考えてみる。

さらに、JSONの階層構造をたどって、情報同士の関係を確認してみる。

こうした経験をしてもらいたいと思っています。

もちろん、CLIでも手順書のコマンドをコピーして実行するだけなら、マネジメントコンソールでクリックを繰り返すことと大差ありません。

大切なのは、コマンドを実行すること自体ではなく、返ってきた情報を自分の目で観察することです。

公式ドキュメントと見比べてみる

AWS CLIには、各サービスの情報を取得するためのコマンドが用意されています。

今回紹介した describe-instances 以外にも、VPCやサブネット、S3など、さまざまなリソースの情報を取得できます。

コマンドの詳しい使い方や、取得できる情報については、AWSの公式ドキュメントで確認できます。

最初からすべてを理解する必要はありません。

実際にコマンドを実行し、返ってきた情報と公式ドキュメントを見比べながら、少しずつ理解を深めていければと思います。

情報を読み取る力を身につけたい

JSONはAWSだけのものではありません。Web APIでも使われますし、Pythonの辞書やリストにも似た構造があります。

授業でPythonを教えていると、データをどう処理するかという話はよく出てきます。

でも、その前に「そもそも、どんなデータが入っているの?」というところをちゃんと見ておきたいんですよね。

AWS CLIで出てくるJSONも同じです。

最初は大量の文字が表示されて、なんじゃこりゃ?となります。

でも、よく見るとEC2のインスタンスIDがあったり、VPCやサブネットのIDがあったり、インスタンスの状態が書かれていたりします。

マネジメントコンソールで見ていた情報が、こんな形で表現されているんだな、と気づいてもらえたら、それだけでも収穫かなと思っています。

もちろん、必要な情報だけを取り出す方法もあります。Pythonで処理してもいいし、AWS CLIのオプションを使ってもいい。生成AIにコードを書いてもらうのもありでしょう。

ただ、何が入っているのか分からないまま抽出しても、出てきた結果が正しいのか判断できません。

  • まずは眺めてみる。
  • 気になる項目を見つけたら調べてみる。
  • そのうえで、必要な情報を取り出す方法を考えてみる。

そんな流れを授業の中で作れたらいいなと思っています。

AWS CLIを使えば、コマンドからクラウドの構築や管理もできます。

その前に、まずは自分たちが作ったリソースがどんな情報を持っているのか、じっくり眺めてみる。

遠回りに見えるかもしれませんが、こういう時間が大事なんじゃないかなと思うわけです。

AWS Academyに感謝

こうした授業を行えるのも、AWS Academyが学習環境を提供してくれているおかげです。

現在はAWS Academy Learner Labを利用し、学生たちが実際のAWS環境でEC2やVPC、S3、RDSなどを操作しています。

利用できるサービスや操作には一定の制限がありますが、それでも学生一人ひとりが実際のクラウド環境に触れられることは、非常にありがたいことです。

  • 手順書に沿って操作してみる
  • 思ったように動かなければ、原因を調べてみる
  • 構築したリソースを、今度はCLIから観察してみる

こうした試行錯誤を通じて、少しずつ理解を深めていくことができます。

座学で説明するだけでは得られない経験を、学生たちに提供できていると感じています。

AWS Academyには感謝、感謝です。

これからも、この恵まれた環境を活用しながら、学生たちが自分の目で情報を確かめ、考え、試すことのできる授業を模索していきたいと思います。

コメント

タイトルとURLをコピーしました