サーバー運用は、これまで「コマンドを一つ一つ手入力する」地道な作業でした。しかし Claude Code を使えば、「意図を伝えるだけ」で自動化できます。このページでは、サーバー構築からデバッグ、運用までをClaude Codeで効率化する方法を解説します。

コマンド入力から、意図の実行へ

従来のサーバー運用と、Claude Code時代の運用を比較してみましょう。

Manual & Tedious(従来)

ssh user@192.168.1.1
scp -r ./src user@server.com
tail -f /var/log/nginx/error.log
vi /etc/nginx/sites-available/default
sudo systemctl restart nginx
...

何十ものコマンドを覚えて、手動で入力する必要がありました。

Intent-Based & Automated(新時代)

Upload source, fix errors, and deploy.

やりたいことを自然言語で伝えるだけ。AIが自動で:

  • Auto-Debugging:エラー発生時に自動で原因調査・修正
  • Infrastructure as Code:会話ベースでの設定ファイル生成
  • Context Awareness:プロジェクト状況を理解した運用
たとえ話

従来のサーバー運用は「レシピを見ながら一つ一つ材料を切って調理する」こと。Claude Codeは「シェフに料理名を伝えるだけで完成品が出てくる」ようなものです。

自然言語が新しいCLIになる

Claude Codeでは、自然言語のプロンプトがそのまま「コマンド」になります。

Prompt→Claude Agent Logic→Executionの自動実行フロー
Page 5 - 自然言語が新しいCLIになる:意図からの自動実行

AIが「エラーを読む → コードを分析する → 修正を適用する → 再実行」というループを自動で回してくれます。

安全な接続基盤:SSH戦略

サーバーに接続する際の基本は SSH(Secure Shell)です。Claude Codeでサーバー操作を行うには、まずSSHの設定が必要です。

Local EnvからSSH TunnelでRemote Serverに接続する図
Page 3 - 安全な接続基盤:SSH戦略

~/.ssh/config の設定例

Host myserver
    HostName 192.168.1.10
    User ubuntu
    IdentityFile ~/.ssh/id_rsa
Rule 1: パスワードはCLAUDE.mdに絶対に書かない

CLAUDE.mdはAIが読む設定ファイルです。ここにパスワードや秘密鍵の中身を記載すると、セキュリティリスクになります。

Rule 2: SSH鍵認証の使用を推奨

パスワード認証ではなく、SSH鍵認証を使いましょう。設定が済めば ssh myserver だけで接続完了です。

リモートデバッグ・ワークフロー

リモートサーバーのデバッグには2つの方法があります。

Method A: CLI / Terminal

「SCPでファイルを送って、main.pyを実行」-- ターミナルのみで完結する方法。

Method B: VS Code Remote

VS Code RemoteでSSH接続し、視覚的にデバッグとログ監視。サーバー上のファイルを直接編集・保存できます(Direct Edit & Save)。

サーバー設定の自動化(Nginx)

Nginx のリバースプロキシ設定も、Claude Codeなら自然言語で指示するだけで完了します。

プロンプト例

「Nginxでリバースプロキシを設定して」

Claude Codeが自動で実行するステップ:

Nginx自動化パイプライン:apt install→Create Config→Symlink→Certbot→Restart
Page 6 - サーバー設定の自動化(Nginx)
  1. Nginxのインストール(apt install nginx
  2. 設定ファイルの作成(sites-available)
  3. シンボリックリンクの作成(sites-enabled)
  4. SSL証明書の取得(Certbot)
  5. Nginxの再起動
Tip

Nginxの構文を覚える必要はありません。作りたい状態を記述します。実行前に「作る前に内容を見せて」と言えば、設定内容を事前確認できます。

サービスの永続化(systemd)

アプリケーションをサーバー再起動後も自動で起動させるには、systemd サービスとして登録します。

serviceファイルの例

[Unit]
Description=My App

[Service]
ExecStart=/usr/bin/python3 main.py
Restart=always
User=ubuntu

[Install]
WantedBy=multi-user.target

Claude Codeに「systemdサービスとして自動起動設定して」と指示するだけで、以下が自動で行われます:

  1. .service ファイル作成
  2. systemctl enable(自動起動の有効化)
  3. systemctl start(サービスの開始)

高度な環境構築

Claude Codeは以下のような高度な環境構築も自然言語で指示できます。

Database

PostgreSQLのセットアップとユーザー作成

Security

UFW(Firewall)の設定とポート制限

Containers

Docker環境のインストールと構成

Maintenance

Cronジョブとログローテーション設定

Tip

分からない部分は「おすすめの設定で」と書けばOK。Claude Codeがベストプラクティスに基づいた設定を提案してくれます。

課題と解法:CLAUDE.md という「外部脳」

長時間の作業やSSH接続の切断時、AIはコンテキスト(文脈)を失う可能性があります。これは以下のリスクにつながります:

この課題の解決策が CLAUDE.md です。

CLAUDE.mdがUserとServerの間でProject Status・Architecture・Current Tasksを保持する図
Page 10 - CLAUDE.mdという「外部脳」
CLAUDE.mdのポイント

状態引き継ぎのベストプラクティス

タイミング アクション
START 作業開始時に「進捗をCLAUDE.mdに随時記録して」と指示
Warning: 事前に指示しないと、自動圧縮時に保存されない
DURING DEBUG_STATUS.md をサーバーに残す
BEFORE COMPACT /compact コマンド前に保存を指示
RESET コンテキスト切り替わり時に「前回の続き」を明示

セキュリティ・ガードレール

DO(やるべきこと)

  • SSH鍵認証を使う
  • UFWでポート22番のみ許可
  • 本番前にステージングでテスト
  • スクリプト化して冪等(べきとう)にする

DON'T(やってはいけないこと)

  • パスワードを平文で書かない
  • CLAUDE.md に機密情報を入れない
  • 本番サーバーで直接テストしない
  • root権限で日常作業しない

一撃サーバー構築(One-Shot Server Build)

以下のプロンプトで、サーバーの初期構築をすべて一括で実行できます。

サーバーの初期構築を行います。
以下の手順を一度に実行してください:
1. Users & SSH Setup
   - Create sudo user 'admin'
   - Disable root login
   - Configure SSH keys
2. Nginx & Firewall
   - Install Nginx
   - Configure UFW firewall to allow Nginx and SSH
   - Set up basic Nginx config
3. DB & Runtimes
   - Install PostgreSQL
   - Install Node.js and npm
   - Install Docker & Docker Compose
4. Monitoring
   - Install htop
   - Set up basic system monitoring scripts
   - Configure log rotation

クイックリファレンス

Intent(意図) Prompt(プロンプト例)
Upload 「SCPで ./src をサーバーに送って」
Debug 「SSHでサーバーに入って main.py を実行してエラーを直して」
Log Check 「サーバーのログを確認してエラーを分析して」
Nginx 「Nginxでリバースプロキシを設定して」
Service 「systemdサービスとして自動起動設定して」
Full Auto 「アップロード→実行→修正→再アップロードを繰り返して」

まとめ:DevOpsの新しいパートナー

Secure Setup

SSH鍵認証とconfig設定で安全な基盤を構築

Prompt Ops

自然言語での構築・デバッグ。コマンドを覚える必要なし

Memory(記憶の維持)

CLAUDE.md でコンテキストを維持。手動作業から解放され、より創造的なエンジニアリングへ。