ちょっと話題の記事

待望の新サービス AWS CloudShell がリリースされました! #reinvent

新サービス AWS CloudShell のご紹介と共に、少し触ってランタイム等のバージョンを確認してみました。
2020.12.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

これまで、AWS CLI を実行するためには必ず事前のセットアップ作業が必要でしたが、これからはセットアップ作業をせずとも Web ブラウザを利用してマネジメントコンソールから AWS CLI を実行することができるようになりました!

AWS News Blog はこちら

AWS News Blog の内容をまとめると以下です。

  • シェル環境は、Amazon Linux 2 環境
  • リージョンの毎に最大 1GB のファイルをホームディレクトリに保存できる
  • SSO を介せば、AWSマネジメントコンソールにログインできる任意のIAMプリンシパルとしてシェルにアクセス可能
  • CloudShellにアクセスするには、AWSCloudShellFullAccessポリシーが有効になっている必要がある
  • sudo で特権ユーザーに昇格して、必要に応じパッケージインストールも可能
  • テーマやフォントサイズを変更することもできる
  • 同一リージョン内で、複数のセッションを開くことができる
  • シェル環境にファイルをアップロード/ダウンロードすることもできる
  • 各 CloudShell セッションは、非アクティブな状態が 20分続くとタイムアウトになる
  • サポートされているリージョンは、米国東部(バージニア州北部)、米国東部(オハイオ州)、米国西部(オレゴン)、ヨーロッパ(アイルランド)、アジア太平洋(東京)
  • $HOME(ホームディレクトリ)に保存されたファイルは、CloudShell 間の呼び出しで永続化できるがリージョン毎に 1GB の制限がある($HOME 以外のインストールされたソフトウェアは永続化できない)
  • インターネットへのアウトバウンド接続は可能だが、インバウンド接続は許可されていない(現時点では、プライベート VPC サブネット内のリソースアクセスは提供されていないが、ロードマップに含まれている)
  • ランタイムとして、Python,Node,Bash,PowerShell,jq,git,ECS CLI,SAM CLI,npm,pip が既にインストールされて利用可能な状態
  • 各リージョンで最大 10個の同時シェルを無料で使える!

その他、AWS CloudShell に関する FAQ はこちらのドキュメントを参照しましょう。

AWS CloudShell を使ってみた

まずは、マネジメントコンソールへアクセスしましょう!

7710f45771893f27ef913d9551d67e4d-640x105.png

Welcome to AWS CloudShell

a273297ef62467b6a75b0f2196b3a06f-640x357.png

Close ボタンをクリックすると、セッションを開始します。

15aa52fba278d063fab5b4136f1bb079.png

少し待つと、Web ブラウザ内にターミナル画面が表示されます。 おもむろに aws コマンドを実行すると CloudShell を起動した対象 AWS アカウントのリソースを確認することができました!

23be91cb660ec269df351e1fd2912a33.png

うまくいけば、Chromebook 等のシンクライアント端末だけでも Web ブラウザを利用して AWS リソースの管理等が可能になりますね!

AWS CloudShell の環境を調べてみた

実際に動作しているシェル環境を、各種コマンドで確認してみました。

[cloudshell-user@ip-10-0-28-190 ~]$ cat /etc/system-release
Amazon Linux release 2 (Karoo)
[cloudshell-user@ip-10-0-28-190 ~]$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
[cloudshell-user@ip-10-0-28-190 ~]$ aws --version
aws-cli/2.0.58 Python/3.7.3 Linux/4.14.209-160.335.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2
[cloudshell-user@ip-10-0-28-190 ~]$ python -V
Python 2.7.18
[cloudshell-user@ip-10-0-28-190 ~]$ python3 -V
Python 3.7.9
[cloudshell-user@ip-10-0-28-190 ~]$ jq --version
jq-1.5
[cloudshell-user@ip-10-0-28-190 ~]$ node -v
v12.18.4
[cloudshell-user@ip-10-0-28-190 ~]$ bash --version
GNU bash, version 4.2.46(2)-release (x86_64-koji-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[cloudshell-user@ip-10-0-28-190 ~]$ git --version
git version 2.23.3
[cloudshell-user@ip-10-0-28-190 ~]$ npm --version
6.14.6
[cloudshell-user@ip-10-0-28-190 ~]$ pip3 --version
pip 9.0.3 from /usr/lib/python3.7/site-packages (python 3.7)
[cloudshell-user@ip-10-0-28-190 ~]$ pwsh --version
PowerShell 7.0.3
[cloudshell-user@ip-10-0-28-190 ~]$ ecs-cli --version
ecs-cli version 1.20.0 (7547c45)
[cloudshell-user@ip-10-0-28-190 ~]$ sam --version
SAM CLI, version 1.6.2

上記の各ソフトウェアバージョンは、本記事を執筆した 2020/12/16 時点の情報となります。

なお、マルチラインテキストをペーストしようとすると警告メッセージが表示されるようです。

a19412ac696c55710fd56e29bc44eed0.png

Paste をクリックすると実行されました。ちゃんとチェックしましょうねってことですね。

管理者権限で yum パッケージを追加インストールすることにより、任意のソフトウェアを利用することも可能なようです。

[cloudshell-user@ip-10-0-28-190 ~]$ sudo -s
bash-4.2# yum install ruby
:
bash-4.2# ruby --version
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

まとめ

個人的に感じた AWS CloudShell サービスの魅力は以下でした。

  • Web ブラウザを利用可能な環境があれば、どこでも作業可能
  • AWS CLI や汎用スクリプトの実行環境がフルマネージドで管理不要かつ手軽に利用可能

CloudShell のイベント履歴については CloudTrail にロギングされていましたが 作業ログ等が自動的に CloudWatch Log に記録されているような雰囲気は無かったため 今後に期待したいと思います!

AWS re:Invent 2020 について

AWS re:Invent 2020 Virtual は ~ 2020/12/19 & 2021/1/12 ~ 1/14 (JST) の期間で開催中です!

参加がまだの方は、この機会に是非こちらのリンクからレジストレーションして豊富なコンテンツを楽しみましょう!

AWS re:Invent | Amazon Web Services