View a markdown version of this page

AWS CloudShellコンピューティング環境: 仕様とソフトウェア - AWS CloudShell

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CloudShellコンピューティング環境: 仕様とソフトウェア

を起動するとAWS CloudShell、Amazon Linux 2023 に基づくコンピューティング環境が作成され、シェルエクスペリエンスがホストされます。環境は、コンピューティングリソース (vCPU およびメモリ) に設定され、コマンドラインインターフェイスからアクセスできるプリインストールされた幅広い機能を提供しています。コンピューティング環境にインストールしたすべてのソフトウェアにパッチが適用されており、最新の状態であることを確認します。ソフトウェアをインストールし、シェルスクリプトを変更して、デフォルト環境を構成することもできます。

コンピューティング環境のリソース

各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 を許可するように設定されていることを確認します。または、ネットワークのシステム管理者に問い合わせてください。

注記

特定の URLs を許可リストに登録して詳細なアクセス許可を定義する場合は、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) です。

リージョンは、米国東部 (オハイオ) リージョンなどAWS Systems Manager、 でサポートされているリージョンus-east-2のリージョン識別子AWSを表します。

セッション ID は特定の Systems Manager セッションが正常に開始された後に作成されるため、URL 許可リストを更新するときしか wss://ssmmessages.region.amazonaws.com を指定できません。詳細については、「AWS Systems Manager API リファレンス」の「StartSession」オペレーションを参照してください。

プリインストールされたソフトウェア

注記

AWS CloudShell開発環境は最新のソフトウェアへのアクセスを提供するために定期的に更新されるため、このドキュメントでは特定のバージョン番号は提供していません。代わりに、インストールされているバージョンをチェックする方法を記述します。インストールされているバージョンを確認するには、プログラム名の後に --version オプション (例えば、git --version など) を入力します。

シェル

プレインストールされたシェル
名前 説明 バージョン情報

Bash

Bash シェルはデフォルトのシェルアプリケーションですAWS CloudShell。

bash --version

PowerShell (pwsh)

コマンドラインインターフェイスとスクリプト言語のサポートを提供する PowerShell は、マイクロソフトの .NET コマンド言語ランタイムの上に構築されています。PowerShell は、.NET オブジェクトを受信して返す cmdlets と呼ばれる軽量コマンドを使用しています。

pwsh --version

Zシェル (zsh)

Z シェル、別名 zsh は、テーマおよびプラグインのカスタマイズサポートを強化した Bourne シェルの拡張バージョンです。

zsh --version

AWSコマンドラインインターフェイス (CLI)

CLI
名前 説明 バージョン情報

AWS CDKツールキット CLI

Toolkit AWS CDK、CLI コマンド、 はcdk、AWS CDKアプリを操作する主要なツールです。アプリケーションを実行し、定義したアプリケーションモデルを調査し、 によって生成されたAWS CloudFormationテンプレートを生成してデプロイしますAWS CDK。

詳細については、「AWS CDK Toolkit」を参照してください。

cdk --version

AWS CLI

AWS CLIは、コマンドラインから複数のAWSサービスを管理し、スクリプトを使用して自動化するために使用できるコマンドラインインターフェイスです。詳細については、「CloudShell で CLI から AWS サービスを管理する」を参照してください。

最新バージョンであるAWS CLIバージョン 2 を確実に使用する方法については、「ホームディレクトリAWS CLIへの のインストール」を参照してください。

aws --version

EB CLI

AWS Elastic Beanstalk CLI には、ローカルリポジトリからの環境の作成、更新、モニタリングを簡素化するコマンドラインインターフェイスが用意されています。

詳細については、AWS Elastic Beanstalkデベロッパーガイドの「Elastic Beanstalk コマンドラインインターフェイス (EB CLI) の使用」を参照してください。

eb --version

Amazon ECS CLI

Amazon Elastic Container Service (Amazon ECS) コマンドラインインターフェイス (CLI) は、クラスターとタスクの作成、更新、モニタリングを簡素化するための高レベルのコマンドを提供します。

詳細については、Amazon Elastic Container Service デベロッパーガイドの「Amazon ECS コマンドラインインターフェイスの使用」を参照してください。

ecs-cli --version

AWS SAM CLI

AWS SAM CLI は、AWS Serverless Application Modelテンプレートとアプリケーションコードで動作するコマンドラインツールです。いくつものタスクを実行できます。これには、Lambda 関数のローカル呼び出し、サーバーレスアプリケーションのデプロイパッケージの作成、サーバーレスアプリケーションのAWSクラウドへのデプロイが含まれます。

詳細については、AWS Serverless Application Modelデベロッパーガイドの「AWS SAM CLI コマンドレファレンス」を参照してください。

