Claude Media
Claude CodeをAWS Cloud9で動かすインスタンス要件

Claude CodeをAWS Cloud9で動かすインスタンス要件

AWS Cloud9はサービス終了ではなく、2024年7月に新規受付を終了しました。既存環境でも既定の小さいインスタンスではClaude Codeの4GB以上RAM要件を満たせません。

Claude CodeがAWS Cloud9で重いとき、最初に見るのはメモリ

AWS Cloud9でClaude Codeを動かすなら、最初にインスタンスのメモリを見ます。Claude CodeはRAM 4GB以上を要件にしていますが、Cloud9の標準的な値はそれを下回るためです。

Cloud9のチュートリアルが例示するCLIコマンドは--instance-type t2.microで、RAMは1GiBです。ドキュメントはこの値を「RAMとvCPUが比較的少なく、このチュートリアルには十分」と説明しています。チュートリアルの用途に合わせた大きさです。

数字

Claude Codeの要件とCloud9まわりの標準値

  • Claude Codeの要件

    4GB以上

    システム要件のRAM

  • チュートリアルの例

    1GiB

    t2.microのRAM

  • スワップの例

    512MB

    メモリ不足時の対処として示される大きさ

  • 環境の既定ボリューム

    10GiB

    EBSボリュームの初期サイズ

RAMはGB、GiBの単位を原文のまま表記しています

AWS Cloud9は新規受付を終了済み: 使えるのは既存顧客だけ

「Cloud9はサービス終了か」と聞かれたら、答えはいいえです。サービスは続いていて、止まったのは新規顧客の受け付けだけです。

Cloud9をこれから使い始めるなら、まずこの前提に当たります。AWSは2024年7月25日付で、AWS Cloud9への新規顧客のアクセスを終了しました。

くらべる

Cloud9の利用可否は顧客の区分で分かれる

継続可

すでに使っている顧客

通常どおり利用できます。AWSはセキュリティ・可用性・パフォーマンスの改善を続けるとしていますが、新機能の追加は予定していません。

新規は不可

これから始める顧客

新規のアクセスは2024年7月25日で終了しました。AWSはAWS IDE Toolkits(VS CodeやJetBrains系IDEの拡張)とAWS CloudShellへの移行を案内しています。

CloudShellはAWSマネジメントコンソールから開くブラウザ上のシェルで、AWS CLIが最初から入っています。使用は無料だとAWSのブログが書いています。新しい環境を探している場合は、Claude Platform on AWSでClaude Codeを使う場合のBedrockとの違いも比較材料になります。

Claude Codeのシステム要件とCloud9のOS・インスタンス選択肢

Claude Codeの要件でCloud9に関わるのは、OS、RAM、ネットワークの3つです。OSはUbuntu 20.04以降、Debian 10以降、Alpine Linux 3.19以降などで、ネットワークはインターネット接続が必須です。

Cloud9のEC2環境では、プラットフォームとしてAmazon Linux 2023、Amazon Linux 2、Ubuntu 22.04 LTSの3つから選べます。AWSはコンソール上でAmazon Linux 2023を推奨しています。

ただし、Claude CodeのOS一覧にAmazon Linuxはありません。apt・dnf・apkで入れる方法の対象もDebian、Fedora、RHEL、Alpineで、Amazon Linuxは載っていません。Ubuntu 22.04 LTSなら一覧の「Ubuntu 20.04以降」に収まるので、この記事ではUbuntu 22.04 LTSを前提にします。

インスタンスタイプは、メモリとClaude Codeとの適合で次のように分かれます。

インスタンスタイプvCPUメモリClaude Codeとの適合
t2.micro / t3.microvCPU1〜2メモリ1GiBClaude Codeとの適合要件未達(チュートリアルの例)
t2.medium / t3.mediumvCPU2メモリ4GiBClaude Codeとの適合要件ちょうどで余裕は薄い
t3.large / m5.largevCPU2メモリ8GiBClaude Codeとの適合要件に対して余地がある

Claude CodeはOSやエディタ、依存パッケージと同じインスタンスで動きます。OSやエディタと分け合うので、4GiBちょうどでは余裕が小さくなります。継続して使うなら、8GiB級を選ぶ選択肢があります。

無料利用枠の対象は、アカウントの作成日で変わる

