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

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

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

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

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

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

  • 1 vCPU (仮想 CPU)

  • 2 GiB RAM

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

  • 1 GB の永続的ストレージ (セッション終了後もストレージは保持されます)

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

重要

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

CloudShell ネットワーク要件

ウェブソケット

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

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

注記

特定の 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)

リージョンは、米国東部 (オハイオ)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 は、.NET オブジェクトを受信して返す、cmdlets呼び出される軽量コマンドを使用します。

(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-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 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 Node.js

このソフトウェア開発キット (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 デベロッパーが EC2 や 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

CodeCommit Git 用ユーティリティ

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

詳細については、『AWS CodeCommitユーザーガイド』の「AWS CodeCommitwith git-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

zip/unzip を参照
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 責任共有モデルの詳細については、「AWS CloudShell でのデータ保護」を参照してください。

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

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

ホームディレクトリの削除

警告

ホームディレクトリを削除することは、ホームディレクトリに保存されているすべてのデータが完全に削除されるという不可逆的なアクションです。ただし、次のような場合には、このオプションを考慮してもよいでしょう。

  • ファイルを誤って変更したため、AWS CloudShell コンピューティング環境にアクセスできない。ホームディレクトリを削除すると、AWS CloudShell がデフォルト設定に戻ります。

  • AWS CloudShell からすべてのデータをすぐに削除してください。なお、AWS CloudShell の使用を AWS リージョンでやめた場合、そのリージョンで AWS CloudShell を再起動しない限り、永続的ストレージは保持期間の終了時に自動的に削除されます。

ファイルに長期ストレージが必要な場合は、Amazon S3 やなどのサービスを検討してください CodeCommit。

ホームディレクトリを削除して AWS CloudShell リセットするには

  1. CloudShell インターフェイスで、[アクション]、[AWS CloudShellホームディレクトリの削除] を選択します。

  2. [Delete] (削除) オプションをアクティベートするには、ダイアログボックスで、「delete」と入力してください。

    
      [Delete home directory] (ホームディレクトリの削除) ボタンをアクティブにする。
  3. [Delete] (削除) を選択します。

    デフォルト設定で新しい AWS CloudShell コンピューティング環境が作成され、起動します。削除を確認するには、ls コマンドをホームディレクトリで実行します。