sam --version

AWS Tools for PowerShell AWS Tools for PowerShellは、 によって公開されている機能に基づいて構築された PowerShell モジュールですSDK for .NET。を使用するとAWS Tools for PowerShell、PowerShell コマンドラインからAWSリソースに対するオペレーションをスクリプト化できます。

AWS CloudShellは、 のモジュール化されたバージョン (AWS.Tools) をプリインストールしますAWS Tools for PowerShell。

詳細については、「AWS Tools for PowerShellユーザーガイド」の「AWS Tools for PowerShell の使用」を参照してください。

pwsh --Command 'Get-AWSPowerShellVersion'

ランタイムおよび AWS SDK: Node.js および Python 3

ランタイムおよび AWS SDK
名前 説明 バージョン情報

Node.js (npm 付き)

Node.js は、非同期プログラミング手法を簡単に適用できるように設計された JavaScript ランタイムです。詳細については、「Node.js の公式サイトのドキュメント」を参照してください。

npm は JavaScript モジュールのオンラインレジストリへのアクセスを提供するパッケージマネージャーです。詳細については、「公式 npm サイトのドキュメント」を参照してください。

  • Node.js: node --version

  • npm: npm --version

SDK for JavaScript in Node.js

Software Development Kit (SDK )を使用すると、Amazon S3、Amazon EC2、DynamoDB、および Amazon SWF などの AWS のサービスに JavaScript オブジェクトを提供することで、コーディングを簡素化できます。詳細については、AWS SDK for JavaScriptデベロッパーガイドを参照してください。

npm -g ls --depth 0 2>/dev/null | grep aws-sdk

Python

Python 3 はシェル環境で使用可能になりました。Python 3 は現在、プログラミング言語のデフォルトバージョンと見なされています (Python 2 のサポートは 2020 年 1 月に終了しました)。詳細については、「Python 公式サイトのドキュメント」を参照してください。

また、Python のパッケージインストーラである pip がプリインストールされています。このコマンドラインプログラムを使用して、Python パッケージインデックスなどのオンラインインデックスから Python パッケージをインストールできます。詳細については、Python Packaging Authority が提供するドキュメントを参照してください。

  • Python 3: python3 --version

  • pip: pip3 --version

SDK for Python (Boto3)

Boto は、Amazon EC2 や Amazon S3 などAWS のサービス、Python 開発者が作成、設定、管理するために使用するソフトウェア開発キット (SDK) です。 Amazon S3 SDK は、easy-to-useオブジェクト指向 API と、 への低レベルのアクセスを提供しますAWS のサービス。

詳細については、Boto3 ドキュメントを参照してください。

pip3 list | grep boto3

開発ツールおよびシェルユーティリティ

開発ツールおよびシェルユーティリティ
名前 説明 バージョン情報

bash-completion

bash-completion は、Tab キーを押して部分的に入力されたコマンドまたは引数の残りの自動入力を可能にするシェル機能の集まりです。/usr/share/bash-completion/completions で bash-completion がサポートするパッケージを見つけることができます。

パッケージのコマンドの自動入力を設定するには、プログラムファイルをソースにする必要があります。たとえば、Git コマンドのオートコンプリートを設定するには、次の行を に追加して.bashrc、AWS CloudShellセッションが開始されるたびにこの機能を使用できるようにします。

source /usr/share/bash-completion/completions/git

カスタム補完スクリプトを使用したい場合、それらを永続的なホームディレクトリ ($HOME) に追加して、.bashrc 内で直接ソースとします。

詳細については、GitHub でプロジェクトの README ページを参照してください。

dnf info bash-completion

cqlsh-expansion cqlsh-expansion は、Apache Cassandra との完全な互換性を維持し、Amazon Keyspaces 用に事前設定された cqlsh とヘルパーを含むツールキットです。詳細については、「Amazon Keyspaces (Apache Cassandra 向け) 開発者ガイド」の「cqlsh を使用して Amazon Keyspaces に接続する」を参照してください。

cqlsh-expansion --version

Docker

Docker は、アプリケーションを開発、出荷、実行するためのオープンプラットフォームです。Docker を使用すると、アプリケーションをインフラストラクチャから分離できるため、ソフトウェアを迅速に配信できます。これにより、内部に Dockerfiles を構築しAWS CloudShell、CDK を使用して Docker アセットを構築できます。Docker でサポートされているAWSリージョンについては、「サポートされているAWSリージョンAWS CloudShell」を参照してください。環境内における Docker のスペースは限られていることに注意してください。個々のイメージが大きい場合や、既存の Docker イメージが多すぎる場合は、問題が発生する可能性があります。Docker の詳細については、Docker ドキュメントのガイドを参照してください。