小さいインスタンスは無料利用枠とも重なります。2025年7月15日より前に作ったアカウントでは、対象のインスタンスタイプがt2.microとt3.microだけで、どちらもメモリは1GiBです。

2025年7月15日以降に作ったアカウントでは、対象がt3.micro、t3.small、t4g.micro、t4g.small、c7i-flex.large、m7i-flex.largeに広がります。このうちc7i-flex.largeは4GiB、m7i-flex.largeは8GiBで、Claude Codeの要件を満たします。

つまり、旧方式のアカウントでClaude Codeを動かすには、無料利用枠から外れるt3.medium以上を選ぶことになります。

4GB以上のインスタンスでCloud9環境を作る手順

コンソールとCLIのどちらでも、変えるのはインスタンスタイプとプラットフォームの2点です。

手順

Claude Code向けにCloud9環境を作る

  1. 1

    Instance typeを4GB以上にする

    Create environmentのInstance type欄で、RAM 4GB以上のタイプ(t3.medium以上)を選びます。選択肢の説明は、必要なRAMとvCPUに合わせて選ぶ、という内容です。

  2. 2

    プラットフォームにUbuntu 22.04 LTSを選ぶ

    Claude CodeのOS一覧に合うのはUbuntuです。TimeoutとNetwork settingsは用途に合わせます。

  3. 3

    CLIなら--instance-typeと--image-idを差し替える

    チュートリアルのコマンドはt2.microとAmazon Linux 2のイメージを指定しています。両方を書き換えます。

--image-idのUbuntu 22.04用の値は、APIリファレンスがubuntu-22.04-x86_64として載せています。同じ一覧にあったUbuntu 18.04は、2024年12月16日から選択肢に含まれません。標準サポートが終わっているため、APIリファレンスもUbuntu 22.04を勧めています。

aws cloud9 create-environment-ec2 \
  --name claude-code-env \
  --instance-type t3.medium \
  --image-id resolve:ssm:/aws/service/cloud9/amis/ubuntu-22.04-x86_64 \
  --region ap-northeast-1 \
  --connection-type CONNECT_SSM \
  --subnet-id subnet-xxxxxxxx

--connection-type CONNECT_SSMはチュートリアルと同じ指定で、Systems Manager経由で接続します。リージョンとサブネットIDは自分の環境の値に置き換えてください。

Cloud9のインスタンスにClaude Codeを入れて確認する

インスタンスを作れたら、あとの手順はほかのLinux環境と同じです。インストーラーはインターネットから取得するので、インスタンスから外へ通信できることが前提です。Cloud9のターミナルでネイティブインストーラーを実行します。

curl -fsSL https://claude.ai/install.sh | bash

終わったら新しいターミナルを開き、claude --versionを実行します。v2.1.289で出力は次の1行でした。

2.1.289 (Claude Code)

claudeが見つからないと表示された場合は、インストール先のディレクトリがPATHに含まれていません。ネイティブインストーラーは~/.local/bin/claudeにランチャーを置くので、そこをPATHに加えれば解消します。

動作が重いときの切り分けには、セッションを始めずに診断だけを出すclaude doctorが使えます。v2.1.289のclaude doctor --helpは次のとおりです。

Usage: claude doctor [options]
 
Check the health of your Claude Code installation. Reads settings files in the
current directory without a trust prompt. For a full checkup that can also fix
issues, run /doctor in a session.

特定のバージョンを入れたいときはclaude install [target]を使い、targetにはstable、latest、バージョン番号を渡せます。

ripgrepは通常Claude Codeに含まれるので、Cloud9側で別に入れる必要はありません。検索コマンドが動かないときだけ、ripgrepの有無を個別に見ます。

小さいインスタンスで作ってしまった環境を復旧する

Cloud9のIDEは、メモリやCPUが逼迫すると警告を出します。文言は「This environment is running low on memory」と「This environment has high CPU load」です。複数セッションや共同編集で小さいインスタンス(t2.nano、t2.micro)に負荷がかかると、最小限のコード補完エンジンへ切り替えたというメッセージも出ます。対処は3段階で挙げられています。

最初の手は、動いているプロセスを止めて空きメモリを増やすことです。次がスワップファイルの追加、最後がより大きいインスタンスへの変更です。Claude Codeの要件に届かない小さいタイプで作った環境では、最初の2つでしのぎ切れるとは限りません。

