待望の新サービス AWS CloudShell がリリースされました! #reinvent
これまで、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 を使ってみた
まずは、マネジメントコンソールへアクセスしましょう!
Welcome to AWS CloudShell
Close ボタンをクリックすると、セッションを開始します。
少し待つと、Web ブラウザ内にターミナル画面が表示されます。 おもむろに aws コマンドを実行すると CloudShell を起動した対象 AWS アカウントのリソースを確認することができました!
うまくいけば、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 時点の情報となります。
なお、マルチラインテキストをペーストしようとすると警告メッセージが表示されるようです。
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) の期間で開催中です!
参加がまだの方は、この機会に是非こちらのリンクからレジストレーションして豊富なコンテンツを楽しみましょう!