docker --version

Git

Git は、ブランチワークフローおよびコンテンツのステージングを介して、最新のソフトウェア開発プラクティスをサポートする分散バージョン管理システムです。詳細については、Git の公式サイトのドキュメントページを参照してください。

git --version

iputils

iputils パッケージには Linux ネットワーク用のユーティリティが含まれています。提供されるユーティリティの詳細については、「GitHub の iputils リポジトリ」を参照してください。

iputils ツールの例: arping -V

jq jq ユーティリティは JSON 形式のデータを解析して、コマンドラインフィルタによって変更された出力を生成します。詳細については、GitHub でホストされている jq マニュアルを参照してください。

jq --version

kubectl

kubectl は、Kubernetes API を使用して Kubernetes クラスターのコントロールプレーンと通信するためのコマンドラインツールです。

kubectl --version

make

make ユーティリティは makefiles を使用して、一連のタスクを自動化し、コードのコンパイルを整理します。詳細については、GNU Make のドキュメントを参照してください。

make --version

man

man コマンドは、コマンドラインユーティリティおよびツールのマニュアルページを提供します。例えば、man ls はディレクトリの内容を一覧表示する ls コマンドのマニュアルページを返します。詳細については、マンページの「Wikipedia エントリ」を参照してください。

man --version

nano nano は、テキストベースのインターフェース用の小さくて使いやすいエディターです。詳細については、「GNU nano ドキュメント」を参照してください。

nano --version

OpenJDK 21

Amazon Corretto 21 は、OpenJDK 21 の長期サポート (LTS) ディストリビューションです。Amazon Corretto は、Open Java Development Kit (OpenJDK) の、マルチプラットフォーム対応の本番稼働可能な、無償ディストリビューションです。詳細については、「Corretto 21 ユーザーガイド」の「Amazon Corretto 21 とは」を参照してください。

java -version

procps

procps は、現在実行中のプロセスをモニタリングおよび停止するために使用できるシステム管理ユーティリティです。詳細については、procps で実行できるプログラムをリストする README ファイルを参照してください。

ps --version

psql

PostgreSQL は、複雑なデータオペレーションを安全に管理およびスケーリングするための堅牢な機能を提供しながら、標準の SQL 機能を使用する強力なオープンソースデータベースシステムです。詳細については「PostgreSQL とは」を参照してください。

psql --version

SSH クライアント

SSH クライアントは、リモートコンピュータとの暗号化通信にセキュアシェルプロトコルを使用します。OpenSSH は、プリインストールされている SSH クライアントです。詳細については、OpenBSD によって維持される OpenSSH サイトを参照してください。

ssh -V

sudo

sudo ユーティリティを使用すると、ユーザーは別のユーザー (通常はスーパーユーザー) のセキュリティ許可でプログラムを実行できます。Sudo は、システム管理者としてアプリケーションをインストールする必要がある場合に便利です。詳細については、「Sudo マニュアル」を参照してください。

sudo --version

tar

tar は、複数のファイルを単一のアーカイブファイル (tarball と呼ばれることが多い) にグループ化するために使用できるコマンドラインユーティリティです。詳細については、GNU tar ドキュメントを参照してください。

tar --version

tmux

tmux は、複数のWindowsで異なるプログラムを同時に実行するために使用できるターミナルマルチプレクサです。詳細については、tmux の簡潔な紹介を提供するブログを参照してください。

tmux -V

vim

vim は、テキストベースのインターフェースを介して対話的な操作を可能にするカスタマイズ可能なエディタです。詳細については、vim.org で提供されるドキュメントリソースを参照してください。

vim --version

wget

wget は、コマンドラインでエンドポイントによって指定された ウェブ サーバーからコンテンツを取得するために使用されるコンピュータプログラムです。詳細については、GNU Wgetドキュメントを参照してください。

wget --version

zip/enzip

zip/unzip ユーティリティは、データを失うことなくロスレスデータ圧縮を実現するアーカイブファイル形式を使用します。zip コマンドを呼び出して、単一のアーカイブ内のファイルをグループ化して圧縮します。unzip を使用して、アーカイブから指定したディレクトリにファイルを抽出します。

unzip --version

zip --version

ホームディレクトリAWS CLIへの のインストール

CloudShell 環境にプリインストールされている他のソフトウェアと同様に、AWS CLI ツールは、スケジュールされたアップグレードとセキュリティパッチで自動的に更新されます。のup-to-dateであることを確認する場合はAWS CLI、シェルのホームディレクトリにツールを手動でインストールすることを選択できます。

重要

