【レポート】AWS CloudShell : The fastest way to get started with AWS CLI #reinvent #emb044

2020.12.29

こんにちは、崔です。

AWS re:Invent 2020 で 行われた「AWS CloudShell: The fastest way to get started with AWS CLI」のセッションを視聴しましたのでレポートします。

アップデートに関するブログはこちら。

セッション概要

  • タイトル
    • AWS CloudShell:The fastest way to get started with AWS CLI
    • EMB044
  • スピーカー
    • Fabian Jakobs (Principal Engineer - AWS Cloud9)

AWS CloudShellは、AWSコンソールから利用できる無料のブラウザベースのシェルであり、AWSコマンドラインインターフェイス(CLI)を介してAWSリソースと対話するためのシンプルな方法を提供します。

このセッションでは、AWS CloudShellとAWS CLIの概要をご紹介します。

また、両方のサービスのデモを見て、それぞれのサービスを素早く簡単に使い始める方法をご紹介します。

レポート

What we also hear

AWSは顧客から次のような声を聞いていた。

  • ローカル環境にソフトウェアをインストールできない
  • スクリプトを素早く実行したい
  • AWS CLI を使い始めるにはどうすればいいのか
  • AWS CLI で簡単にアカウントをスイッチしたり、リージョンを変えるにはどうすればいいのか
  • 数多くのS3バケットを素早く変更するにはどうすればいいのか

One-click Shell in your browser

  • そこで、AWS CloudShell をリリースした
  • コンソール上で1クリックで利用開始できる
  • AWS CLI よりもっと簡単に利用できる

What is AWS CloudShell ?

  • AWS CloudShell は、最新の AWS CLI と紐付いている
  • すぐに試す/実行することができる
  • $HOMEディレクトリに最大1GBまでデータを保存可能
  • 1クリックで開始できる

What are the benefits of AWS CloudShell ?

  • 操作のオーバーヘッドが減る
    • 最新のツールが利用できるフルマネージドな環境が提供される
  • パーソナライズなシェル環境が利用できる
    • スクリプトやファイルを保存するために、1GBのストレージを利用できる

What's in the box ?

  • Amazon Linux 2上に、各種のCLIやTool/shellやRuntimeがインストール済み

Storage

  • ローカル環境から1GBまでのファイルをアップロード、ダウンロードできる
  • $HOMEディレクトリに、1GBまでスクリプトやログ、ファイルを保存できる
  • 最新の AWS CLI がインストール済み
  • 他のソフトウェアをインストールするためのroot権限を持っている

Technical overview

CloudShellがどのように動作するかの概要は次のとおりです。

まず、マネジメントコンソールにログインし、CloudShellセッションを開始します。
Web UI はCloudShellへのAPIコールを行います。
CloudShellが新しいCloudShell用のコンピュート環境をプロビジョニングします。

コンピュート環境はセッションごとにオンデマンドで作成されます。
これは Lambda Function のようなものと考えることができますが、CloudShellセッションが生きている限りコンピュート環境は存在し続けます。
コンピュート環境はVPC上で稼働しています。アウトバウンドのネットワークは許可されていますが、インバウンドのネットワークは許可されていません。

コンピュート環境が用意されると、 Systems Manager を利用して、Webブラウザ上のWeb UIとコンピュート環境との間に双方向の通信チャネルが作成されます。
Web UIにコマンドを入力すると、SSMのWebSocket接続を使ってバックエンドのコンピュート環境に通信し、コンピュート環境でコマンドが実行されます。

Lifecycle

ブラウザ上でCloudShellを開くと、WebAppはCloudShell内でリクエストを行い、CloudShellは新しいコンピュート環境をプロビジョニングし、以前のセッションで利用可能なコンピュート環境があれば home state を復元します。
その後、コンソールの資格情報をCloudShellにプッシュし、SSMを使用してWebSocket接続を確立します。

ある時点でユーザーがシェルの使用を止めて、例えばブラウザのウィンドウを閉じるなどしてセッションを閉じます。
そして、しばらくすると環境が停止します。

この時、ホームディレクトリからバックアップを取り、コンピュート環境を解放します。
この後は、次の2つのいずれかのことが起こります。
以前のホームディレクトリから新しいCloudShellを作成するか、または120日間使用しなかった場合に、データが全て削除されます。

FAQ 1

  • CloudShell ネットワークの仕組みは?
    • CloudShell は独自の隔離された VPC で動作しており、インバウンドアクセスはありません
  • どのくらいのストレージを利用できるか?いつまで保存できるのか?
    • CloudShellの空き容量は$HOME以外で約15GB、$HOMEには1GBの空き容量があります
    • $HOMEだけが保存できます
  • CloudShell はどのような認証情報を使用していますか?
    • CloudShellでは、マネジメントコンソールにログインする際と同じ認証情報を使用します
    • コンソールからアクセスできるものは、すべてCloudShellでアクセスすることができます
  • CloudShellとの間でファイルを取得するにはどうすればいいですか?
    • CloudShell では、ファイルをアップロードしたり、ダウンロードできます

FAQ 2

  • 費用は?
    • 追加料金はかかりません
    • データ転送のみ課金されます
  • 色やフォントをコントロールできますか?
    • 2つのテーマが含まれており、5つのフォントサイズが選べます
  • セッションは何回まで開けることができますか?
    • 最大5つのリージョンタブを開くことができ、各リージョンには最大5つのセッションを同時に開くことができます

所感

Technical overview のところで、少しだけCloudShellの裏側が紹介されていました。
Systems Manager で Web UI と コンピュート環境を連携している、とのことでした。

AWS CloudShell は、マネジメントコンソールにログインできる環境があれば、すぐに利用可能です。
AWS CLIやスクリプトの実行がお手軽に出来るので、まずは触ってみましょう!

AWS re:Invent 2020 Wave 2 は 2021/01/12 から

前半戦(Wave 1)のセッション・資料にもアクセスが可能です。
参加がまだの方は、この機会に是非こちらのリンクからレジストレーションして豊富なコンテンツを楽しみましょう!

AWS re:Invent | Amazon Web Services