
AWS 入門の記録(122)Amplify でReact アプリケーションをホストしてみる(その2)
前回、React公式チュートリアルで作成した三目並べをAWS Amplifyでホストしてみようと思いたち、GitHubとの接続ができたものの、デプロイした結果は真っ白なページでした。今回は、デプロイして、ゲームが実行できることを確認しました。
AWS AmplifyでReactアプリケーションをホストする
基本に戻ろう
AWS公式ドキュメントの「AWS で React アプリケーションを構築する」のReactアプリケーションの初期状態のままデプロイしてみることにしました。手順に従って操作している途中、ふと「フレームワーク React って自動認識されているし、ビルド設定も警告が表示されていない」ことに気が付きました。


一方、私の三目並べの方は、フレームワークはWebと表示されていて

ビルドも、警告が表示されていて、パス設定など空欄になっていました。何が違うのか?「npx create-react-app amplifyapp」で作成した基本のアプリケーションと比較してみました。すると、

つまり、アプリケーションのディレクトリの1階層上で、Gitへのソース追加をしてしまっていたのでした。Amplifyはリポジトリと同期すると、そこをアプリケーションのルートとして使用するので、その下の階層にあると、Reactアプリケーションとは認識してくれないんですね。
正しいディレクトリからプッシュし直し
正しいディレクトリと接続して、ソースをプッシュしました。同期をしたので、前回のソースはディレクトリごと削除されました。これで大丈夫かな?

表示を確認
今度はビルド設定も自動でReactと認識されたので、設定を変更しなくてもビルドしてデプロイできました。実行確認をしてみると、白いのです。前回EC2では実行できていたので、EC2でも念の為実行してみました。そしたら、こちらも白いのです。

ということは、ソースが壊れているということです。先ほど、試しにReactDOM.renderの位置をimportの直後に移動したのを、もとに戻しました。(上から順番に処理されるってことか。。。)EC2で実行できることを確認しました。
EC2で実行した三目並べ、正しい動作になった! pic.twitter.com/n2hLnunbkf
— きー坊ASP.Net なう 💉💉 (@jnkykn) January 23, 2022
このバージョンをGitHubにプッシュしてAmplifyでホストしようと思います。
Amplify でデプロイした方も、成功した!!!やった!!!うれしい!!! pic.twitter.com/vu4mRlvhfl
— きー坊ASP.Net なう 💉💉 (@jnkykn) January 23, 2022

少々迷子になりかけましたが、Reactチュートリアルの三目並べをAWS Amplifyでホストすることができました!うれしい!
ちなみに、AWS Amplifyの料金は、基盤として使用する AWS のサービスに対してのみ発生するので、Amplify フレームワークの使用には、追加料金は発生しないそうです。静的ウェブホスティングには無料枠があるので、お試ししやすい!
さて、今回の学習はここまで。次回は次の週末の予定です。Reactの学習は別テーマとしてAWS入門の記録と分けたほうがいいかなぁと考え中です。