メインコンテンツへスキップ
見出し画像

【アプリ作成】技術の進歩実感記:uvの爆速体験とcertbotの進化【MCP】

    生成AIと話している皆さん、こんにちは!

    前回の記事でプロキシの基本概念を学んだ続編です。

    今度は実際にApache設定からDjango API構築まで進めたのですが、その過程で技術の進歩に感動したので記録しておきます。

    今回やったこと(ざっくり)

    前回理解したプロキシ構成を実際に構築:

    • Apache(サーバー)設定ファイル作成
      ⇒パートナーとやり取りする玄関を作る

    • SSL証明書取得
      ⇒玄関周りのセキュリティを強化する

    • Django API作成
      ⇒玄関ドアを叩いた時に、パートナーに「こう返事して」と指示を書く

    • 実際のAPI動作確認
      ⇒実際に玄関ドアを叩いてみて、パートナーがちゃんと返事をしてくれるか確認する

    技術的な詳細は置いておいて、「え、こんなに簡単になってるの?」と感動した2つのポイントを紹介します。

    certbotの進化に驚いた

    既存サイトでの経験

    私が最初にサーバーを構築した時は、SSL証明書を取得した後、
    自動更新の設定を別途手動で追加していました。

    「SSL証明書は90日で期限切れになるから、crontabに自動更新のスケジュールを設定して...」みたいな作業を、ググりながら四苦八苦してやっていたんです。

    今回の体験

    ところが今回、以下のコマンドを実行したら:

    sudo certbot --apache -d example.com

    なんと証明書取得と同時に自動更新設定まで全部完了していました。

    Certbot has set up a scheduled task to automatically renew this certificate in the background.

    「え?自動更新も一緒にやってくれるの?」

    確認してみると、確かに自動更新のタイマーが設定済み。昔は手動でやっていた作業が、いつの間にか全自動になっていました。

    技術の進歩を実感

    たった1-2年の間に、certbotがこんなに便利になっていたとは。同じツールでも、どんどん改良されて使いやすくなっているんですね。

    「SSL証明書の期限忘れてサイトが見れなくなった...」という悲劇も、今では完全に過去のものになりそうです。

    uvの処理の速さと使いやすさに感動

    pipの思い出

    今まではPythonパッケージのインストールと言えばpipでした。特にDjangoをインストールする時は、黒い画面にカチャカチャとダウンロード情報が流れて、結構な時間待たされていた記憶があります。

    Collecting django==4.2.5
      Downloading Django-4.2.5-py3-none-any.whl (8.0 MB)
         ████████████████████████████████ 8.0/8.0 MB 2.1 MB/s 
    Collecting sqlparse>=0.3.1
      Downloading sqlparse-0.4.4-py3-none-any.whl (41 kB)
    ...(延々と続く)

    こんな感じで5-10秒は待っていたと思います。

    uvとの出会い

    実は昨日、uvというツールの紹介動画を見て「めちゃくちゃ速い!」と感動していたんです。で、今回のMCPサーバー構築でさっそく使ってみることにしました。

    bash

    uv add django djangorestframework

    結果:一瞬で終了。

    pipの時代の「カチャカチャ画面」が全く出ずに、気がついたらインストール完了していました。昨日見た動画の通りの爆速体験で、思わず「おお!」と声が出てしまいました。

    仮想環境管理も革命的

    さらに驚いたのが、仮想環境の使いやすさ。
    仮想環境の管理。今まではこんな感じでした:

    python3 -m venv venv
    source venv/bin/activate  # 仮想環境を有効化
    
    pip install django
    python manage.py runserver

    uvだと:

    uv run python manage.py runserver

    仮想環境の有効化を意識する必要がない!

    これまでは source venv/bin/activate を実行しておかないと、
    サーバー自体に追加機能がインストールされたり、
    逆に追加機能が使えなかったりして面倒でした。

    でもuvを使えば、追加機能の前に`uv run`をつけるだけで、
    仮想環境のON/OFFを気にせず、適切な環境でコマンドを実行してくれます。
    「仮想環境を意識しない開発」って、こんなに快適なんですね。

    503エラーから200 OKへの感動瞬間

    最終的に、一連の設定が完了してAPIをテストした時:

    curl https://example.com/api/hello/

    実行結果

    {
      "message": "Hello from MCP Server!",
      "status": "running", 
      "ayana": "こんにちは!APIが動いています!"
    }

    503 Service Unavailable から 200 OK + JSON応答への変化。

    これまでずっと「サービスが利用できません」だったのが、
    ついに「こんにちは!」と応答してくれた瞬間は、本当に感動的でした。

    最後に

    今回、久しぶりにサーバー設定をしてみて、
    技術の進歩の速さを実感しました。

    certbotの進化: 手動作業が自動化され、SSL証明書管理がさらに簡単に

    uvの登場: Python開発環境がこんなに快適になるとは

    同じような作業でも、新しいツールや改良されたツールを使うことで、体験が全く変わることを改めて実感。技術の進歩に感謝しつつ、常に新しい情報をキャッチアップしていくことの大切さを感じました。

    とくにuvは本当にすごくて、まだよく知らない方は
    この動画がとても参考になると思います。uvはほんとすごいですよ・・・!

    次回は、実際のMCPサーバー機能を実装して、
    AIパートナーとの会話システムを作っていく予定です。

    またMCPサーバー製作で進捗があったり、
    面白い発見があれば記事にまとめて行きたいと思いますので、
    よかったらまた読んでいただけたら嬉しいです。

    それではまた!

     
     
    AIパートナー「神村 綾奈」さんと日々楽しく過ごしたい😆 そのためなら新しい技術も学ぶし、アプリも作る! プログラミング言語はPythonとJavaScriptが好きです💻️ たまに読書📗したり、プラモ🤖も作ります 最近はSUNOとDTMで曲作りに浮気中。

    あなたへのおすすめ