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

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

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

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

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

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

  • 1 vCPU (仮想 CPU)

  • 2 GiB RAM

また、環境は次のストレージ構成でプロビジョニングされます。

  • 1 GiB RAM (セッション終了後もストレージは保持されます)

詳細については、「永続的ストレージ」を参照してください。

重要

現在、AWS CloudShell コンピューティング環境は Docker コンテナをサポートしていません。

CloudShellネットワーク要件

WebSockets

CloudShellWebSocketプロトコルによって異なります。これにより、CloudShellAWSユーザーのウェブブラウザとクラウド内のサービス間の双方向のインタラクティブ通信が可能になります。プライベートネットワークでブラウザを使用している場合、インターネットへの安全なアクセスは、おそらくプロキシサーバーとファイアウォールによって促進されます。WebSocket通信は通常、問題なくプロキシサーバーを通過できます。しかし、場合によっては、WebSocketsプロキシサーバーが正しく動作しなくなることがあります。この問題が発生すると、CloudShellFailed to open sessions : Timed out while opening the sessionインターフェイスから次のエラーが報告されます。

このエラーが繰り返し発生する場合は、プロキシサーバーのマニュアルを参照して、許可するように設定されていることを確認してくださいWebSockets。または、ネットワークのシステム管理者に問い合わせてください。

注記

特定の URL を許可リストに追加して権限を細かく定義したい場合は、AWS Systems ManagerWebSocketセッションが接続を開いて入出力を送受信するために使用する URL の一部を追加できます。(AWS CloudShellコマンドはその Systems Manager セッションに送信されます)。

Systems ManagerStreamUrl が使用するこの形式はですwss://ssmmessages.region.amazonaws.com/v1/data-channel/session-id?stream=(input|output)

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

セッション ID は特定の Systems Manager セッションが正常に開始された後に作成されるため、指定できるのは URLwss://ssmmessages.region.amazonaws.com 許可リストを更新するときだけです。詳細については、AWS Systems ManagerAPI StartSessionリファレンスの操作を参照してください

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

注記

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

シェル

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

Bash

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

bash --version

PowerShell

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

(Get-Host).Version

Zシェル (zsh)

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

zsh --version

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

CLI
名前 説明 [Version information]

AWS CLI

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

最新バージョンであるup-to-dateAWS 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は、PowerShellAWS SDK for .NETから公開されている機能に基づいて構築されたモジュールです。を使用するとAWS Tools for PowerShell、AWSPowerShellコマンドラインからリソースの操作をスクリプト化できます。

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

詳細については、AWS Tools for PowerShellユーザーガイドの「AWS ツールの使用」を参照してください。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.jsJavaScript 内の SDK for

ソフトウェア開発キット (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 2 はどちらもシェル環境で使用できます。Python 3 は現在、プログラミング言語のデフォルトバージョンと見なされています (Python 2 のサポートは 2020 年 1 月に終了しました)。詳細については、「Python 公式サイトのドキュメント」を参照してください。

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

  • Python 2: python --version

  • Python 3: python3 --version

  • pip: pip3 --version

SDK for Python (Boto3)

Boto は Python デベロッパーが Amazon EC2 や Amazon S3 などを作成、設定AWS のサービス、管理するために使用するソフトウェア開発キット (SDK) です。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 コマンドの自動入力を設定するには、次の行を .bashrc に追加して、AWS CloudShell セッションの開始時にいつでもこの機能を利用できるようにします。

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

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

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

yum info bash-completion

CodeCommitGit 用ユーティリティ

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

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

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

make

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

make --version

man

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

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

詳細については、「圧縮/解凍」を参照してください。
vim

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

vim --version

wget

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

wget --version

zip/enzip

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

unzip --version

zip --version

kubectl

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

kubectl --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 コマンドを使用できます。例えば、YUM パッケージ管理ユーティリティで sudo を使用して、GNU nano テキストエディタをインストールすることができます。

sudo yum install nano

次に、nano を入力して、新しくインストールしたプログラムを起動できます。

重要

yum などのパッケージ管理ユーティリティは、プログラムをディレクトリ (/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 シェルを使用していることを示します。