KNOWLEDGE - COLUMN ナレッジ - コラム

【エバンジェリスト・ボイス】AWS CloudShellでAWS CLIを手軽に!

【エバンジェリスト・ボイス】AWS CloudShellでAWS CLIを手軽に! 2021/02/11 (木)

先端技術部
エバンジェリスト 松岡 政之    matsuoka2_274x380

こんにちは。先端技術部エバンジェリストの松岡です。

 

COVIT-19の流行から一年以上が経ちましたが皆様いかがお過ごしでしょうか。

関東などでは緊急事態宣言が再度発令され、飲食店の短縮営業や多くのイベントが延期・中止するなど日常生活にも大きく影響が出ている方も多いかと思います。

私自身は過去のコラムでも書いている通り、もともとインドア派なので大きなストレスはなく過ごせています。しかし、参加したいイベントやライブなどが中止や延期、配信のみでの開催になったり等やきもきすることも多々あります。

仕事に関しては以前と比べるとリモートワーク等が進み、現地に行かなくてもできる作業が大きく増えたという方も多いのではないでしょうか。私自身ほぼ在宅100%で仕事ができております。

この流れに乗って現地で対応せざるを得ないものを減らしていく一環として、オンプレミスを脱却してクラウドに移行していくのはいかがでしょうか。

というわけで、自然な導入から本題に入ります。

今回は昨年1215日にサービスリリースされたAWS CloudShellを触っていきたいと思います。 
※外部サイト:AWS CloudShell のご紹介

サービスの概要を説明すると、AWS CLIについて実行環境をオンプレミスやEC2インスタンス上に自分で作成しなくても、PaaSサービスとして手軽に利用できるサービスです。

最初から東京リージョンでも利用できるのは嬉しいですね!

まずログインすると、サービス一覧の開発者ツールの場所にもありますが、上の帯の右側にもアクセスできるボタンが用意されています。 

001_275x338

002_980x50

セッションを開始すると、環境の準備が始まるのでしばらく待つとLinuxで見慣れたターミナルの画面が表示されます。

どうやら実態はAmazon Linux 2のようです。

 003_1044x578

dfコマンドでファイルシステムの状況を見てみると、利用できるホームディレクトリの容量は約1GBだということがわかります。

 004_665x253

 それでは早速AWS CLIのコマンドを実行してみます。

AWS CLIでどのようなコマンドが利用できるかについては※外部サイト:AWS CLI Command Reference をご参照ください。

 とりあえずS3のバケットリストを表示するコマンドを実行してみます。すると、S3のバケットのリストを取得することができました。実際のS3のコンソールと比較してみると問題なく情報を取得できていることがわかります。 

005_865x258

006_498x332


このように、自分で環境を準備しなくてもAWS CLIをお手軽に利用することができます。

もちろんターミナル上の文字列をコピーしたり、ターミナルに文字列をペーストしたりすることもできますので、Tera TermPuTTYなどのリモートログオンクライアントと同じように利用することができます。

ただし、現時点では独立したVPCNATゲートウェイ経由でインターネットにアクセスできるEC2インスタンスが作られているのと同等の環境のため、その他のプライベートなVPC内のリソースに直接アクセスすることはできません。どうしてもアクセスさせたい場合は対象のリソースをパブリックからアクセス可能な状態にするしかないようです。そのためCloudShellを利用できるシーンは少し限られてしまうので注意が必要です。他のPaaSサービスでもVPC連携は後から実装されたりしているので、今後の機能拡張に期待しましょう! 

さて、AWS CloudShellですが実はAWS CLIを実行する以外にも色々なことに利用することができます。

まずは、yumコマンドが利用できるので下図のようにパッケージをインストールして利用することができます。

公式のリポジトリだけでなくインターネットに接続可能なのでGitHub等からソフトウェアを入手して動作させることも可能です。 

007_589x225

008_921x567


もちろん、viエディタも利用できるので下記の通りコーディングをして動作させることもできます。

 

009_1398x738

010_455x530

また、右上の[Actions]ボタンからファイルのダウンロード/アップロードもできます。

ダウンロードの際は「ダウンロードしたいファイルのフルパス」または「カレントディレクトリからの相対パス」を指定することでファイルをローカル端末にダウンロードすることができます。 

011_767x355

一方、アップロードはローカル端末のエクスプローラからファイルを選択することでカレントディレクトリに選択したファイルをアップロードすることができます。 

012_568x310

013_572x237

以上、ざっくばらんにAWS CloudShellを触ってみました。
思った以上にいろいろなことができますね!

最後に、今回触ってみた内容のおさらいをします。

まずは本来の使い方としては、AWS CLIの実行環境をボタン一つで作成することができるようになりました。また、IAMユーザのアクセスキーを設定することもなく利用することができます。AWS CLIを軽く利用したい場合、面倒な事前準備なく利用できるのが一番のメリットだと思います。

一方でプライベートなVPC内のリソースへのアクセスは現時点ではできず、利用できるシーンが限られてしまうというデメリットもあるため、オンプレミスの環境やEC2上でのAWS CLIの利用とは利用シーンに応じて選択する必要があります。まだ新しいサービスのためこちらについては今後の機能拡張に期待したいところですが、何はともあれ選択肢が増えたことは喜ばしい事です。

また、AWS CLI以外でも通常のAmazon Linux 2環境とほぼ同様に利用することもできます。1点注意が必要なのはホームディレクトリの容量が1GBしかなく、拡張もできないことです。うかつに巨大なファイルをダウンロードしたりしないようにしましょう。

一応セッションごとに状態は保存されますが、あくまでも一時的に払い出される環境だと思って利用するほうが良いかもしれません。

そして、一番の大きなメリットは「AWS CloudShellは無料で利用できるサービス」ということです。EC2のようにシャッドタウンしないと課金されてしまうことや、ボリュームが残っていると課金されてしまうことなどを気にする必要はありません。

AWS CLIを利用するだけでなく、ちょっとしたスクリプトを実行してみる環境として利用してみるなど、手軽に利用できるAWS CloudShellをぜひ活用してみてください。 

それではよいクラウドライフを!


当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。
コラムの感想やリクエスト、セキュリティに関するお悩みも受付中!

問い合わせボタン_230x43

松岡 政之

株式会社インフォメーション・ディベロプメント 先端技術部 エバンジェリスト

この執筆者の記事一覧

関連するナレッジ・コラム

【エバンジェリスト・ボイス】AI対決~音の違いを聞き分けられるか~

【エバンジェリスト・ボイス】Threat Hunting ~リスクに強い組織を目指そう!~

【エバンジェリスト・ボイス】初動が最重要!事業継続マネジメント(BCM)と事業継続計画(BCP)