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 など) を入力します。

シェル

プレインストールされたシェル
名前 説明 [Version information]

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
名前 説明 [Version information]

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 モジュールです AWS 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-Module -ListAvailable -Name AWS.Tools.Common'

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

ランタイムおよび AWS SDK
名前 説明 [Version information]

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 は、Python デベロッパーが Amazon EC2 や Amazon S3 などの作成、設定 AWS のサービス、管理に使用する Software Development Kit (SDK) です。 Amazon S3 SDK は、easy-to-useオブジェクト指向 API と、 への低レベルアクセスを提供します AWS のサービス。

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

pip3 list | grep boto3

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

開発ツールおよびシェルユーティリティ
名前 説明 [Version information]

bash-completion

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

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

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

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

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

dnf info bash-completion

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

procps

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

ps --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

unzip

詳細については、「zip/unzip」を参照してください。
vim

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

vim --version

wget

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

wget --version

zip/enzip

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

unzip --version

zip --version

Docker

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

docker --version

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

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

重要

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

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

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

    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 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 シェルを使用していることを示します。