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 プロトコルによって異なります。これにより、 CloudShell AWSユーザーのウェブブラウザとクラウド内のサービスとの間で双方向のインタラクティブ通信が可能になります。プライベートネットワークでブラウザを使用している場合は、プロキシサーバーとファイアウォールによってインターネットへの安全なアクセスが容易になると考えられます。 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 ManagerAPI StartSessionリファレンスのオペレーションを参照してください

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

注記

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

シェル

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

Bash

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

bash --version

PowerShell (pwsh)

コマンドラインインターフェイスとスクリプト言語サポートを提供し、Microsoft の.NET PowerShell コマンド言語ランタイムをベースに構築されています。 PowerShell .NET オブジェクトを受け入れたり返したりする、cmdletsという軽量コマンドを使用します。

pwsh --version

Zシェル (zsh)

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

zsh --version

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

CLI
名前 説明 [Version information]

AWS CDK ツールキット CLI

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

詳細については、「AWS CDKツールキット」を参照してください。

cdk --version

AWS CLI

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

up-to-date AWS CLIほとんどのバージョン 2 を使用していることを確認する方法については、を参照してくださいAWS CLI をホームディレクトリにインストールする

aws --version

EB CLI

EB CLI は AWS Elastic Beanstalk のコマンドラインインターフェイスで、ローカルリポジトリからの環境作成、更新、およびモニタリングを簡素化するインタラクティブなコマンドを提供します。

詳細については、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 Cloud にデプロイするなどがあります。

詳細については、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、AWS PowerShell コマンドラインからリソースに対する操作をスクリプト化できます。

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

詳細については、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

Node.js JavaScript 内の SDK

ソフトウェア開発キット (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) です。SDK はオブジェクト指向の API だけでなく、への低レベルアクセスも提供します。 easy-to-use AWS のサービス

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

pip3 list | grep boto3

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

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

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 内で直接ソースとします。

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

dnf info bash-completion

CodeCommit Git 用ユーティリティ

git-remote-codecommit は、Git CodeCommit を拡張してリポジトリからコードをプッシュしたりプルしたりする簡単な方法を提供するユーティリティです。これは、フェデレーティッドアクセス、アイデンティープロバイダー、および一時的な認証情報を使用した接続をサポートするために推奨される方法です。

詳細については、『ユーザーガイド』の「AWS CodeCommitwith git-remote-codecommit への HTTPS 接続の設定手順」を参照してください。AWS CodeCommit

pip3 list | grep git-remote-codecommit

Git

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

git --version

iputils

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

iputils ツールの例: arping -V

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

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 を使用すると、アプリケーションをインフラストラクチャーから切り離すことができるため、ソフトウェアを迅速に提供できます。これにより、内部で Dockerfile を構築しAWS CloudShell、CDK を使用して Docker アセットを構築できます。Docker でどのリージョンがサポートされているかについては、「Docker リージョン」を参照してください。Docker には環境内のスペースが限られていることに注意する必要があります。個別のイメージが大きかったり、既存の Docker イメージが多すぎたりすると、問題が発生する可能性があります。Docker について詳しくは、『Docker ドキュメンテーションガイド』を参照してください。

docker --version

AWS CLI をホームディレクトリにインストールする

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

重要

AWS CLIのコピーをホームディレクトリに手動でインストールして、 CloudShell 次回セッションを開始したときに利用できるようにする必要があります。このインストールが必要なのは、$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 パッケージ管理ユーティリティーと併用してインストールするとcowsaysudoメッセージ付きの牛の ASCII アート画像が生成されます。

sudo dnf install cowsay

次に、echo "Welcome to AWS CloudShell" | cowsay を入力して、新しくインストールしたプログラムを起動できます。

重要

dnf インストールプログラムなどのPackage /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 シェルを使用していることを示します。