🧑‍💻

Claude Codeで爆速業務改善!権限管理の手間をAIで削減した話

に公開

こんにちは!株式会社エアークローゼットでCTOをしている辻です。今回は、Claude Codeを使って面倒な業務を自動化した経験を共有したいと思います。
この記事では、Claude Codeを使ってSQL権限管理の手間を削減した事例を紹介します。

  • Claude Codeの基本とセットアップ方法
  • 具体的な業務自動化の流れ
  • AI活用のコツと注意点
  • どれくらいの時間&コスト削減ができたか

はじめに

皆さん、こんな面倒な業務を抱えていませんか?

  • 1回の作業量は大したことない(5〜10分程度)が、毎月一定量の件数が発生する
  • 強い権限を持っていないと作業できないため、なかなか権限委譲できない
  • 条件分岐や関わるツールが多く、スクラッチでプログラムを作るには工数がかかりすぎる

そんな業務を、生成AIを活用して効率化した事例をご紹介します。

自己紹介

株式会社エアークローゼットでCTOを務めている辻と申します。当社では開発プロセスやお客様に提供しているサービスの一部で生成AIを活用していますが、今回はClaude Codeを使って自分自身の業務を自動化するプログラムを開発した話をします。

Claude Codeとは

Claude Codeは、Anthropic社が提供するAIアシスタント「Claude」をターミナル上で利用できるツールです。コードの作成からデバッグ、リファクタリングまで、プログラミングに関するさまざまなタスクをサポートしてくれます。通常のチャットインターフェースとは異なり、ターミナル上で直接対話しながらコードを生成・編集できるため、開発ワークフローに自然に組み込むことができます。

セットアップ方法

Claude Codeは簡単にセットアップできます。

Homebrewを使ったインストール

brew install anthropic/tools/claude

AWS Bedrockを使う場合

AWS Bedrockを使用する場合は、適切なIAM権限を設定し、AWS CLIの設定を行った上で、以下のように環境変数を設定します。

export CLAUDE_API_KEY=your_key_here
export CLAUDE_API_URL=https://bedrock-runtime.[region].amazonaws.com/model/anthropic.claude-3-opus-20240229-v1:0/invoke

こうすることで普段利用しているAWSからの請求に一本化されるので、個人的には嬉しいポイントです。

背景:データベースアカウント管理の課題

私の会社では、エンジニアに限らず、SQLが使えるメンバーには分析などのために参照用の分離データベースへのアクセス権を付与することがあります。また、一部のエンジニアには不測の事態に備えて登録/更新/削除の権限も付与しています。

しかし、こうした権限付与には大きな責任が伴うため、誰にでも簡単に付与できるものではありません。権限付与の判断と実際の処理は、セキュリティ上の理由から個別のメンバーに委譲することが難しい業務でした。

そのため、データベースのアカウント作成はワークフロー申請として管理され、最終的に私が承認した後、私自身が各種処理を行う必要がありました。この作業は、以下の理由から煩雑でした:

  • アカウントには参照のみ、編集可能、削除可能など複数の種類がある
  • 管理対象のデータベースが二桁以上存在する
  • 単純な量の多さに加え、ミスが許されない作業である

具体的な作業内容

申請があった場合、以下のフローで作業を行っていました:

  1. Jobcanワークフローで申請を確認(承認する場合)
  2. 申請内容(対象データベース、必要な権限)に従って対応するスプレッドシートを開く
    1. 申請者の情報が記載されていない場合:
      1. 新規で行を追加し申請者の情報を入力
      2. 新規アカウント追加用のGASを実行 → アカウント作成用SQLと、アクセス情報を共有するためのGoogleドキュメントが生成される(閲覧期限1ヶ月)
      3. 生成されたSQLを取得し、対象データベースで実行してアカウント作成
    2. 申請者の情報が既に記載されている場合:
      1. 該当行のGoogleドキュメントへのアクセス期限日を削除
      2. アクセス期限更新用のGASを実行 → 申請者にGoogleドキュメントの閲覧権限を付与
  3. ワークフローから踏み台サーバ用の公開鍵を取得
  4. 申請者の情報を踏み台サーバに登録(既存の場合はスキップ)
  5. スプレッドシートからGoogleドキュメントのURLを取得
  6. JobcanワークフローにGoogleドキュメントのURLを貼り付けて承認

自動化の課題

この業務を自動化するにあたって、以下の課題がありました:

  • 条件分岐が多く、実装が煩雑になりがち
  • 関連ツールも多く、それぞれの仕様理解と認証設定が必要
  • MySQL、PostgreSQLの両方のクライアントが必要
  • 一部はGASで自動化済みで中途半端に効率化されていた
  • これらすべてを解決するプログラムを1から実装するのはコスパが悪すぎる