くらべる

メモリ不足からの復旧は2通り

RAMが増える

インスタンスタイプを変える

EC2コンソールでインスタンスを停止し、Actions、Instance Settings、Change Instance Typeの順に選びます。停止中は、自分もメンバーも環境を使えず、AWSは停止から再開までにダウンタイムが出る前提で計画するよう書いています。同じタイプへは変更できないため、RAMの大きいタイプを選びます。

RAMは増えない

スワップファイルを足す

ドキュメントが示すのは512MBのスワップファイルです。RAMそのものは増えず、ディスクの空きを使います。

スワップのコマンドは、ドキュメントでは次のとおりです。/etc/fstabに書くので、再起動後も有効です。

sudo fallocate --length 512MB /var/swapfile && sudo chmod 600 /var/swapfile && \
  sudo mkswap /var/swapfile && \
  echo '/var/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab > /dev/null
sudo swapon /var/swapfile

swaponを実行すると、再起動を待たずにすぐ使えるようになります。使われているかどうかはtopで見られます。Swap:の行に0でない値が出ていれば有効です。

1GiBのインスタンスに512MBを足しても、Claude Codeの4GB要件には届きません。ディスクを介するぶん速度も落ちるため、スワップは一時的な補いとして使い、長く使うならタイプ変更に切り替える流れになります。

AWS Cloud9でよくあるつまずき

  • 環境を作れない: 新規顧客のアクセスは2024年7月25日で終了しています。既存顧客の範囲を、アカウント単位と組織単位のどちらで見るかは、ブログとユーザーガイドに書かれていません。判断が付かない場合の問い合わせ先はAWSサポートです
  • アカウントを作り直せば使えるか: 作り直しで通るかどうかは、ブログにもユーザーガイドにも書かれていません。無料利用枠の条件は、アカウントの作成日で変わります。Cloud9を使うこと自体は、新規顧客の区分に当たるかどうかで決まります。判断が付かない場合はAWSサポートに問い合わせてください
  • プライベートサブネットだとインターネットに出られない: ユーザーガイドは、プライベートサブネットにはNATゲートウェイが必要だと書いています。Claude Codeはインターネット接続が要件なので、NATゲートウェイがなければ起動後に通信が通りません
  • 一時的なマネージド認証情報が使えない: サブネットの説明のなかに、AWSの一時的なマネージド認証情報はIAMユーザーなどの代理としては使えない、という注意書きがあります。Bedrock経由で認証する構成なら、認証エラーの原因を切り分ける材料になります。固定のBedrock認証情報を使いたいときは、AWS_BEARER_TOKEN_BEDROCKとはで扱う環境変数があります。切り分けは「AWS default-chain credential resolve timed out」の対処とAWS authentication failedの原因と対処にあります
  • ディスクが先に埋まる: 環境のボリュームは既定で10GiBです。node_modulesやビルド成果物が増えると、RAMより先にディスクが足りなくなります。ボリュームの拡張手順は、環境の移動と同じドキュメントページにあります

まとめ

Cloud9でClaude Codeを動かせるのは、すでにCloud9を使っている顧客だけです。そのうえで、インスタンスはt3.medium以上、プラットフォームはUbuntu 22.04 LTSにそろえると、Claude Codeの要件と合います。小さいタイプで作った環境は、タイプ変更を先に考えるほうが筋が通ります。

参照した一次ソース

この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。

  1. code.claude.com/docs/en/setup
  2. docs.aws.amazon.com/cloud9/latest/user-guide/create-environment-main.html
  3. docs.aws.amazon.com/cloud9/latest/user-guide/tutorials-basic.html
  4. docs.aws.amazon.com/cloud9/latest/user-guide/move-environment.html
  5. docs.aws.amazon.com/cloud9/latest/user-guide/troubleshooting.html
  6. docs.aws.amazon.com/cloud9/latest/APIReference/API_CreateEnvironmentEC2.html
  7. aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-too…
  8. docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-free-tier-usage.html
  9. docs.aws.amazon.com/ec2/latest/instancetypes/gp.html
  10. docs.aws.amazon.com/ec2/latest/instancetypes/co.html
この記事を共有:XはてブLinkedIn