Python: 本番環境へのデプロイ

数分でPythonコードを本番環境にデプロイする方法

👋 Stackheroのドキュメントへようこそ!

Stackheroは、数多くの利点を提供するPythonクラウドソリューションを提供しています。主な利点は以下の通りです:

  • シンプルなgit pushでアプリケーションを数秒でデプロイ
  • 独自のドメイン名を使用し、HTTPS証明書の自動設定による強化されたセキュリティを享受。
  • 自動バックアップワンクリックアップデート、そしてシンプルで透明性のある予測可能な価格設定で安心を提供。
  • プライベートで専用のVMによる最適なパフォーマンスと強固なセキュリティを実現。

時間を節約し、生活を簡素化: StackheroのPythonクラウドホスティングソリューションを試すのに5分しかかかりません

StackheroのPythonクラウドホスティングサービスは、Pythonプロジェクトをわずか数分で本番環境にデプロイできる、シンプルかつ信頼性の高い方法を提供します。直感的なセットアップと堅牢な機能により、インフラの細かな管理はStackheroに任せて、アプリケーション開発に集中できます。

主な特徴は以下の通りです:

  • シンプルな git push でのデプロイ
  • カスタムドメインと自動TLS証明書管理(HTTPS)
  • セキュリティと機密性を高める専用・プライベートVM
  • HTTP/2、TLS 1.3(HTTPS)、WebSockets、GZIP & Brotli圧縮、ETag、TCP/UDPポートアクセスのサポート

Stackheroを利用する前に、お使いのPCにGitがインストールされていることをご確認ください。

まだ開発環境が整っていない場合や、セットアップの手間を省きたい場合は、StackheroのCode-Heroをお試しください。

Code-Heroは、ブラウザ上で動作する、すぐに使える開発プラットフォームです。PC、タブレット、スマートフォンのいずれからでも利用可能です。VSCodeをベースにしたCode-Heroには、主要な開発ツールがあらかじめインストールされているため、追加のセットアップなしですぐにコーディングを始められます。

ブラウザ上で直接動作するCode-Heroインスタンスの例ブラウザ上で直接動作するCode-Heroインスタンスの例

StackheroへのPythonアプリケーションのデプロイは、シンプルかつスムーズに設計されています。以下の手順で進めてください:

  1. StackheroでPythonサービスを作成します。
  2. ご自身のSSH公開鍵をPythonサービスの設定に追加します。
  3. 開発環境で git push コマンドを設定します。
  4. プロジェクトにMakefileを追加します。
  5. コードを本番環境にデプロイします。

デプロイ時に問題が発生した場合は、「トラブルシューティング」ドキュメントに多くの解決策が掲載されています。まずそちらを確認することで、無駄な時間やストレスを避けられます。

Stackhero for Pythonサービスをまだ開始していない場合は、Stackheroダッシュボードから新規作成できます。通常、数分で準備が完了します。

Pythonサービスが稼働したら、SSH公開鍵をサービスの設定に追加する必要があります。公開鍵は以下のコマンドで表示できます:

cat ~/.ssh/id_*.pub

まだSSH鍵をお持ちでない場合

以下のコマンドで生成できます:

ssh-keygen -t ed25519

公開鍵をPythonサービスに追加するには:

  1. Stackheroダッシュボードを開き、Pythonサービスを選択します。
  2. 「設定」ボタンをクリックします。
  3. 「SSH公開鍵」セクションに、ご自身のSSH公開鍵を貼り付けます。

Pythonサービス設定例Pythonサービス設定例

ヒント:SSH公開鍵はグローバル設定も可能です。グローバルに設定すると、新規サービス作成時に自動で公開鍵が追加されます。設定するには、Stackheroダッシュボード右上のプロフィール画像をクリックし、「プロフィール」を選択してSSH公開鍵を追加してください。

Stackheroでは、Git CLIとおなじみの git push コマンドを使って簡単にデプロイできます。追加ソフトウェアのインストールは不要で、一度Gitリモートを設定すればすぐに利用可能です。

ご自身の git remote command は、Stackheroダッシュボードのサービスメインページに表示されています。以下のような形式です:

git remote add stackhero ssh://stackhero@<XXXXXX>.stackhero-network.com:222/project.git

Stackheroダッシュボード上のPython GitリモートコマンドStackheroダッシュボード上のPython Gitリモートコマンド

Stackheroにアプリケーションの起動方法を伝えるため、プロジェクトのルートディレクトリに Makefile を用意します。

Makefilemake コマンドに不慣れな方もご安心ください。以下の手順通りに進めてください。

プロジェクトのルートに、以下の内容で Makefile を作成します:

run:
	gunicorn app:app -b 0.0.0.0:8080 --error-logfile -

このMakefileについて注意すべき点は以下の通りです:

  1. run ルールは必須です。Stackheroが自動的に実行するため、名前を変更しないでください。
  2. gunicorn app:app -b 0.0.0.0:8080 --error-logfile - は一例です。ご自身のアプリケーションに合わせて調整してください。
  3. gunicornコマンドの行頭は必ずタブ文字で始めてください。"*** missing separator" というエラーが出る場合は、タブが抜けている可能性があります。

この例では、Gunicornでアプリケーションを起動しています(requirements.txt にGunicornが含まれていることをご確認ください)。-b 0.0.0.0:8080 は全てのインターフェースの8080ポートで待ち受けることを意味します。別のポートを使用する場合は、StackheroダッシュボードのPythonサービス設定も合わせて変更してください。app:appapp.py 内の app オブジェクトを指します。

すべての準備が整ったら、いよいよデプロイです。プロジェクトディレクトリで以下のコマンドを実行して、Stackheroにコードをプッシュします:

git push stackhero main

初回実行時は、SSH鍵のフィンガープリント確認を求められますので、「yes」と入力してください。数秒でアプリケーションが公開されます。

git push コマンドでStackheroにPythonコードをデプロイする例git push コマンドでStackheroにPythonコードをデプロイする例

デプロイしたアプリケーションは、Stackheroダッシュボードに表示されている「website」URL(通常は https://<XXXXXX>.stackhero-network.com の形式)からアクセスできます。

これで、アプリケーションが本番環境で稼働開始となります。

デプロイ時に問題が発生していますか?

トラブルシューティング セクションには、迅速な問題解決に役立つ情報が多数掲載されています。

このガイドが、StackheroでPythonコードを本番環境にデプロイする際の参考になれば幸いです。この基盤を活用して、安心してプロジェクトを公開してください。

さらに詳しく知りたい方は、「高度なデプロイ活用法」ドキュメントをご覧ください。異なるgitブランチ・タグ・コミットからのデプロイや、複数環境(ステージング・本番)の管理、環境変数の利用方法なども解説しています。

また、何か問題が発生した場合は、いつでも「トラブルシューティング」ドキュメントをご活用ください。迅速な復旧に役立ちます。