はじめに
近年、AI技術の進化により、クラウドサービスや開発ツールの組み合わせがますます注目を集めています。
本記事では、AWSの生成AIサービス「Bedrock」を活用し、AIによる開発支援ツール「Cline」をVSCode上で実際に動かすまでの手順や使用感について紹介します。
Clineを動かすまでに多くの課題に直面しましたので、興味がある方、これから試そうとされている方に少しでも参考になれば幸いです。
Clineとは
Cline(クライン)は、主にソフトウェア開発における設計・実装・レビューなどの工程を効率化することを目的とした、生成AIを活用した開発支援ツールです。
特にAWS Bedrockなどの大規模言語モデル(LLM)を活用し、インフラ構築やコード生成、レビュー補助といったタスクを支援してくれます。
Clineが行ってくれることとしては、例えば以下のようなものがあります。
- 実装計画の提示
- コーディング
- ファイルの作成・編集・削除
- ブラウザ操作による動作確認
「エラーの検出 → 修正 → 再実行」といったサイクルも自動的に繰り返してタスクをこなしてくれるため、より効率的に開発業務を進めることができます。
💬 Clineの詳細はこちら
github.com
ChatGPTとの違い
近年、開発現場でもChatGPTを活用する機会が増えてきました。
コードの説明や実装の提案など、開発支援において有用な場面も多く見られます。
ClineはChatGPTとは異なり、エディタと密接に連携し、より実践的な開発操作まで担うことができる点が特徴です。
以下は、ClineとChatGPTの主な違いの一例です。
項目 | ChatGPT | Cline |
---|---|---|
実行 | 手順を文章で説明してくれる | 実際にコマンドを実行してくれる |
エラー対応 | ユーザーが手動で伝える必要がある | 自動で検出し、必要に応じて修正・再実行 |
作業の流れ | やり方を教えてくれる | 実際にやってくれる |
試行錯誤も含めて、自律的に作業を進めてくれる点がChatGPTとの大きな違いの一つです。
AWS Bedrockとは?
AWS Bedrock は、Claude をはじめとする複数の生成系AIモデルを、API経由で手軽に利用できるマネージドサービスです。
ClineではこのBedrock を通じて、「Claude 3.5 Sonnet v2」を呼び出し、コードの提案やファイル操作などの開発支援タスクを実行します。
💬 料金表はこちら
aws.amazon.com
💡 補足
AWS Bedrockの利用には事前に申請が必要です。 Claude 3.5 Sonnet v2 などのモデルは、 すぐに使えるわけではなく、事前に利用申請が必要になります。
<大まかな申請の流れ>
1) AWS マネジメントコンソールにログイン
2) 「モデルアクセス」画面を開く(Bedrock)
3) 利用したいモデルを選び、「リクエスト」をクリック
4) 申請が承認されると使用可能になります
※本記事では、申請手続きの詳細は省略していますが、必要に応じて下記をご参照ください。 docs.aws.amazon.com
検証環境
今回の検証は、ローカル環境(Windows)からSSH経由でEC2に接続し、VSCodeとClineを用いて実施しました。
AIモデルにはAWS Bedrock経由でClaude 3.5 Sonnet v2を使用しています。
項目 | 内容 |
---|---|
ローカル環境 | OS:Windows11 |
EC2 | リージョン:ap-northeast-1 OS:Amazon Linux 2023 AMI:ami-0b6e7ccaa7b93e898 |
AIモデル | Claude 3.5 Sonnet v2(※Computer Use 対応 / AWS Bedrock 経由) |
VSCode | バージョン:1.99.1(※ Shell Integration 対応 v1.93~) 拡張機能:Cline(3.10.1), Remote Development(0.26.0) |
💡 補足
Computer Use
AIがファイルの作成・編集・閲覧などを行える仕組み。
Shell Integration
AIがターミナルでコマンドを実行し、その結果を読み取れる仕組み。
AIモデル「Claude 3.5 Sonnet v2」の「Computer Use」、VSCode の 「Shell Integration」により、Clineがファイル操作やコマンドの実行を可能にしています。
環境構築手順
Clineを使用するのに必要な環境を準備します。 大まかに以下の流れで準備をしていきます。
1. EC2インスタンスを作成
初めに、検証に使用するEC2インスタンスを作成します。
設定項目 | 内容 |
---|---|
OS | Amazon Linux 2023 AMI 2023.7.20250331.0 x86_64 HVM kernel-6.1 (ami-0b6e7ccaa7b93e898 ) |
インスタンスタイプ | t2.medium |
キーペア | 新しいキーペアを作成 |
セキュリティグループ | SSH からのトラフィックを許可 → 「自分のIP」を選択 ※自身のマシンからのみアクセスを許可 |
ストレージ | 100 GiB |
⚠️ 注意
「自分のIP」設定は、IPアドレスが変わると接続できなくなります。
必要に応じて再設定、もしくはElastic IPを使用してIPアドレスを固定化してください。(Elastic IPの設定方法はこちらを参考にしてください。)
キーペア作成時にダウンロードされた秘密鍵(.pemファイル)は第三者に渡さないように注意してください。
また再取得できないため、大切に保管してください。
2. IAMロールを作成
次に、AWS Bedrockの権限を付与したIAMロールを作成し、作成したEC2インスタンスにアタッチします。
EC2一覧 → 対象インスタンスにチェック
「アクション」→「セキュリティ」→「IAMロールを変更」
「新しいIAMロールを作成」をクリック
画面右上の「ロールを作成」をクリック
以下の設定で保存
設定項目 | 内容 |
---|---|
信頼されたエンティティタイプ | AWSのサービス |
ユースケース | EC2 |
ロール名 | 任意 |
その他の設定 | デフォルトのままでOK |
6. 作成したロール名をクリック
7. 「許可を追加」→「インラインポリシーを作成」をクリック
8.「JSON」タブを選択し、下記のポリシーで作成
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowInvokeModelAndInferenceProfileAccess", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:*:*:inference-profile/*" ] } ] }
3. IAMロールをEC2にアタッチ
次にAWS Bedrockの権限がついたIAMロールをEC2にアタッチします。
- IAMロールのアタッチ画面に戻る
- 更新アイコンをクリックしてロールを反映させる
- 作成したロールを選択し、「IAMロールの更新」をクリック
4. EC2へSSHで接続
Remote Development 拡張機能をインストール
左部メニューの「拡張機能(四角いアイコン)」から「Remote Development」と検索しインストールします。
EC2インスタンスのSSH接続情報を取得
1) EC2ダッシュボード → 対象のインスタンスを選択
2) 「接続」ボタンをクリック
3)「SSHクライアント」タブを開き、表示されたコマンドをコピー
⚠️ 注意
EC2は再起動時にIPアドレスが変わります。
IPアドレスが変わった場合、SSH接続のコマンドも変わります。
今回の検証ではElastic IPを使用していないため注意してください。Remote ExplorerでSSH接続設定を追加
左部メニューの「Remote Explorer(PCアイコン)」をクリックし、+
ボタンからSSHの接続設定を追加します。
登録されたホストからEC2に接続する
接続用SSHコマンドを入力してEnter
を押下してEC2へ接続します。
例) ssh -i "your-key.pem" ec2-user@ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com
1) コマンド入力後、保存先を選択(例:C:\Users\あなたのユーザー名.ssh\config)
2) SSH接続先が登録されるので、「→」をクリックして接続
3) 初回接続時には「この接続を信頼してよいか」聞かれるので、「Continue」を選択
4) 続いて接続先の OS を聞かれるので、「Linux」を選択して完了
⚠️ 注意
pemファイルの権限設定が適切でないと接続に失敗します。
Windows環境でしたが、以下の記事を参考にさせていただきました。 qiita.com
5. Cline拡張機能のインストール
Chromeと日本語フォントをインストール
EC2にChromeと日本語フォントをインストールします。(Cline動作に必要)# Chromeのインストール+日本語の文字化け対策 wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm sudo dnf install ./google-chrome-stable_current_x86_64.rpm sudo dnf install -y ipa-gothic-fonts ipa-pgothic-fonts
Cline拡張機能をVSCodeにインストール
1) VSCode 左の「拡張機能(四角いアイコン)」をクリック
2) 検索バーに「Cline」と入力し、「Install」をクリック
Bedrockを使うためのClineの基本設定
1) VSCode 左の「Cline のアイコン(ロボットアイコン)」をクリック
2) 右上の「歯車(Settings)」アイコンをクリック
3) 以下のように各項目を入力
項目 | 設定内容 |
---|---|
API Provider | AWS Bedrock |
認証方法 | AWS Profile |
リージョン | ap-northeast-1 (東京) |
チェックを入れる | Use cross-region inference |
Model | anthropic.claude-3-5-sonnet-20241022-v2:0 |
4. 詳細設定(Advanced Settings)
1)「Advanced Settings」をクリック
2) Remote環境(SSH先)で以下の設定を変更
設定項目 | 設定内容 |
---|---|
Chrome Executable Path | /usr/bin/google-chrome-stable |
Preferred Language | Japanese - 日本語 |
5. 設定を保存
「Done」ボタンをクリックして設定を保存
補足:Chromeインストールの背景について
1. エラーが発生
Cline では Puppeteer を通じてChromiumを起動し、動作確認をしてくれます。
ところが、以下のようなエラーが発生しました。
executing browser action: Failed to launch the browser process! /home/ec2-user/.vscode-server/data/User/globalStorage/saoudrizwan.claude-dev/puppeteer/.chromium-browser-snapshots/chromium/linux-1444543/chrome-linux/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory TROUBLESHOOTING: https://pptr.dev/troubleshooting
2. Puppeteer 公式の説明
この原因について、Puppeteer の公式ドキュメントでは次のように説明されています。
💬 Running Puppeteer on AWS EC2 instance running Amazon-Linux
Now Puppeteer can launch Chromium to run your tests. If you do not enable EPEL and if you continue installing chromium as part of npm install, Puppeteer cannot launch Chromium due to unavailability of libatk-1.0.so.0 and many more packages.
💬 日本語訳
Puppeteer は Chromium を使ってテストを実行できますが、EPEL を有効にせず、npm install によって Chromium を導入しようとすると、
libatk-1.0.so.0
をはじめとする多くの依存パッケージが存在しないため、起動に失敗します。
3. Cline 側の実装
Cline のソースコードを確認すると、
Chromium が存在しない場合は自動でダウンロードするよう実装されています。
Cline GitHub
ですが、Chromium を自動でダウンロードしても、
それを動かすための依存パッケージが不足しており、起動できないようです。
4. Amazon Linux 2023 の制約
そのため、必要なパッケージを事前にインストールしておく必要があります。
しかし Amazon Linux 2023 では EPEL を利用できません。
💬 Extra Packages for Enterprise Linux (EPEL)
現在、AL2023 用の EPELまたは EPELのようなリポジトリはありません。
5. 解決策:手動インストールによる対応
Google Cloud のドキュメントでも紹介されている以下の方法を参考に、
Amazon Linux 環境に Chromium をインストールしました。
Amazon Linux 用 Chromium のインストールガイド(Google Cloud)
Clineを動かしてみた
今回はClineを使って簡単な〇✕ゲームを作成してみようと思います。
お題:〇×ゲームをClineに作ってもらう
Clineに「〇×ゲームを作って」と依頼します。
大まかな流れは以下になります。
- Planモードで計画を立ててもらう
- Actモードで実装を進めてもらう
- Clineが作成したプログラムを実際に動かしてみる
💡 補足
モード(Plan / Act)について
Cline では主に以下の2つのモードを使い分けます。
モード 役割 Plan 作業計画の提示。ステップや方針を整理する段階 Act 実際の作業を自動で実行する段階(コーディング、実行、修正など)
1. Planモードで計画を立ててもらう
まずは、「Plan」モードで、Clineに以下のように指示を出し、〇×ゲームの作成を依頼します。
〇×ゲームをhtmlとcssとjsで作ってください。
実装計画を提案してくれます。
作業の見通しが持てるので安心ですね。
2. Actモードで実装を進めてもらう
次に、「Act」モードに切り替えて、実装をお願いしました。
すると、自動でファイルを生成し、ソースコードを書き始めてくれました。
実装が終わりブラウザテストを開始!!
ただ作るだけではなく、ブラウザを起動し、動作確認まで行ってくれます。
不備があれば修正もしてくれます。
タスク完了!!
実装が完了しました。
このタスクで発生した料金も確認できます。(今回は$0.6517かかったそうです)
3. Clineが作成したプログラムを実際に動かしてみる
生成されたコードで〇×ゲームを動かしてみたところ、ちゃんと動作してくれました!
ほとんど何もせず完成したことに未来を感じています!
おわりに
今回の検証では、AWS Bedrockを用いてClineの検証環境構築の流れと簡単な使用感について紹介させていただきました。
ChatGPTのような「教えてくれるAI」とは一味違い、
- 実際にコードを書き、
- ターミナルで実行し、
- ブラウザで挙動を確認し、
- 修正までしてくれる
そんな「自律的に進めるAI」として体感できたと思います。
実務でガッツリ使用するとなると精度やコスト面など少々気になるところはありますが、
「自律的に進めるAI」を体験できると思いますので、興味のある方はぜひ試してみてください。