Claude Codeの活用

AIエディタをがっつり試してみたいという背景もあり、Claude Codeを使ってこの課題解決をやってみることにしました。

事前準備:良質なプロンプト設計

生成AIの活用では、良質なプロンプトの設計が重要です。そこで以下の準備を行いました:

  1. ワークフローから取得できる情報のパターンをMarkdownの表で整理
  2. 実現したいシステムフロー(最初は新規作成のみ)をMermaidのSequence Diagramで表現
  3. 設定情報は.envファイルに格納するよう指示

この情報をもとに、Claude Codeにベースコードの構築を依頼しました。事前準備が十分だったおかげで、最初から高精度なプログラムを構築できました。

AIとのハイブリッド開発

開発プロセスでは、以下のようにAIと人間の役割分担を行いました:

  • 細かい部分の調整(例外処理、入力データの小文字変換など)は自分で実装
  • 更新処理の追加など大きな機能はAIに任せる
  • できるだけ小さなタスクに分割して精度を高める

Claude Codeの活用で良かった点

1. 特殊なAPI仕様の理解力

JobcanのAPIは一般的な知識ではありませんが、APIドキュメントのURLを読ませるだけでそのまま理解してくれました。ドキュメントからの学習能力が高く、特殊なシステム連携も容易でした。

2. 認証周りのスムーズな実装

GASを実行するためのGoogle OAuth認証設定が必要でしたが、認証処理とリフレッシュトークン取得のコマンドラインツールを作成してくれたため、ほぼ考える必要なく実装できました。

3. 幅広い技術領域への対応力

普段あまり触れない技術領域(SSH経由でのDB接続、Spreadsheet API操作、SSHサーバにログインしてアカウント作成など)でも、依頼すればすぐにコードを構築してくれるため、時間効率が格段に向上しました。

4. リバースエンジニアリングと文書化

実装内容を理解した上で、事前に準備したシステムフローや前提情報を、最終的なシステムフローや定義情報に更新してくれました。これにより、他のエンジニアにとっても理解しやすいプロジェクトとなりました。

Claude Codeをうまく使うためのコツ

1. 明確な指示を心がける

生成AIは「それらしい」回答を返せば良いですが、AIエディタには確実に動作するコードを期待しています。あいまいな指示では正確な実装は期待できません。自分の中でやりたいことを整理し、具体的なタスクとして伝えることが重要です。

2. 完璧な作業を期待しない

AIはときに作業を完了していないにもかかわらず「完了しました」と報告したり、「実装しました」と言った後にコンパイルエラーが発生したりします。おそらく一度に読めるコード量に制限があり、その範囲内だけで判断することがあるようです。実際に完了しているかは、別の指示で確認するか、自分で確認する必要があります。特にステップ数の多い処理は注意が必要です。

3. 提案を鵜呑みにしない

Claude Codeは「このように進めたいと思いますが、よろしいですか?」と確認してくることがあります。最初は深く考えずに「Yes」を選ぶことが多かったのですが、よく見ると疑問に思う内容や、膨大なトークン量を消費する処理もありました。提案内容は必ず確認しましょう。また、「以後常にYesにする」オプションもありますが、非常に危険なのでこれはとくに内容をよく読んで判断することをお勧めします。

4. 細かくコミットする

特にリファクタリングなど大規模な修正を依頼する際に、最終的に動かなくなることがあります。そういった場合に元の状態に戻せないと大変なので、細かくコミットすることをお勧めします。AIに自動コミットを依頼することも可能です。

Claude Codeの成果

1から調べて実装していたら2週間程度かかったであろう作業を、自分の時間としては約8時間で実装できました。トークン課金は最終的なリファクタリングを含めても200$弱だったため、コストパフォーマンスは非常に高いと感じています。

具体的な成果

もともとは上に書いた面倒な作業をやっていたのが、下記フローに変わりました!

  1. CLIでjobcanワークフローのIDを渡してコマンド実行。
  2. コマンドの結果として、GoogleドキュメントのURLが表示されるので、それを貼り付けて承認完了。

結論:AIとの協業の未来

今後AIが当たり前になる中で、いかにうまく活用できるかが重要になります。現時点では、自分で開発する力があるかどうかによって活用効率も大きく変わると実感しました。技術力があれば「それらしい」ものではなく、完全に期待通りの動作をするシステムを構築できますし、間違いがあっても修正できます。

最後に

生成AI時代の生存戦略については、以前に別の記事で詳しく書いています。こちらもよろしければご覧ください。
https://zenn.dev/aircloset_dev/articles/5e4dd182775dae


この記事が皆さんの業務効率化の参考になれば幸いです。何か質問や感想があれば、コメントでお聞かせください!

Discussion