Cloud9 IDEを開くと「Your AWS Cloud9 environment failed to install recommended updates: tmux, ncurses, and libevent. 」エラーが発生する

Cloud9 IDEを開いた時に上記エラーが発生した場合の対処法をご紹介します。
2023.12.27

困っていたこと

Cloud9 IDEを開くと、毎回以下のエラーが発生します。

Your AWS Cloud9 environment failed to install recommended updates: tmux, ncurses, and libevent. This may be caused by disk space, network, or permissions issues. If the updates continue to fail, we recommend that you create a new environment to stay up to date with the latest AWS Cloud9 features and security patches, or to update them manually. You Can report any feedback by choosing Support > Submit Feedbak.

ディスクスペースやネットワークに問題がないか確認しましたが、特に問題はなさそうです。

どうすればいいのか

上記のエラーは、Cloud9環境からAWSが所有するS3バケットに疎通が取れない場合に発生します。
Cloud9 環境は、AWSが所持するS3バケットから、IDEを最新の状態に保つために必要な依存関係をダウンロードしています。

S3バケットは各リージョンに配置されています。

例えば、東京リージョンのバケット名は2023年12月現在以下になります。

static-ap-northeast-1-prod-static-4fwvbdisquj8  

参考ドキュメント1を参照して、Cloud9の対象リージョンに対応したS3バケットを確認し、Pingなどのコマンドで疎通性を確認してください。

【コマンド例】

ping {bucket_name}.s3.{region}.amazonaws.com.

  

疎通が確認できず、プロキシを利用している場合

Cloud9 環境がプロキシ等を使用してインターネットにアクセスしている場合には、プロキシの設定を行います。

次のコードを環境の ~/.bashrc ファイルに追加することでプロキシの詳細を AWS Cloud9 に提供します。2

export http_proxy=[proxy url for http]
export https_proxy=[proxy url for https]
#Certificate Authority used by your proxy
export NODE_EXTRA_CA_CERTS=[path_to_pem_certificate]

  

疎通が確認できず、プロキシを利用していない場合

S3のエンドポイントを作成します。1

【手順】

1.Amazon VPC のコンソールページを開く

2.[エンドポイント] を選択、[エンドポイント作成]を選択

3.エンドポイントの作成ページで、[サービス]検索フィールドに「S3」と入力し、Amazon S3 エンドポイントのリストからゲートウェイタイプを選択

4.[VPC]では対象環境のEC2 インスタンスが含まれている VPC を選択

5.VPC のルートテーブルを選択する。

6.ポリシーセクションで、カスタムオプションを選択し、以下のポリシーを貼り付ける

{
  "Version": "2008-10-17",
  "Statement": [
      {
          "Sid": "Access-to-C9-bucket-only",
          "Effect": "Allow",
          "Principal": "*",
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::{bucket_name}/content/dependencies/*"
      }
  ]
}

※{bucket_name} は対象リージョンのバケットの名前に置き換えてください

7.[エンドポイントの作成] を選択

8.作成後、pingコマンドでIDEとS3エンドポイントの接続を確認

ping {bucket_name}.s3.{region}.amazonaws.com.

  

参考