CloudShell セッションを次回開始するときに使用できるように、 のコピーをホームディレクトリAWS CLIに手動でインストールする必要があります。このインストールが必要なのは、$HOME の外部のディレクトリに追加されたファイルが、シェルセッションが終了すると削除されるためです。また、この のコピーをインストールした後はAWS CLI、自動的には更新されません。つまり、アップデートおよびセキュリティパッチを管理するのはユーザーの責任です。

バージョン間の変更を確認するには、AWS CLI「変更ログ」を参照してください。

責任AWS共有モデルの詳細については、「」を参照してくださいでのデータ保護AWS CloudShell

をインストールするにはAWS CLI
  1. CloudShell コマンドラインで、 curl コマンドを使用して、AWS CLIインストールされた の圧縮されたコピーをシェルに転送します。

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  2. zip フォルダを解凍します。

    unzip awscliv2.zip
  3. 指定したフォルダにツールを追加するには、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
  4. また、独自の便宜のために、aws コマンド実行時にツールのインストールへのパスを指定する必要がないように、PATH 環境変数を更新することもお勧めします。

    export PATH=/home/cloudshell-user/usr/local/bin:$PATH
    注記

    この変更を に元に戻すとPATH、指定されたパスを持たないawsコマンドは、AWS CLIデフォルトで のプリインストール済みバージョンを使用します。

ホームディレクトリAWS Tools for PowerShellへの のインストール

CloudShell 環境にプリインストールされている他のソフトウェアと同様に、AWS Tools for PowerShellモジュールはスケジュールされたアップグレードとセキュリティパッチで自動的に更新されます。のup-to-dateであることを確認する場合はAWS Tools for PowerShell、シェルのホームディレクトリにモジュールを手動でインストールすることを選択できます。

重要

CloudShell セッションを次回開始するときに使用できるように、 のコピーをホームディレクトリAWS Tools for PowerShellに手動でインストールする必要があります。このインストールが必要なのは、$HOME の外部のディレクトリに追加されたファイルが、シェルセッションが終了すると削除されるためです。また、この のコピーをインストールした後はAWS Tools for PowerShell、自動的には更新されません。つまり、アップデートおよびセキュリティパッチを管理するのはユーザーの責任です。

バージョン間の変更を確認するには、AWS Tools for PowerShell「変更ログ」を参照してください。

責任AWS共有モデルの詳細については、「」を参照してくださいでのデータ保護AWS CloudShell

をインストールするにはAWS Tools for PowerShell
  1. 開始する前に、 を実行してアクティブな PowerShell セッションをすべて終了しますexit。これらのコマンドは、デフォルトの Bash シェルから実行する必要があります。PowerShell セッションからそれらを実行すると、構文エラーが発生したり、アクティブなセッションによってロックされている場合にモジュールが更新されない可能性があります。

  2. curl コマンドを使用して、AWS Tools for PowerShellモジュールの圧縮されたコピーをダウンロードします。

    curl -sf -o AWS.Tools.zip "https://sdk-for-net.amazonwebservices.com/ps/v5/latest/AWS.Tools.zip" || echo "Download failed"
  3. PowerShell モジュールディレクトリから既存の AWS.Tools モジュールを削除します。

    find "/home/cloudshell-user/.local/share/powershell/Modules" -maxdepth 1 -type d -name "AWS.Tools.*" -exec rm -rf {} +
  4. モジュールを PowerShell モジュールディレクトリに解凍します。

    unzip -q -o AWS.Tools.zip -d "/home/cloudshell-user/.local/share/powershell/Modules"
  5. ダウンロードした zip ファイルを削除します。

    rm -f AWS.Tools.zip
  6. PowerShell を起動し、インストールを確認します。

    pwsh

    次に、インストールされているバージョンを確認します。

    Get-AWSPowerShellVersion

ホームディレクトリAWS Tools for PowerShellから を削除するには、PowerShell を終了し、次のコマンドを実行します。

find "/home/cloudshell-user/.local/share/powershell/Modules" -maxdepth 1 -type d -name "AWS.Tools.*" -exec rm -rf {} +

シェル環境へのサードパーティーソフトウェアのインストール

注記

サードパーティーアプリケーションを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 スクリプトを変更します。

  1. テキストエディタ (例:Vim) を使用して、.bashrc を開きます。

    vim .bashrc
  2. エディタインターフェースで、I キーを押して編集を開始し、次に以下を追加します。

    zsh
  3. .bashrc ファイルを終了して保存するには、Esc を押して Vim コマンドモードを入力後、以下を入力します。

    :wq

  4. source コマンドを使用して .bashrc ファイルを再ロードする:

    source .bashrc

    コマンドラインインターフェイスが再び使用可能になると、プロンプトシンボルが % に変化して、Z シェルを使用していることを示します。