AWS BeanstalkでRemix版Shopifyアプリを運用<情報不足で中止>

Remix

はじめに

  • DBマイグレーションはEC2からおこなう
  • CIツールは取り扱わない

結末

  • 情報不足で動かすことができなかったので一旦中止する

参考

開発環境での作業

Shopify 関連

  • Shopify Partnerへのデプロイ
$ shopify app deploy --reset

リリース準備環境での作業

設定ファイルの更新

  • .envにステージに応じた設定を入力
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

関連記事

カテゴリー

アーカイブ

Lang »