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

以上。