{"componentChunkName":"component---src-templates-info-posts-js","path":"/information/WEB/cb62c6ec-70f8-5bd8-ae53-de4e318cbef5","result":{"data":{"microcmsInformation":{"id":"cb62c6ec-70f8-5bd8-ae53-de4e318cbef5","title":"【AWS Amplifyで作るフルスタックReactアプリ #1】Reactアプリの作成からGitHub自動デプロイまで","date":"2026 年 04 月 16 日","image":{"url":"https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/afec737e26e74458b636be374a1baa4d/Build_a_Full_Stack_React_Application_Top.png"},"author":{"author":"Goubara"},"body":"<h2 id=\"h6348936947\">Reactアプリの公開から認証・データ保存・画像アップロード、最後の削除まで一通り体験</h2><p>Reactで画面を作るところまではできても、認証やデータ保存、画像アップロードまで含めて「ちゃんと動くアプリ」にしようとすると、一気に難しく感じることがあります。そこで今回は、AWS公式のハンズオン Build a Full Stack React Application を実際に追ってみました。公式では Beginner 向け、所要時間は約30分、コストは Free Tier eligible と案内されており、Reactアプリのホスティングから認証・データ・ストレージの接続、最後のクリーンアップまでを4つのタスクで体験できる構成です。</p><p>先に感想を言うと、このチュートリアルは 「まず公開する」「あとからバックエンド機能を足す」 という順番がかなり分かりやすいです。最初から認証やDBの細かい話に入るのではなく、Task 1 でまず React アプリをデプロイし、Task 2〜3 で認証・データ・画像保存を足していくので、全体像をつかみやすいと感じました。公式の学習目標も、React アプリのホスト、認証・データ・ストレージの追加、cloud sandbox の起動、ノートの作成・更新・削除を実装する、という流れになっています。</p><p>このチュートリアルで最終的に作るのは、ユーザーがサインアップしてログインし、自分のノートを作成・表示・削除できる Notes アプリです。さらに画像も保存できるので、単なるフロントエンドの練習ではなく、認証付きフルスタックアプリの基本形 をまとめて試せる内容になっています。</p><hr><h2 id=\"he43245be18\">タスク1：Reactアプリのデプロイとホスティング ― AWS Amplifyでフルスタックアプリを構築する</h2><p>AWS Amplifyの公式チュートリアルを実際に手を動かしながら進めています。この記事では、最初のステップであるTask 1の内容と、触ってみて感じたことをまとめます。Task 1のゴールは、Reactアプリを作成し、GitHub経由でAWS Amplify Hostingにデプロイして公開URLを取得することです。</p><h2 id=\"h526e49855e\">Task 1の全体像</h2><p>細かい手順に入る前に、Task 1がどういう順番で進むのかを先に整理しておきます。</p><ol><li>Reactプロジェクトを作成する</li><li>GitHubリポジトリに初回push</li><li><code>npm create amplify@latest -y</code> でAmplifyのバックエンド構成を追加</li><li>その変更をGitHubにpush</li><li>Amplifyコンソールでリポジトリとmainブランチを接続</li><li>Save and deployで初回デプロイ</li><li><code>App.jsx</code> を書き換えてpushし、自動デプロイの動作を確認</li></ol><p>最初に引っかかりやすいのが、<code>npm create amplify@latest -y</code> を「Amplifyコンソールで接続したあと」にやるのか「前」にやるのか、という点です。公式チュートリアルは<strong>接続の前</strong>にこのコマンドを実行し、Amplify構成ごとGitHubにpushしてから接続に進みます。こうしておくと、コンソールから接続した瞬間にバックエンド定義を含んだ状態で初回デプロイが走り始めます。</p><h2 id=\"hc79a51b589\">Reactプロジェクトの作成とローカル確認</h2><p>最初に以下のコマンドでReactプロジェクトを作成します。</p><p>bash</p><pre><code class=\"language-bash\">npm create vite@latest notesapp -- --template react</code></pre><p>続けて依存パッケージをインストールし、ローカル開発サーバーを起動します。</p><p>bash</p><pre><code class=\"language-bash\">cd notesapp\nnpm install\nnpm run dev</code></pre><p>ブラウザ上にReactの初期画面が表示され、自分のPC上でアプリが動くことをまず確認できます。</p><figure><img src=\"https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/11bae0b6bf35419b8d09e1c3722b0ffc/Build_a_Full_Stack_React_Application.png\" alt=\"\" width=\"1419\" height=\"951\"></figure><h2 id=\"h55ca08d64c\">GitHubへの初回push</h2><p>続いて<a href=\"https://github.com/\">GitHub</a>に <code>notesapp</code> リポジトリを作成し、ローカルのコードをpushします。</p><figure><img src=\"https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/95279686c9b547d790efed295a4c920b/Build_a_Full_Stack_React_Application2.png\" alt=\"\" width=\"1259\" height=\"958\"></figure><p>bash</p><pre><code class=\"language-bash\">git init\ngit add .\ngit commit -m &quot;initial commit&quot;\ngit remote add origin https://github.com/&lt;your-username&gt;/notesapp.git\ngit push -u origin main</code></pre><p>Amplify HostingはGitHub上のリポジトリを起点に自動デプロイする仕組みのため、ここでGitHubにコードを置くことで「ローカルで修正してpushするだけで公開アプリが更新される」状態の土台ができます。</p><h2 id=\"hddc74f3a6b\">Amplifyバックエンド構成の追加</h2><p>GitHubへの初回pushが終わったら、<strong>Amplifyコンソールで接続する前に</strong>以下のコマンドを実行します。</p><p>bash</p><pre><code class=\"language-bash\">npm create amplify@latest -y</code></pre><p>このコマンドは画面を書き換えるものではなく、プロジェクト直下に <code>amplify/</code> フォルダを作り、その中にバックエンド定義ファイルのひな形を生成するだけのコマンドです。実行直後にブラウザ上の見た目が変わらないのは正常で、慌てる必要はありません。</p><p>生成されるのは <code>amplify/backend.ts</code> や <code>amplify/auth/resource.ts</code>、<code>amplify/data/resource.ts</code> といったTypeScriptファイルです。ここに認証・データ・ストレージといったバックエンドの設計をコードで書いていくことになります。AWSコンソールをポチポチ操作して構築するのではなく、すべてコードで管理するのがAmplify Gen 2の前提です。</p><p>重要なのは、この段階で起きているのはあくまで「ローカルにひな形を作る」ことだけで、AWS側にバックエンド用のリソースはまだ何も作られていない、という点です。実際にAWS上に開発用のバックエンド環境(cloud sandbox)が立ち上がるのは、次のTaskで <code>npx ampx sandbox</code> を実行したときになります。</p><p>ひな形を生成したら、その変更もGitHubへpushしておきます。</p><p>bash</p><pre><code class=\"language-bash\">git add .\ngit commit -m &quot;add amplify backend scaffold&quot;\ngit push origin main</code></pre><p>こうしておくと、次のコンソール接続のステップで、Amplify構成を含んだ状態のリポジトリをそのまま接続できるようになります。</p><h2 id=\"h11ce6b76fa\">Amplifyコンソールでの接続とデプロイ</h2><p>GitHub側に <code>amplify/</code> フォルダを含んだ状態が揃ったら、<a href=\"https://ap-southeast-2.console.aws.amazon.com/amplify/apps\">AWS Amplifyコンソール</a>での接続作業に進みます。ここはUI操作が細かく分かれているので、一段ずつ追っていきます。</p><p>1.Amplifyコンソールで 「<strong>アプリケーションのデプロイ」</strong> を選択</p><figure><img src=\"https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/f25441d9d1654e42961d970c025341af/Build_a_Full_Stack_React_Application3.jpeg\" alt=\"\" width=\"1231\" height=\"885\"></figure><p>2.<strong>Deploy your app</strong> の画面で <strong>GitHub</strong> を選択</p><figure><img src=\"https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/c903369ac69242809846346233fff370/Build_a_Full_Stack_React_Application4.jpeg\" alt=\"\" width=\"1240\" height=\"887\"></figure><p>3.GitHub認証を済ませ、Amplifyにリポジトリアクセスを許可</p><figure><img src=\"https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/9d155bb0682f4057aa0662f13fb43419/Build_a_Full_Stack_React_Application5.png\" alt=\"\" width=\"774\" height=\"653\"></figure><p>4.対象のリポジトリと <code>main</code> ブランチを選択</p><figure><img src=\"https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/3b7f6d61fdcb43f58d17b10d42eae296/Build_a_Full_Stack_React_Application6.png\" alt=\"\" width=\"774\" height=\"653\"></figure><p>5.ビルド設定はデフォルトのまま（Amplifyが自動検出してくれます）</p><p>6.「<strong>保存してデプロイ」</strong> をクリック</p><figure><img src=\"https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/6b6b336f49b94e0ebaafd1e409e685ef/Build_a_Full_Stack_React_Application7.jpeg\" alt=\"\" width=\"1224\" height=\"885\"></figure><p>7.デプロイ完了後、発行された <code>amplifyapp.com</code> のURLをブラウザで開いて表示を確認</p><figure><img src=\"https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/038ce0486a7e42429343b2111d76ce0a/Build_a_Full_Stack_React_Application8.png\" alt=\"\" width=\"1231\" height=\"979\"></figure><p>ここまで進めた時点で、Amplify Hosting側のAWSリソースと公開URLはすでに作られている状態です。ただし、さきほど <code>amplify/</code> フォルダに書いた認証・データ・ストレージの定義に対応する開発用バックエンド(sandbox)のほうはまだ作られていません。この区別は次のTaskでsandboxを起動するときに効いてくるので、頭の片隅に置いておくと混乱しません。</p><h2 id=\"hd23bbeae69\">pushした変更が公開サイトに反映されるか試す</h2><p>Task 1の最後に、<code>src/App.jsx</code> の表示内容を書き換えます。以下は動作確認の意図が伝わりやすいように<strong>簡略化した例</strong>です（公式ではReactロゴや <code>App.css</code> をそのまま残した状態で一部だけ更新しています）。</p><p>jsx</p><pre><code class=\"language-jsx\">function App() {\n  return (\n    &lt;div&gt;\n      &lt;h1&gt;Hello from Amplify&lt;/h1&gt;\n    &lt;/div&gt;\n  );\n}\n\nexport default App;</code></pre><p>変更をGitHubにpushします。</p><p>bash</p><pre><code class=\"language-bash\">git add .\ngit commit -m &quot;update App.jsx&quot;\ngit push</code></pre><p>あとはAmplify Hosting側がpushを検知し、自動的にビルドとデプロイを走らせてくれます。しばらく待ってから公開URLを開き、表示が <code>Hello from Amplify</code> に変わっていれば、GitHub連携による自動反映が正しく機能していることが確認できます。</p><p>ここで見ているのは <code>npm run dev</code> のようなローカルのプレビューではなく、GitHubにpushした変更がクラウド上の公開サイトまで届く、本番に近い流れそのものです。派手な見た目の変化はありませんが、この先Task 2以降で認証やデータベースを組み込んでいくうえで、「コードを書き換えてpushすれば公開アプリに反映される」という土台が動いていることを最初に確かめておく意味のある工程です。</p><h2 id=\"ha214098e44\">まとめ</h2><p>Task 1では、Reactプロジェクトの作成からGitHub経由でAmplify Hostingにデプロイするまで、フルスタックアプリの「土台」にあたる部分を一通り動かしてみました。</p><p>一番のポイントは、npm create amplify@latest -y を Amplifyコンソールで接続する前に実行し、amplify/ フォルダを含んだ状態でGitHubにpushしておくことです。この順番で進めておくと、コンソールから接続した瞬間にバックエンド定義ごと初回デプロイが走るので、あとから構成を足して再デプロイし直す手間が発生しません。</p><p>もう一つ意識しておきたいのは、この段階で実際にAWS上に作られているのはAmplify Hosting側の公開用リソースだけで、認証やデータベースといったバックエンドの実体はまだ何も作られていない、という点です。amplify/ フォルダに書いてあるのは設計図のようなもので、それがAWSリソースになるのは次のTaskで cloud sandbox を起動したタイミングになります。この区別ができていると、Task 2以降で「どこまでがローカルの話で、どこからがクラウド側の話なのか」がぶれずに読み進められます。</p><p>見た目としては「Hello from Amplify」が表示されるだけの地味な段階ですが、GitHubにpushすれば公開サイトに反映される自動デプロイの流れがすでに動いている、という事実がTask 1の一番の収穫です。このあと認証やデータを足していく工程でも、「コードを書いてpushすれば反映される」という基本の流れは最後まで変わりません。</p><p>次回はTask 2として、cloud sandboxの起動と認証機能の追加に進みます。</p>","category":{"category":"WEB"}}},"pageContext":{"id":"cb62c6ec-70f8-5bd8-ae53-de4e318cbef5"}},"staticQueryHashes":["3649515864","63159454"]}