AWS CloudShell コンピューティング環境: 仕様およびソフトウェア
AWS CloudShell を起動すると、Amazon Linux 2023
コンピューティング環境のリソース
どの AWS CloudShell コンピューティング環境にも、次の CPU およびメモリリソースが割り当てられます。
-
1 vCPU (仮想 CPU)
-
2-GiB RAM
また、環境は次のストレージ構成でプロビジョニングされます。
-
1-GB の永続的ストレージ (セッション終了後もストレージは保持されます)
詳細については、「永続的ストレージ」を参照してください。
CloudShell ネットワーク要件
WebSockets
CloudShell は WebSocket プロトコルに依存しています。これにより、ユーザーのウェブブラウザと AWS クラウド内の CloudShell サービス間の双方向のインタラクティブ通信が可能になります。プライベートネットワークでブラウザを使用している場合、プロキシサーバーとファイアウォールによってインターネットへの安全なアクセスが促進されていると考えられます。通常、WebSocket 通信は、問題なくプロキシサーバーを通過できます。しかし、場合によっては、プロキシサーバーが WebSockets の正常な動作を妨げることがあります。この問題が発生した場合、CloudShell インターフェースは次のエラーを報告します (Failed to open sessions : Timed out while opening the session)。
このエラーが繰り返し発生する場合は、プロキシサーバーのドキュメントを参照して、WebSockets を許可するように設定されていることを確認します。または、ネットワークのシステム管理者に問い合わせてください。
注記
特定の URL を許可リストに登録して詳細な権限を定義したい場合は、AWS Systems Manager セッションが入力送信と出力受信のための WebSocket 接続を開くために使用する URL の一部を追加できます。(AWS CloudShell コマンドは、その Systems Manager セッションに送信されます。)
Systems Manager が使用するこの StreamURL の形式は wss://ssmmessages.region.amazonaws.com/v1/data-channel/session-id?stream=(input|output) です。
リージョンは、米国東部 (オハイオ) リージョンの us-east-2 のように、AWS Systems Manager でサポートされている AWS リージョンのリージョン識別子を表します。
セッション ID は特定の Systems Manager セッションが正常に開始された後に作成されるため、URL 許可リストを更新するときしか wss://ssmmessages.region.amazonaws.com を指定できません。詳細については、「AWS Systems Manager API リファレンス」の「StartSession」オペレーションを参照してください。
プリインストールされたソフトウェア
注記
AWS CloudShell 開発環境は、最新のソフトウェアへのアクセスを提供するために定期的に更新されているので、このドキュメントでは、特定のバージョン番号は提供していません。代わりに、インストールされているバージョンをチェックする方法を記述します。インストールされているバージョンを確認するには、プログラム名の後に --version オプション (例えば、git
--version など) を入力します。
シェル
| 名前 | 説明 | [Version information] |
|---|---|---|
|
Bash |
Bash シェルは、AWS CloudShell のデフォルトのシェルアプリケーションです。 |
|
|
PowerShell (pwsh) |
コマンドラインインターフェイスとスクリプト言語のサポートを提供する PowerShell は、マイクロソフトの .NET コマンド言語ランタイムの上に構築されています。PowerShell は、.NET オブジェクトを受信して返す |
|
| Zシェル (zsh) |
Z シェル、別名 |
|
AWS コマンドラインインターフェイス (CLI)
| 名前 | 説明 | [Version information] |
|---|---|---|
|
AWS CDK ツールキット CLI |
AWS CDK ツールキット、CLI コマンド、 詳細については、「AWS CDKツールキット」を参照してください。 |
|
|
AWS CLI |
AWS CLI は、コマンドラインから複数の AWS サービスを管理し、スクリプトを使用して自動化するためのコマンドラインインターフェイスです。詳細については、「CloudShell で CLI から AWS のサービスを管理する」を参照してください。 最新バージョンである AWS CLI バージョン 2 を確実に使用する方法については、「AWS CLI をホームディレクトリにインストールする」を参照してください。 |
|
| EB CLI |
EB CLI は AWS Elastic Beanstalk のコマンドラインインターフェイスで、ローカルリポジトリからの環境作成、更新、およびモニタリングを簡素化するインタラクティブなコマンドを提供します。 詳細については、AWS Elastic Beanstalk デベロッパーガイドの「Elastic Beanstalk コマンドラインインターフェイス (EB CLI) の使用」を参照してください。 |
|
|
Amazon ECS CLI |
Amazon Elastic Container Service (Amazon ECS) コマンドラインインターフェイス (CLI) は、クラスターとタスクの作成、更新、モニタリングを簡素化するための高レベルのコマンドを提供します。 詳細については、Amazon Elastic Container Service デベロッパーガイドの「Amazon ECS コマンドラインインターフェイスの使用」を参照してください。 |
|
|
AWS SAM CLI |
AWS SAM CLI は、AWS Serverless Application Model テンプレートおよびアプリケーションコードで動作するコマンドラインツールです。いくつものタスクを実行できます。Lambda 関数をローカルで呼び出すサーバーレスアプリケーションのデプロイパッケージを作成するサーバーレスアプリケーションを AWS Cloud にデプロイするなどがあります。 詳細については、AWS Serverless Application Model デベロッパーガイドの「AWS SAM CLI コマンドレファレンス」を参照してください。 |
|
| AWS Tools for PowerShell | AWS Tools for PowerShell は、SDK for .NET が公開している機能に基づいて構築された PowerShell モジュールです。AWS Tools for PowerShell を使用することにより、PowerShell コマンドラインから AWS リソースに対する操作をスクリプト処理できます。 AWS CloudShell は、AWS Tools for PowerShell のモジュール化バージョン (AWS.Tools) をプレインストールします。 詳細については、「AWS Tools for PowerShell ユーザーガイド」の「AWS Tools for PowerShell の使用」を参照してください。 |
|
ランタイムおよび AWS SDK: Node.js および Python 3
| 名前 | 説明 | [Version information] |
|---|---|---|
|
Node.js (npm 付き) |
Node.js は、非同期プログラミング手法を簡単に適用できるように設計された JavaScript ランタイムです。詳細については、「Node.js の公式サイトのドキュメント npm は JavaScript モジュールのオンラインレジストリへのアクセスを提供するパッケージマネージャーです。詳細については、「公式 npm サイトのドキュメント |
|
|
SDK for JavaScript in Node.js |
Software Development Kit (SDK )を使用すると、Amazon S3、Amazon EC2、DynamoDB、および Amazon SWF などの AWS のサービスに JavaScript オブジェクトを提供することで、コーディングを簡素化できます。詳細については、AWS SDK for JavaScript デベロッパーガイドを参照してください。 |
|
|
Python (パイソン) |
Python 3 はシェル環境で使用可能になりました。Python 3 は現在、プログラミング言語のデフォルトバージョンと見なされています (Python 2 のサポートは 2020 年 1 月に終了しました)。詳細については、「Python 公式サイトのドキュメント また、Python のパッケージインストーラである pip がプリインストールされています。このコマンドラインプログラムを使用して、Python パッケージインデックスなどのオンラインインデックスから Python パッケージをインストールできます。詳細については、Python Packaging Authority が提供するドキュメント |
|
|
SDK for Python (Boto3) |
Boto は Python デベロッパーが Amazon EC2 や Amazon S3 などの AWS のサービス を作成、設定、管理するために使用する Software Development Kit (SDK) です。SDK は、使いやすい、オブジェクト指向 API および AWS のサービス への低レベルのアクセスを提供します。 詳細については、Boto3 ドキュメント |
|
開発ツールおよびシェルユーティリティ
| 名前 | 説明 | [Version information] |
|---|---|---|
|
bash-completion |
bash-completion は、Tab キーを押して部分的に入力されたコマンドまたは引数の残りの自動入力を可能にするシェル機能の集まりです。 パッケージのコマンドの自動入力を設定するには、プログラムファイルをソースにする必要があります。例えば、Git コマンドの自動入力を設定するには、次の行を
カスタム補完スクリプトを使用したい場合、それらを永続的なホームディレクトリ ( 詳細については、GitHub でプロジェクトの README |
|
| cqlsh-expansion | cqlsh-expansion は、Apache Cassandra との完全な互換性を維持し、Amazon Keyspaces 用に事前設定された cqlsh とヘルパーを含むツールキットです。詳細については、「Amazon Keyspaces (Apache Cassandra 向け) 開発者ガイド」の「cqlsh を使用して Amazon Keyspaces に接続する」を参照してください。 |
|
| Docker |
Docker |
|
| Git |
Git は、ブランチワークフローおよびコンテンツのステージングを介して、最新のソフトウェア開発プラクティスをサポートする分散バージョン管理システムです。詳細については、Git の公式サイトのドキュメントページ |
|
| iputils |
iputils パッケージには Linux ネットワーク用のユーティリティが含まれています。提供されるユーティリティの詳細については、「GitHub の iputils リポジトリ |
iputils ツールの例: |
| jq | jq ユーティリティは JSON 形式のデータを解析して、コマンドラインフィルタによって変更された出力を生成します。詳細については、GitHub でホストされている jq マニュアル |
|
|
kubectl |
kubectl は、Kubernetes API を使用して Kubernetes クラスターのコントロールプレーンと通信するためのコマンドラインツールです。 |
|
|
make |
make ユーティリティは makefiles を使用して、一連のタスクを自動化し、コードのコンパイルを整理します。詳細については、GNU Make のドキュメント |
|
|
man |
man コマンドは、コマンドラインユーティリティおよびツールのマニュアルページを提供します。例えば、man ls はディレクトリの内容を一覧表示する ls コマンドのマニュアルページを返します。詳細については、マンページの「Wikipedia エントリ |
|
| nano | nano は、テキストベースのインターフェース用の小さくて使いやすいエディターです。詳細については、「GNU nano ドキュメント |
|
|
OpenJDK 21 |
Amazon Corretto 21 は、OpenJDK 21 |
|
|
procps |
procps は、現在実行中のプロセスをモニタリングおよび停止するために使用できるシステム管理ユーティリティです。詳細については、procps で実行できるプログラムをリストする README ファイル |
|
|
psql |
PostgreSQL は、複雑なデータオペレーションを安全に管理およびスケーリングするための堅牢な機能を提供しながら、標準の SQL 機能を使用する強力なオープンソースデータベースシステムです。詳細については「PostgreSQL とは |
|
|
SSH クライアント |
SSH クライアントは、リモートコンピュータとの暗号化通信にセキュアシェルプロトコルを使用します。OpenSSH は、プリインストールされている SSH クライアントです。詳細については、OpenBSD によって維持される OpenSSH サイト |
|
|
sudo |
sudo ユーティリティを使用すると、ユーザーは別のユーザー (通常はスーパーユーザー) のセキュリティ許可でプログラムを実行できます。Sudo は、システム管理者としてアプリケーションをインストールする必要がある場合に便利です。詳細については、「Sudo マニュアル |
|
|
tar |
tar は、複数のファイルを単一のアーカイブファイル (tarball と呼ばれることが多い) にグループ化するために使用できるコマンドラインユーティリティです。詳細については、GNU tar ドキュメント |
|
|
tmux |
tmux は、複数のWindowsで異なるプログラムを同時に実行するために使用できるターミナルマルチプレクサです。詳細については、tmux の簡潔な紹介を提供するブログ |
|
| vim |
vim は、テキストベースのインターフェースを介して対話的な操作を可能にするカスタマイズ可能なエディタです。詳細については、vim.org で提供されるドキュメントリソース |
|
| wget |
wget は、コマンドラインでエンドポイントによって指定された ウェブ サーバーからコンテンツを取得するために使用されるコンピュータプログラムです。詳細については、GNU Wgetドキュメント |
|
| zip/enzip |
zip/unzip ユーティリティは、データを失うことなくロスレスデータ圧縮を実現するアーカイブファイル形式を使用します。zip コマンドを呼び出して、単一のアーカイブ内のファイルをグループ化して圧縮します。unzip を使用して、アーカイブから指定したディレクトリにファイルを抽出します。 |
|
AWS CLI をホームディレクトリにインストールする
CloudShell 環境にプリインストールされている他のソフトウェアと同様に、AWS CLI ツールは、スケジュールされたアップグレードとセキュリティパッチで自動的に更新されます。AWS CLI の最新バージョンを使用していることをチェックしたい場合、シェルのホームディレクトリにツールを手動でインストールするように選択できます。
重要
次回の CloudShell セッションの開始時に使用できるようにするには、ホームディレクトリに AWS CLI のコピーを手動でインストールする必要があります。このインストールが必要なのは、$HOME の外部のディレクトリに追加されたファイルが、シェルセッションが終了すると削除されるためです。また、この AWS CLI のコピーをインストールした後は自動的には更新されません。つまり、アップデートおよびセキュリティパッチを管理するのはユーザーの責任です。
AWS 責任共有モデルの詳細については、「でのデータ保護AWS CloudShell」を参照してください。
AWS CLI をインストールするには
-
CloudShell コマンドラインでは、
curlコマンドを使用して、シェルにインストールされた AWS CLI の zip 形式のコピーを転送します。curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" -
zip フォルダを解凍します。
unzip awscliv2.zip -
指定したフォルダにツールを追加するには、AWS CLI インストーラーを実行します。
sudo ./aws/install --install-dir /home/cloudshell-user/usr/local/aws-cli --bin-dir /home/cloudshell-user/usr/local/bin正常にインストールされると、コマンドラインに次のメッセージが表示されます。
You can now run: /home/cloudshell-user/usr/local/bin/aws --version -
また、独自の便宜のために、
awsコマンド実行時にツールのインストールへのパスを指定する必要がないように、PATH環境変数を更新することもお勧めします。export PATH=/home/cloudshell-user/usr/local/bin:$PATH注記
この変更を
PATHに戻すと、指定したパスを機能としないawsコマンドは、デフォルトでプリインストールされた AWS CLI のバージョンを使用します。
シェル環境へのサードパーティーソフトウェアのインストール
注記
AWS CloudShell のコンピューティング環境に、サードパーティーアプリケーションをインストールする前に、共有セキュリティ責任モデル
デフォルトでは、すべての AWS CloudShell ユーザーに sudo のアクセス許可があります。したがって、シェルのコンピューティング環境でまだ利用できないソフトウェアをインストールするために sudo コマンドを使用できます。例えば、DNF パッケージ管理ユーティリティで sudo を使用して cowsay をインストールできます。これにより、次のメッセージ付きの牛の ASCII アート画像が生成されます。
sudo dnf install cowsay
次に、echo "Welcome to AWS
CloudShell" | cowsay を入力して、新しくインストールしたプログラムを起動できます。
重要
dnf などのパッケージ管理ユーティリティは、プログラムをディレクトリ (/usr/bin など) にインストールします。各プログラムは、シェルセッションが終了するとリサイクルされます。つまり、セッションごとに追加のソフトウェアがインストールされ、使用されることを意味します。
スクリプトでシェルを修正する
デフォルトのシェル環境を変更する場合は、シェル環境が起動するたびに実行されるシェルスクリプトを編集できます。デフォルトの bash シェルが起動するたびに .bashrc スクリプトが実行されます。
警告
.bashrc ファイルを誤って修正した場合、その後シェル環境にアクセスできないことがあります。編集する前にファイルのコピーを作成することをお勧めします。.bashrc の編集時にシェルを 2 つ開くことでリスクを軽減することもできます。一方のシェルでアクセスできなくなった場合でも、他のシェルにログインし、変更をロールバックできます。
誤って .bashrc または他のファイルを変更した後にアクセスできなくなった場合、ホームディレクトリを削除することで、AWS CloudShell デフォルト設定に戻すことができます。
この手順では、シェル環境で自動的に Z シェルの実行に切り替わるように .bashrc スクリプトを変更します。
-
テキストエディタ (例:Vim) を使用して、
.bashrcを開きます。vim .bashrc -
エディタインターフェースで、I キーを押して編集を開始し、次に以下を追加します。
zsh -
.bashrcファイルを終了して保存するには、Esc を押して Vim コマンドモードを入力後、以下を入力します。:wq -
sourceコマンドを使用して.bashrcファイルを再ロードする:source .bashrcコマンドラインインターフェイスが再び使用可能になると、プロンプトシンボルが
%に変化して、Z シェルを使用していることを示します。