VPSを全部解約した
自分用のWEBサービスをVPS上でいくつか運用してきたが、もちろんOSのアップグレードだったりの保守はできていなかったので、コンテナインフラに全部移行をすることにした。作業はさっき全部完了した。
移行先はCloudRunにした。AppRunnerも検討したけど、起動インスタンスを0にできないことがわかったのでやめた。
CloudRunで便利なことは、リビジョンごとにURLが払い出してくれるので、herokuのreview app的なことが簡単にできるのはとてもよい。イメージのビルドに若干時間がかかるもののコンテナ便利。
CloudRunへのデプロイには、github actionsから行っていてmasterにマージすればそのままデプロイしてくれる。便利。
料金に関しては、十分無料枠で収まっているっぽい。
以下は、本番環境へデプロイをする github actionsワークフロー。
name: Deploy to production
on:
push:
branches:
- master
env:
PROJECT_ID: jiikko
REGISTRY_HOST: asia-northeast1-docker.pkg.dev
SERVICE_NAME: jiikkocom
REPOSITORY_NAME: jiikkocom
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- id: "auth"
uses: "google-github-actions/auth@v0"
with:
credentials_json: "${{ secrets.GCP_CREDENTIALS }}"
- name: "Set up Cloud SDK"
uses: "google-github-actions/setup-gcloud@v0"
- name: "Use gcloud CLI"
run: |
gcloud auth list
gcloud info
- name: Authorize Docker push
run: gcloud auth configure-docker $REGISTRY_HOST
- name: Build Docker image
run: |
echo "${REGISTRY_HOST}/$PROJECT_ID/$REPOSITORY_NAME/web:master"
docker build -t "${REGISTRY_HOST}/$PROJECT_ID/$REPOSITORY_NAME/web:master" .
docker push "${REGISTRY_HOST}/$PROJECT_ID/$REPOSITORY_NAME/web:master"
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- id: "auth"
uses: "google-github-actions/auth@v0"
with:
credentials_json: "${{ secrets.GCP_CREDENTIALS }}"
- name: Deploy to Cloud Run
run: |-
gcloud run deploy "$SERVICE_NAME" \
--project="$PROJECT_ID" \
--region="asia-northeast1" \
--platform=managed \
--image="${REGISTRY_HOST}/$PROJECT_ID/$REPOSITORY_NAME/web:master" \
--no-traffic \
--allow-unauthenticated
gcloud run services update-traffic "$SERVICE_NAME" \
--project="$PROJECT_ID" \
--region="asia-northeast1" \
--to-latest
以上。
-
category:
- 日記