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

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

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

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

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

各 AWS CloudShell コンピューティング環境には、次の CPUとメモリリソースが割り当てられます。

  • 1 vCPU (仮想中央処理ユニット)

  • 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 セッションURLが入力と出力の受信のための WebSocket 接続を開くために使用する の一部を追加できます。( 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 を表します。

session-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 は、Microsoft の 上に構築されています。NET コマンド言語 Runtime. は、.NET オブジェクトを受け入れて返cmdletsす という軽量コマンド PowerShell を使用します。

pwsh --version

Zシェル (zsh)

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

zsh --version

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

CLI
名前 説明 [Version information]

AWS CDK ツールキット CLI

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

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

cdk --version

AWS CLI

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

up-to-date バージョン 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「 ツールの使用 PowerShell」を参照してください。

pwsh --Command ' Get-Module -ListAvailable -Name AWS.Tools.Common'

ランタイムと AWS SDKs: Node.js と Python 3

ランタイムと AWS SDKs
名前 説明 [Version information]

Node.js (npm 付き)

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

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

  • Node.js: node --version

  • npm: npm --version

SDK Node.js JavaScript での の

ソフトウェア開発キット (SDK) は、Amazon S3、Amazon 、DynamoDB EC2、Amazon などのAWSサービスにオブジェクトを提供すること JavaScriptで、コーディングを簡素化するのに役立ちますSWF。詳細については、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 Python 用 (Boto3)

Boto は、Python デベロッパーが Amazon や Amazon S3 などの を作成、設定 AWS のサービス、管理するために使用するソフトウェア開発キット (SDK) EC2 です。 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 内で直接ソースとします。

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

dnf info bash-completion

CodeCommit Git のユーティリティ

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

詳細については、AWS CodeCommit 「 ユーザーガイド」の AWS CodeCommit 「 とHTTPSの接続のセットアップ手順 git-remote-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。

kubectl --version

make

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

make --version

man

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

man --version

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

nano --version

procps

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

ps --version

SSH クライアント

SSH クライアントは、リモートコンピュータとの暗号化された通信に安全なシェルプロトコルを使用します。OpenSSH は、プリインストールされているSSHクライアントです。詳細については、「OpenSSH 」で管理されている「Open サイト」を参照してくださいBSD。

ssh -V

sudo

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

sudo --version

tar

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

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、 を使用して Docker アセットを構築できますCDK。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 インストールされた の圧縮コピーをシェルに転送します。

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