はじめに
- DBマイグレーションはEC2からおこなう
- CIツールは取り扱わない
結末
- 情報不足で動かすことができなかったので一旦中止する
参考
開発環境での作業
Shopify 関連
$ shopify app deploy --reset
リリース準備環境での作業
設定ファイルの更新
SHOPIFY_API_KEY= # Shopify partner console
SHOPIFY_API_SECRET= # Shopify partner console
DATASOURCE_URL=
SHOPIFY_APP_URL=
ビルド実行
- buildディレクトリにデプロイ用のclient, serverのコードをそれぞれ生成
$ npx remix vite:build
vite v5.4.2 building for production...
transforming (703) node_modules/@shopify/polaris-icons/dist/icons/CreditCardSecureIcon.svg.mjsdebug2: channel 0: window 999419 sent adjust 49157
✓ 1509 modules transformed.
Generated an empty chunk: "webhooks".
Generated an empty chunk: "auth._".
build/client/.vite/manifest.json 4.97 kB │ gzip: 0.80 kB
build/client/assets/route-COVlfczw.css 0.76 kB │ gzip: 0.35 kB
build/client/assets/styles-DT9i95_b.css 444.11 kB │ gzip: 52.26 kB
build/client/assets/webhooks-l0sNRNKZ.js 0.00 kB │ gzip: 0.02 kB
build/client/assets/auth._-l0sNRNKZ.js 0.00 kB │ gzip: 0.02 kB
build/client/assets/Card-kxNZQUmF.js 1.10 kB │ gzip: 0.61 kB
build/client/assets/route-Def8MD1P.js 1.51 kB │ gzip: 0.62 kB
build/client/assets/root-BHx-xGsW.js 1.54 kB │ gzip: 0.88 kB
build/client/assets/app.additional-DzXU392A.js 1.66 kB │ gzip: 0.77 kB
build/client/assets/route-DbHttpoQ.js 1.67 kB │ gzip: 0.89 kB
build/client/assets/List-XFPJrJP2.js 2.64 kB │ gzip: 0.95 kB
build/client/assets/index-smP7HdJ0.js 3.02 kB │ gzip: 1.36 kB
build/client/assets/entry.client-BuLkF7Pt.js 4.05 kB │ gzip: 1.54 kB
build/client/assets/app._index-CN-397WX.js 4.76 kB │ gzip: 1.50 kB
build/client/assets/styles-D0qGk2ED.js 5.96 kB │ gzip: 2.45 kB
build/client/assets/app-mdhkaScv.js 42.97 kB │ gzip: 14.50 kB
build/client/assets/app.orders-C8B8zDGl.js 51.57 kB │ gzip: 15.21 kB
build/client/assets/Page-D1XRtLbL.js 87.05 kB │ gzip: 26.66 kB
build/client/assets/components-Do4CGVy1.js 110.92 kB │ gzip: 36.20 kB
build/client/assets/index-BO32p61F.js 142.23 kB │ gzip: 45.61 kB
build/client/assets/context-hAH23nov.js 154.70 kB │ gzip: 17.72 kB
✓ built in 10.52s
vite v5.4.2 building SSR bundle for production...
✓ 21 modules transformed.
build/server/.vite/manifest.json 0.53 kB
build/server/assets/server-build-COVlfczw.css 0.76 kB
build/server/assets/styles-DT9i95_b.css 444.11 kB
build/server/index.js 50.22 kB
✓ built in 535ms
Prismaクライアントの生成
- スキーマファイル定義に応じたクライアントファイルを生成(DBの種類など)
$ npx prisma generate
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
✔ Generated Prisma Client (v5.18.0) to ./node_modules/@prisma/client in 62ms
Start by importing your Prisma Client (See: http://pris.ly/d/importing-client)
Tip: Need your database queries to be 1000x faster? Accelerate offers you that and more: https://pris.ly/tip-2-accelerate
$ ls -1 node_modules/.prisma/client/
default.d.ts
default.js
deno
edge.d.ts
edge.js
index-browser.js
index.d.ts
index.js
libquery_engine-rhel-openssl-3.0.x.so.node
package.json
schema.prisma
wasm.d.ts
wasm.js
Prismaによるマイグレーション
- Postgresqlの場合、Publicスキーマに_prisma_migrationsテーブルを生成
- スキーマファイルに応じたDBへの変更実施
$ npx prisma migrate deploy
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": PostgreSQL database "prospect_shopify_dev", schema "public" at "proxy-prospect-postgresql-dev1.proxy-csxnhi7fsfaj.ap-northeast-1.rds.amazonaws.com:5432"
1 migration found in prisma/migrations
Applying migration `20240530213853_create_session_table`
The following migration(s) have been applied:
migrations/
└─ 20240530213853_create_session_table/
└─ migration.sql
All migrations have been successfully applied.
Beanstalk
アプリケーションの作成
環境の作成
- Webサーバー環境、または、Worker環境を選択
- 環境名:自由入力
- ドメイン名:{ドメイン名}.ap-northeast-1.elasticbeanstalk.com
- プラットフォームタイプ:Managed
- Platform:Nodeを選択
- Platform branch:Node.js 20 running on 64bit Amazon Linux 2013を選択
- Platform version:6.2.0
- アップロードファイル:
- .envを設定
- .gitを削除
- zipにしてアップロード
- Configuration Preset:Single instance
- Serviceロールの選択:新規作成
- EC2キーの選択:リストから選択
- EC2プロファイルの選択:リストから選択
- VPCの選択:リストから選択
- Instance Subnetの選択:リストから選択
- Database Subnetの選択:リストから選択
- ルートボリュームの選択:SSD 10GBを指定
- EC2セキュリティグループの選択:リストから選択
- Architecture:x86_64
- Instance Type:t3.micro
- AMI ID:指定
- Proxy server:Nginx