こんにちは。anuimaでインターンをさせてもらっているryuseiです。
今回は前から試してみたかったVPS導入の前段階としてGCPを触ってみたので、実装方法を含めて紹介したいと思います。
この記事では、僕が実際に踏んだステップを 細かい手順つき でまとめています。
「クラウドって難しそう…」と思っている方も、この記事を読めば同じように環境を作れるはずです。
プロジェクト作成
- Google Cloud Console にログイン
- 「プロジェクトを作成」ボタンをクリック
- プロジェクト名を決める(例:
my-first-project
) - 自動で プロジェクトID が付与される(後で使うので控える)
課金アカウント設定
- クレジットカードを登録して 課金アカウントを有効化
- GCPは最初に「無料トライアル(クレジット付き)」があるので安心
- ただし、インスタンスを動かしっぱなしにすると課金されるので注意
API 有効化
- 「APIとサービス > ライブラリ」で以下を有効化:
- Compute Engine API(必須)
- 必要なら Cloud SQL / Cloud Run / Cloud Build も
gcloud CLI の準備
- ローカル開発PCに
gcloud CLI
をインストールするか - Cloud Shell(ブラウザから使えるターミナル)を使うと便利
僕はまず Cloud Shell を使いました。ブラウザ上で Linux 環境が使えるのはかなり手軽です。
VM インスタンスを立てる
- Console 左メニュー → 「Compute Engine > VM インスタンス」
- 「インスタンスを作成」ボタン
- 以下のように設定
項目 | 設定例 |
---|---|
名前 | my-vm-instance |
リージョン / ゾーン | asia-northeast1-a (東京) |
マシンタイプ | e2-micro (Always Free 対象) |
ブートディスク | Ubuntu 22.04 LTS |
ファイアウォール | HTTP/HTTPS を許可 |
※ 静的IP を割り当てておくと、IPアドレスが固定されて便利。
作成ボタンを押すと数十秒で起動。ステータスが RUNNING
になればOKです。
SSH ログイン
- Console の「SSH」ボタンからブラウザログイン
- もしくはターミナルから:
gcloud compute ssh my-vm-instance --zone asia-northeast1-a
初期設定(Ubuntu)
sudo apt update
sudo apt upgrade -y
Nginx インストール
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
動作確認:
curl localhost
→ Welcome to nginx!
が出れば成功。
僕はこの瞬間、「自分のサーバが立った!」と一番ワクワクしました。
Python Flask アプリを例に
必要パッケージ
sudo apt install -y python3 python3-venv python3-pip git
アプリを取得
git clone https://github.com/あなたのリポジトリ.git
cd あなたのリポジトリ
仮想環境と依存関係
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Gunicorn で起動
gunicorn --bind 0.0.0.0:8000 app:app
→ http://VMの外部IP:8000
で確認できる
Nginx をリバースプロキシ化
/etc/nginx/sites-available/your-app.conf
を作成:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
反映:
sudo ln -s /etc/nginx/sites-available/your-app.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
これで外部IPにアクセスすると Flask アプリが表示されます。
ドメイン設定
- お名前.com や Google Domains で取得
- DNS で Aレコード → VMの静的IP に設定
SSL(Let’s Encrypt)
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
テスト更新:
sudo certbot renew --dry-run
これで https://yourdomain.com
でアクセス可能になります。
SSL化したときは一気に「サービスっぽさ」が増してテンション上がりました。
僕が意識している点は以下です:
- 使わないときは VM を停止(秒単位課金)
- Always Free 枠(e2-micro, 30GB HDD, 1GB/月転送無料)を徹底活用
- セキュリティ:
- 公開鍵認証の利用
- 不要ポートを閉じる
- 定期アップデート(
apt upgrade
)
さらに本格運用するなら:
- Cloud Monitoring で死活監視
- スナップショットでバックアップ
- スケールするなら Cloud Run や GKE も検討
まとめと僕の気づき
今回の流れ:
- プロジェクト作成 & 課金設定
- VM(Ubuntu)作成
- SSH で環境構築 → nginx 起動
- Flask アプリを配置 & Gunicorn+Nginx
- ドメイン + HTTPS 化
- コストとセキュリティを意識した運用
正直「クラウドを使うのは難しい」と思っていたんですが、やってみると1つ1つの手順はシンプルでした。
自分で公開したサービスをブラウザで見たときの達成感は大きく、「次はもっと自動化しよう」「スケールする仕組みを組み込みたい」と欲が出てきます。
学生でもクラウドを使って世界にサービスを公開できるので、この記事が誰かの一歩を後押しできれば嬉しいです。
-
WordPress サーバーに Python API を組み込む方法(Flask / FastAPI 編)
こんにちは。aniumaでインターンをしているryuseiです。 今回はwordpressのFAQページに使用するAIチャットボットを導入する流れをまとめていき…
-
GCP × Ubuntu で Web アプリを公開するまでの完全手順
こんにちは。anuimaでインターンをさせてもらっているryuseiです。 今回は前から試してみたかったVPS導入の前段階としてGCPを触ってみたので、実装方法…
-
Local で作った WordPress テーマを Lolipop サーバーにアップロードする手順メモ
Local (Local by Flywheel) で開発した WordPress テーマを、Lolipop レンタルサーバーに scp でアップロードする方法…
-
LoRA実践解説ローカル環境で始めるQLoRA学習ガイド:環境構築から推論・評価・トラブル対処まで完全解説LoRA実践解説
本記事は、ローカル環境でLoRA(主にQLoRA)を実行するための手順書です。環境構築から学習・推論・評価、よくあるトラブルとFAQまでを一通りまとめています。…