Cloud9を繋ごうとしたら「This is taking longer than expected. The delay may be coused by high CPU…」となった時の対処法

アイキャッチ画像

・Cloud9のステータスが「接続中」のまま繋がらない
・Cloud9のポリシーの設定

AWSコンテナ設計・構築[本格]入門を参考にCloud9を設定していたところ、下記の画面が表示され「Connecting…」の画面から切り替わらなくなりました。

Cloud9接続画面

今回の記事では、こちらの事象の原因と対処法を紹介します。

原因 SSM Session Managerの権限が付与されていない。

Cloud9はEC2にSSM Session Manager (またはSSH)を使ってアクセスしていますが、

この時、EC2側にSSMへのアクセス権を付与していないと、Cloud9で開発環境のEC2にアクセスできないようです。

IAMロールの変更を行った際に、ポリシーにSSMへの接続権限がなかったために今回の事象が起こったようですね。

対処法

AWSCloud9SSMInstanceProfileポリシーをロールにアタッチしても良いのですが、

管理のためSSM権限とECR権限を持つCloud9用のポリシーを作成して

作成したポリシーをもとにIAMロールを作成・アタッチしたいと思います。

IAMポリシーの作成

最初にSSM権限を含むポリシーを作成します。

AWSマネジメントコンソールへログインし「IAM」のダッシュボードへ移動します。

左側のメニューより「ポリシー」を選択し「ポリシーを作成」をクリック。

IAMポリシー作成画面

ダブより「JSON」を選び「ポリシーエディタには下記のポリシーを追記。({YOUR_ACCOUNT_IDには自分のIDアカウントの数字を入力してください({}は不要)})

全て完了したら「次へ」をクリック。

IAMポリシー画面

IAMポリシーに下記のコードを追記

        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel",
                "ssm:UpdateInstanceInformation"
            ],
            "Resource": "*"
        }

ポリシー名(任意)と説明を入力して「ポリシーの作成」をクリック

ポリシー確認画面

確認して作成の画面で再確認を行い、問題なさそうであれば「ポリシーの作成」をクリック

〇〇が作成されました。と表示されれば完了です。

ポリシー作成完了画面

ポリシーをもとにIAMロールを作成する

先ほど作成したポリシーをもとにIAMロールを作成していきます。

左側のメニューより「ロール」を選択し「ロールを作成」をクリック

下記のような画面に遷移すると思いますので、イメージ通りにチェックを入れ「次へ」をクリック

ロールを作成画面

許可を追加の画面で先ほど作成したポリシーにチェックを入れ「次へ」をクリック

許可を追加画面

ロール名を任意で入力し後はデフォルトのまま「ロールを作成」をクリック

IAMロール詳細画面

下記のような画面が表示されたら完了です。

ロール作成完了画面

ロールをEC2インスタンスに追加する。

次に作成したロールをEC2にアタッチします。

EC2インスタンスのダッシュボードへ移動し「インスタンス」を選択

Cloud9で作成したEC2にチェックを入れ「アクション」→「セキュリティ」→「ロールを変更」をクリック

IAMロール変更画面

IAMロールを変更で先ほど作成したロールに変更します。

※この時「インスタンスプロファイルをreplaceできませんでした」というエラーが出てもインスタンスを起動すれば問題ありません。インスタンスを停止したままIAMロールを変更するのは下記の記事を参考にしてください。

IAMロール変更
http://43.206.224.155/2023/05/10/%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e3%83%97%e3%83%ad%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92-replace-%e3%81%a7%e3%81%8d%e3%81%be%e3%81%9b%e3%82%93%e3%81%a7%e3%81%97%e3%81%9f/

無事に置き換えが完了しました。

IAMロール置き換え完了画面

確認

IAMロールを変更したので、Cloud9に接続できるかどうか確認してみます。

CLoud9接続確認

無事接続できました。