AWS CloudShell で即座に始める AWS 操作 - ブラウザベースのシェル環境活用術
コンソールからワンクリックで起動し、AWS CLI・SAM CLI・CDK がプリインストールされた環境で即座に作業を開始できる。1 GB の永続ストレージでスクリプトも保持されます。
CloudShell の特徴と利用場面
CloudShell は AWS マネジメントコンソールから直接起動できるブラウザベースのシェル環境です。コンソール上部のターミナルアイコンをクリックするだけで、数秒で Amazon Linux 2023 ベースのシェルが起動します。AWS CLI v2、SAM CLI、CDK、Terraform、Python、Node.js、Git、jq、kubectl、eksctl などの主要ツールがプリインストールされており、追加のインストール作業なしに AWS リソースの操作を開始できます。ローカル環境の構築が困難な場面、一時的な管理作業、トラブルシューティング時の迅速な対応に特に有効です。コンピューティングリソースは vCPU 1 コア、メモリ 2 GB が割り当てられ、軽量なスクリプト実行や CLI 操作には十分ですが、大規模なビルドやデータ処理には適しません。
認証とセキュリティ
CloudShell はコンソールにログインした IAM プリンシパルの認証情報を自動的に継承します。アクセスキーの設定や環境変数の手動設定は不要で、コンソールで操作可能な権限がそのまま CLI で使用できます。IAM ポリシーで CloudShell へのアクセス自体を制御でき、特定のユーザーやロールに CloudShell の利用を制限できます。CloudShell 環境はセッションごとに独立しており、他のユーザーの環境にアクセスすることはできません。ネットワークはアウトバウンドのみ許可され、外部から CloudShell 環境に接続することはできません。セッションが 20 分間非アクティブだと自動的に停止しますが、永続ストレージのデータは保持されます。
永続ストレージとカスタマイズ
CloudShell はリージョンごとに 1 GB の永続ストレージをホームディレクトリ ($HOME) に提供します。スクリプト、設定ファイル、.bashrc のカスタマイズがセッション間で保持されます。pip や npm でパッケージを $HOME 配下にインストールすることも可能です。ファイルのアップロード (最大 1 GB) とダウンロード機能で、ローカルマシンとのファイル転送が簡単に行えます。CloudFormation テンプレートをアップロードしてデプロイしたり、クエリ結果をダウンロードしたりする用途に便利です。永続ストレージは 120 日間 CloudShell を使用しないと自動削除されるため、重要なファイルは S3 にバックアップすることを推奨します。 CloudShell の基礎から応用まで、書籍 (Amazon)で体系的に学べます。
Cloud9 との使い分け
CloudShell と Cloud9 はどちらもブラウザベースの AWS 操作環境ですが、用途が明確に異なります。CloudShell は CLI 操作と軽量スクリプトに特化した無料のシェルで、エディタ機能やデバッガーは持ちません。一方 Cloud9 はコードエディタ・デバッグ機能・ファイルツリーを備えた統合開発環境 (IDE) で、バックエンドに EC2 インスタンスが起動するため利用時間に応じた課金が発生します。「ちょっと CLI で確認したい」なら CloudShell、「コードを書いてデバッグしたい」なら Cloud9 という使い分けが基本です。なお AWS は 2024 年 7 月に Cloud9 の新規アカウントへの提供を停止し、代替として VS Code 拡張の AWS Toolkit や SageMaker Code Editor を推奨しています。CloudShell は引き続き全アカウントで利用可能です。
実践的な活用テクニック
日常の運用で CloudShell を最大限活用するテクニックを紹介します。第一に、.bashrc にエイリアスやプロンプトカスタマイズを設定しておくと、毎回のセッションで同じ作業環境が再現されます。例えば alias ll='ls -la' や AWS_DEFAULT_OUTPUT=table の設定が有用です。第二に、よく使うスクリプト (リソース一覧取得、タグ付けバッチ、コストチェック) を $HOME/scripts/ に保存しておくと、永続ストレージがセッション間で保持するため即座に実行できます。第三に、複数タブ機能を活用することで、異なるリージョンやアカウントの作業を並行して進められます。注意点として、CloudShell は VPC 内のプライベートリソースに直接アクセスできないため (VPC 環境機能を有効化しない場合)、RDS や ElastiCache への直接接続が必要な場合は VPC 環境設定を検討するか、代わりに Session Manager を経由する方法があります。
CloudShell の料金
CloudShell は無料で利用できます。コンピューティング環境、1 GB の永続ストレージ、プリインストールされたツールすべてに追加料金は発生しません。CloudShell から実行した AWS CLI コマンドで作成・操作するリソースの料金のみが課金されます。セッションが 20 分間非アクティブだと自動終了し、120 日間使用しないと永続ストレージが削除されます。ローカル環境のセットアップコストや、Cloud9 の EC2 インスタンス料金と比較すると、簡単な AWS 操作やスクリプト実行には CloudShell が最もコスト効率の高い選択肢です。
まとめ
CloudShell はブラウザから即座に AWS CLI 操作を開始できる無料のシェル環境です。プリインストールされた AWS CLI、Python、Node.js、Git で追加設定なしに作業を開始でき、IAM の認証情報が自動設定されます。1 GB の永続ストレージでスクリプトや設定ファイルを保持し、セッション間で作業を継続できます。Cloud9 との使い分けを意識し、CLI 操作・スクリプト実行には CloudShell を、本格的な開発にはローカル IDE または SageMaker Code Editor を選択します。