翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トラブルシューティング AWS CloudShell
の使用中に AWS CloudShell、シェルコマンドラインインターフェイスを使用してキータスクを起動 CloudShell または実行する場合など、問題が発生する可能性があります。この章では、可能性のある一般的ないくつかの問題のトラブルシューティング方法を紹介します。
に関するさまざまな質問に対する回答については CloudShell、「」を参照してくださいAWS CloudShell FAQs
エラーのトラブルシューティング
以下に挙げるインデックスに関するエラーが発生した場合、解決のために次の解決方法を使用することができますす。
トピック
- エラー:「環境を起動できません。再試行するには、ブラウザを更新するか、「アクション」、「再起動」を選択して再起動 AWS CloudShell します。
- エラー:「環境を起動できません。必要なアクセス許可がありません。IAM 管理者に AWS CloudShell「」へのアクセス権を付与するよう依頼します。
- AWS CloudShell コマンドラインにアクセスできない
- 外部 IP アドレスに ping できません
- ターミナルの準備中に問題が発生しました
- で矢印キーが正しく機能しない PowerShell
- サポートされていないウェブソケットはセッションの開始に失敗する CloudShell
- AWSPowerShell.NetCore モジュールをインポートできない。
- の使用時に Docker が実行されない AWS CloudShell
- Docker のディスク容量が不足しました
- docker push はタイムアウトし、再試行し続けます
- 環境VPC AWS CloudShell VPCから 内のリソースにアクセスできない
- ENI がVPC環境 AWS CloudShell に使用する はクリーンアップされません
- VPC 環境のみのアクセスCreateEnvironment許可を持つユーザーは、パブリック AWS CloudShell 環境にもアクセスできます。
エラー:「環境を起動できません。再試行するには、ブラウザを更新するか、「アクション」、「再起動」を選択して再起動 AWS CloudShell します。
問題: AWS CloudShell から を起動しようとすると AWS Management Console、IAM管理者から必要なアクセス許可があり、ブラウザを更新または を再起動した後でも、アクセスが拒否されます CloudShell。
解決策:AWS サポート部
(先頭に戻ります)
エラー:「環境を起動できません。必要なアクセス許可がありません。IAM 管理者に AWS CloudShell「」へのアクセス権を付与するよう依頼します。
問題: AWS CloudShell から を起動しようとすると AWS Management Console、アクセスが拒否され、必要なアクセス許可がないことが通知されます。
原因: アクセスに使用している IAM ID に必要なアクセスIAM許可 AWS CloudShell がありません。
解決策: IAM管理者に、必要なアクセス許可を付与するよう依頼します。これは、アタッチされた AWS 管理ポリシー (AWSCloudShellFullAccess) または埋め込みインラインポリシーを追加することで実行できます。詳細については、「IAM ポリシーによる AWS CloudShell アクセスと使用状況の管理」を参照してください。
(先頭に戻ります)
AWS CloudShell コマンドラインにアクセスできない
問題: コンピューティング環境が使用するファイルを変更した後は、 のコマンドラインにアクセスできません AWS CloudShell。
解決策: .bashrc
やその他のファイルを誤って変更した後にアクセスできなくなった場合は、ホームディレクトリ を削除してデフォルト設定 AWS CloudShell に戻すことができます。
(先頭に戻ります)
外部 IP アドレスに ping できません
問題:コマンドライン ( ping amazon.com
など) から ping コマンドを実行すると、次のメッセージが表示されます。
ping: socket: Operation not permitted
原因 : ping ユーティリティは、Internet Control Message Protocol (ICMP) を使用してエコーリクエストパケットをターゲットホストに送信します。ターゲットからのエコーレスポンスを待ちます。ICMP プロトコルは で有効になっていないため AWS CloudShell、ping ユーティリティはシェルのコンピューティング環境で動作しません。
解決策 : ICMPは でサポートされていないため AWS CloudShell、次のコマンドを実行して Netcat をインストールできます。Netcat は、 TCPまたは を使用してネットワーク接続の読み書きを行うためのコンピュータネットワークユーティリティですUDP。
sudo yum install nc nc -zv www.amazon.com 443
(先頭に戻ります)
ターミナルの準備中に問題が発生しました
問題: Microsoft Edge ブラウザ AWS CloudShell を使用して にアクセスしようとすると、シェルセッションを開始できず、ブラウザにエラーメッセージが表示されます。
原因: Microsoft Edge AWS CloudShell の以前のバージョンと互換性がありません。サポートされているブラウザの最新の 4 つのメジャーバージョン AWS CloudShell を使用して にアクセスできます。
解決策: マイクロソフトのサイト
(先頭に戻ります)
で矢印キーが正しく機能しない PowerShell
問題:通常の操作では、矢印キーを使用してコマンドラインインターフェースを操作したり、コマンド履歴を前後にスキャンすることができますできます。ただし、 PowerShell の の特定のバージョンで矢印キーを押すと AWS CloudShell、文字が誤って出力される可能性があります。
原因: Linux で実行されている PowerShell 7.2.x バージョンでは、矢印キーが文字を誤って出力する状況が既知の問題です。
解決策: 矢印キーの動作を変更するエスケープシーケンスを除外するには、 PowerShell プロファイルファイルを編集し、$PSStyle
変数を に設定しますPlainText
。
-
AWS CloudShell コマンドラインで、次のコマンドを入力してプロファイルファイルを開きます。
vim ~/.config/powershell/Microsoft.PowerShell_profile.ps1
注記
既に を使用している場合は PowerShell、次のコマンドを使用してエディタでプロファイルファイルを開くこともできます。
vim $PROFILE
-
エディターで、ファイルの既存のテキストの末尾に移動し、i を押して挿入モードに入り、次のステートメントを追加します。
$PSStyle.OutputRendering = 'PlainText'
-
編集したら、Esc を押してコマンドモードに入力します。次に、次のコマンドを入力してファイルを保存し、エディタを終了します。
:wq
注記
変更は、次回 を起動したときに有効になります PowerShell。
(先頭に戻ります)
サポートされていないウェブソケットはセッションの開始に失敗する CloudShell
問題: を開始しようとすると AWS CloudShell、 というメッセージが繰り返し表示されますFailed to open sessions : Timed out while opening the session
。
原因: CloudShell はWebSocket プロトコル に依存し、ウェブブラウザと 間の双方向のインタラクティブ通信を可能にします AWS CloudShell。プライベートネットワークでブラウザを使用している場合、インターネットへの安全なアクセスは、プロキシサーバーやファイアウォールによって容易になる可能性があります。 WebSocket 通信は通常、問題なくプロキシサーバーを経由できます。ただし、場合によっては、プロキシサーバーが正しく動作 WebSockets しなくなることがあります。この問題が発生した場合 CloudShell は、シェルセッションを開始できず、最終的に接続がタイムアウトします。
解決策: 接続タイムアウトは、サポートされていない 以外の問題が原因である可能性があります WebSockets。この場合、まず CloudShell コマンドラインインターフェイスがあるブラウザウィンドウを更新します。
更新後もタイムアウトエラーが続く場合は、プロキシサーバーのドキュメントを参照してください。また、プロキシサーバーが Web ソケットを許可するように設定されていることを確認してください。または、ネットワークのシステム管理者に問い合わせてください。
注記
特定の を許可リストに登録して、詳細なアクセス許可を定義するとします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 リージョン のリージョン識別子を表します AWS Systems Manager。例えば、us-east-2
は米国東部 (オハイオ) のリージョン識別子です。
session-id は、特定の Systems Manager セッションが正常に開始された後に作成されるため、URL許可リストを更新するwss://ssmmessages.region.amazonaws.com
ときにのみ指定できます。詳細については、「 AWS Systems Manager APIリファレンス」の「 StartSessionオペレーション」を参照してください。
(先頭に戻ります)
AWSPowerShell.NetCore
モジュールをインポートできない。
問題: PowerShell によって に AWSPowerShellモジュールNetCoreをインポートするとImport-Module -Name AWSPowerShell.NetCore
、次のエラーメッセージが表示されます。
Import-Module: どのモジュールディレクトリにも有効なモジュールファイルが見つからなかったため、指定されたモジュール 'AWSPowerShell.NetCore' はロードされませんでした。
原因: AWSPowerShell.NetCore
モジュールは、 のサービスごとの AWS.Tools モジュールに置き換えられます AWS CloudShell。
解決策: 明示的なインポートステートメントが不要になったり、関連するサービスごとの AWS.Tools モジュールに変更する必要がなくなったりすることがあります。
-
ほとんどの場合、.NET タイプが使用されていない限り、明示的なインポートステートメントは必要ありません。以下は、インポートステートメントの例です。
-
Get-S3Bucket
-
(Get-EC2Instance).Instances
-
-
.NET タイプを使用する場合は、サービスレベルモジュール (
AWS.Tools.<Service>
) をインポートします。構文の例を次に示します。Import-Module -Name AWS.Tools.EC2 $InstanceTag = [Amazon.EC2.Model.Tag]::new("Environment","Dev")
Import-Module -Name AWS.Tools.S3 $LifecycleRule = [Amazon.S3.Model.LifecycleRule]::new()
詳細については、 AWS Tools for PowerShellの バージョン 4 の告知
(先頭に戻ります)
の使用時に Docker が実行されない AWS CloudShell
問題: の使用時に Docker が正しく実行されていません AWS CloudShell。次のエラーメッセージが表示されます: docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
。
解決策: 環境を再起動してみてください。このエラーメッセージは、Docker をサポートしていないリージョン AWS CloudShell で で Docker を実行すると発生する可能性があります。サポートされているリージョンで Docker を実行していることを確認します。 で Docker コンテナの使用をサポートするリージョンについては AWS CloudShell、「Docker リージョン」を参照してください。
Docker のディスク容量が不足しました
問題: というエラーメッセージが表示されていますERROR: failed to solve: failed to register layer: write [...]: no space left on device
。
原因: Dockerfile が で使用可能なディスク容量を超えています AWS CloudShell。これは、個々のイメージが大きいか、既存の Docker イメージが多すぎることが原因である可能性があります。
解決策: df -h
を実行してディスクの使用状況を確認します。sudo du -sh /folder/folder1
を実行して、サイズが大きいと思われる特定のフォルダのサイズを評価し、領域を解放するために他のファイルを削除することを検討してください。1 つのオプションは、 を実行して未使用の Docker イメージを削除することを検討することですdocker rmi
。Docker の環境内の領域は限られていることに注意してください。Docker の詳細については、「Docker ドキュメントガイド
docker push
はタイムアウトし、再試行し続けます
問題: 実行するとタイムアウトdocker push
になり、成功せずに再試行し続けます。
原因: これは、アクセス許可の欠落、間違ったリポジトリへのプッシュ、または認証の欠如が原因で発生する可能性があります。
解決策: この問題を解決するには、正しいリポジトリにプッシュしていることを確認してください。を実行して、適切に認証docker login
します。Amazon ECRリポジトリにプッシュするために必要なすべてのアクセス許可があることを確認します。
環境VPC AWS CloudShell VPCから 内のリソースにアクセスできない
問題: 環境の使用VPC中に 内のリソースにアクセスできない AWS CloudShell VPC。
原因: AWS CloudShell VPC環境は のネットワーク設定を継承しますVPC。
解決策: この問題を解決するには、 VPCリソースにアクセスするために が正しく設定されていることを確認します。詳細については、「 を他のネットワークVPCに接続するVPC」および「」および「Network Access Analyzer ドキュメント」を参照してください。環境が AWS CloudShell VPC使用しているIPv4アドレスは、コマンドラインプロンプトまたはVPCコンソールページで環境`ip -a`内でコマンドを実行することで確認できます。
ENI がVPC環境 AWS CloudShell に使用する はクリーンアップされません
問題: VPC環境の でENI AWS CloudShell 使用されている をクリーンアップできません。
原因: ロールに対して アクセスec2:DeleteNetworkInterface
許可が有効になっていません。
解決策: この問題を解決するには、次のサンプルスクリプトに示すように、ロールに対して アクセスec2:DeleteNetworkInterface
許可が有効になっていることを確認します。
{ "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } }, "Resource": "arn:aws:ec2:*:*:network-interface/*" }
VPC 環境のみのアクセスCreateEnvironment
許可を持つユーザーは、パブリック AWS CloudShell 環境にもアクセスできます。
問題: VPC環境のみのCreateEnvironment
アクセス許可で制限されたユーザーは、パブリック AWS CloudShell 環境にアクセスすることもできます。
原因: VPC環境の作成のみのCreateEnvironment
アクセス許可を制限し、パブリック環境を既に作成している場合は、ウェブユーザーインターフェイスを使用してこの環境が削除されるまで、既存のパブリック CloudShell環境へのアクセスを保持します。ただし、 CloudShell を使用したことがない場合は、パブリック環境にアクセスできません。
解決策: パブリック AWS CloudShell 環境へのアクセスを制限するには、IAM管理者はまず制限でIAMポリシーを更新し、次にウェブ AWS CloudShell ユーザーインターフェイスを使用して既存のパブリック環境を手動で削除する必要があります。(アクション → CloudShell 環境 を削除します)。