The Complete Python Pro Bootcamp 2023: Day 71/100
このブログ記事では、"100 Days of Code" チャレンジの71日目にFlaskブログをGit, GitHub, Heroku, gunicornを使ってデプロイする経験について語られています。
プロジェクトではGitでのバージョン管理、環境変数を使ったセキュリティ強化、そしてWSGIサーバーとしてgunicornを設定する過程が詳述されています。
最終的に、SQLiteからPostgreSQLへのデータベースの移行とRender.comでのウェブサービスの設定を経て、Flaskブログが成功裏にデプロイされました。
はじめに
100 Days of Code" チャレンジを進める中で、71日目は私の旅が大きく飛躍したことを意味します。今日は、Git、GitHub、Heroku、gunicorn などの重要なツールを統合して、Flask ブログをデプロイした経験を共有したいと思います。このブログは、同じような試みに着手しているコーダー仲間のためのガイドとなるでしょう。
目標とツール
目的は明確でした。このタスクのためのツールキットは、バージョン管理のためのGitとGitHub、ホスティングのためのHeroku、WSGIサーバーとしてのgunicornで構成されました。最終的な成果物は、ウェブ開発とデプロイで磨かれたスキルの証である、世界的にアクセス可能なブログです。
Git によるバージョン管理
バージョン管理の重要性を理解し、プロジェクトはPyCharmをIDEとして使ってGitで統合されました。そのプロセスは以下の通りです:
プロジェクトのセットアップ プロジェクトのセットアップ: ブログの最終バージョン、またはダウンロードしたテンプレートを使用します。
PyCharm で Git を有効にする: これはターミナルで `git init` を実行するようなものです。
変更のコミット: .gitignore ファイルを追加し、必要なファイルがすべてステージされていることを確認した後、最初のコミットを行いました。
環境変数によるセキュリティ保護
重要なステップは、ハードコードされた機密情報を環境変数に置き換えてセキュリティを強化することでした。これは特に、`SECRET_KEY`やデータベースURIのようなFlaskアプリの設定に適用されました。
Gunicorn による本番環境への移行
開発から本番環境への移行は、gunicornを使用してWSGIサーバーをセットアップすることで促進されました。詳細な手順は以下の通りです:
WSGIの理解: WSGIを理解する**:PythonアプリケーションとWebサーバの橋渡しとしての役割を認識すること。
gunicorn の設定: requirements.txt`を更新し、`web: gunicorn main:app`コマンドで `Procfile`を作成しました。
ホスティングとデータベースのアップグレード
ホスティングプロバイダの選択は非常に重要でした。Heroku、Render、Cyclic、Glitch、Vercel、PythonAnywhereなどを検討しました。GitHubと簡単に統合できるRender.comを選びました。
データベースのPostgreSQLへのアップグレード
データの安定性とスケーラビリティを確保するために、SQLiteからPostgreSQLに移行しました。SQLAlchemy のおかげで、このアップグレードはコードの変更を必要としませんでした。手順としては、PostgreSQL データベースを作成し、データベースの URL を取得し、環境変数として設定しました。
最終的な展開ステップ
最終的なデプロイメントステップには、環境変数の設定と、Render.com 上でウェブサービスが正しく設定されていることの確認が含まれます。これにより、Flaskブログのデプロイが完了しました。
まとめ
このコーディングの旅の71日目に到達することは、挑戦的であり、やりがいのあることでした。PostgreSQLデータベースを使ったブログをRender.comにデプロイすることに成功したことは大きな成果でした。興味のある方はRender Blog Deploymentでホスティングされたブログの例を見ることができます。
これからも100 Days of Codeの旅を続けていきますので、さらなるアップデートにご期待ください!