Site cover image

kohei-matsunobu-tech-blog

クラウド・プログラミング関連などのちょっとした気づきを書いてます!Notionでメモしていることを公開してます。このブログはスモールスタートしたばかりなので、UI/UXなどは定期的に改善予定です。

Post title iconastro-notion-blogをAWS Amplifyにホスティングする

前提条件

  • AWSアカウントを持っていること
  • Gitリポジトリにastro-notion-blogのコードがあること

手順

1.Amplifyにアクセスし、使用を開始する

AWSマネジメントコンソールからAmplifyを開く。

Amplifyホスティングの[使用を開始する]ボタンを押下する。

Image in a image block
Image in a image block
2.AmplifyとGitHubリポジトリの連携

既存のコードから[GitHub]を選択し、[続行]ボタンを押下する。

Image in a image block

GitHubのサインイン画面が表示されるので、認証を行う。

Image in a image block

GitHubの認証に成功したら、astro-notion-blogのリポジトリを選択し、ブランチはmainに指定。その後、[次へ]ボタンを押下する。

Image in a image block
3.ビルドコマンド設定

アプリケーション名は任意でOK。

基本的には、Astro公式のビルドコマンドを設定することでビルド可能だが、astro-notion-blogにおいては、環境変数の設定をしないとビルドに失敗する。

[構築とテストの設定]の[編集]から以下のコード(環境変数設定含む)をコピペでOK。

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
      	# 環境変数の追加
        - echo "DATABASE_ID" >> .env
        - echo "NOTION_API_SECRET" >> .env
        - npm run build
  artifacts:
    baseDirectory: /dist
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*
Image in a image block

その後、[環境変数]セクションに以下環境変数を設定し、[次へ]ボタンを押下する。

環境変数名説明
DATABASE_ID公開予定のNotion DBのID。astro-notion-blogのREADMEに取得手順が記載されている。
NOTION_API_SECRETNotionインテグレーションのシークレットキー。
PUBLIC_GA_TRACKING_IDGoogle Analyticsのトラッキングコード(任意)。画像にはないが設定済み。
Image in a image block
4.デプロイ

確認画面の[保存してデプロイ]ボタンを押下することで、astro-notion-blogがAmplifyにホスティングされる。

デプロイに失敗する場合

私が確認できているデプロイエラーについての解消方法を記載しています。

Node.js v16.19.0 is not supported by Astro! Please upgrade Node.js to a supported version: ">=18.14.1"

ビルドする際にNode.jsのバージョンを18.14.1以上にアップグレードする必要がある。

[ライブパッケージの更新]セクションの[パッケージバージョンの上書きを追加]から[Node.js version]を選択する。

Node.jsバージョンを18.14.1以上に設定してから、再度デプロイする。(v20.11.0にしてみた)

Image in a image block
Image in a image block

node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)

Node.jsのバージョンを18.14.1以上にしてから、再度デプロイした際に、GLIBC_2.27、GLIBC_2.28が存在しないというエラーでデプロイに失敗する。

以下の記事と同じ現象。。

Amplifyホスティングで使用しているデフォルトイメージを変更すれば、解決するとのことだったので試してみる。

Amplify画面左側の[ビルドの設定]の[Build image settings]にある[Edit]ボタンを押下する。

Image in a image block

[構築イメージ]を[Amazon Linux:2023]に設定し、[保存]ボタンを押下する。

Image in a image block

再デプロイしてみると、無事にデプロイ完了した!

Image in a image block

ブラウザ上で問題なくastro-notion-blogが表示されることを確認。

Image in a image block

Amplify + Route53のドメイン設定はまた次の機会で