Cloud9 IDEを開くと「Your AWS Cloud9 environment failed to install recommended updates: tmux, ncurses, and libevent. 」エラーが発生する
困っていたこと
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.