AWS Amplify Reactアプリをデプロイするチュートリアルをやってみた

# 初めに

最近 React を学習しています。React アプリをどのように Amplify でデプロイするのか知りたかったので、以下のチュートリアルをやってみました。

https://aws.amazon.com/jp/getting-started/hands-on/deploy-react-app-cicd-amplify/

# ローカルで作成した React アプリを GitHub にプッシュする

ローカルでReact アプリを作成します。

```
PS C:\tutorial> npx create-react-app amplifyapp
PS C:\tutorial> cd amplifyapp
```

GitHub に リポジトリを作成し、プッシュします。ssh 接続がうまくいかなかったので https にしました。

```
PS C:\tutorial\amplifyapp> git init
PS C:\tutorial\amplifyapp> git remote add origin https://github.com/username/amplifyapp.git
PS C:\tutorial\amplifyapp> git add .
PS C:\tutorial\amplifyapp> git commit -m "initial commit"
PS C:\tutorial\amplifyapp> git push origin master
```

リポジトリにプッシュされたファイル・ディレクトリは以下のようになっています。

![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/659dfeae-638a-6f4b-96af-aecf9f864720.png)

# Amplify でアプリケーションをデプロイする

「Host your web app」の「Get started」をクリックします。

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/b23721d8-3d64-9a73-46a9-26509ab6dcf7.png)

GitHub を選択します。

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/2fb3b452-123d-0c14-16b2-ebab35ff9d26.png)

作成したリポジトリを選択します。

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/61561b10-4cb4-4557-03b5-81c9cc591b79.png)

そのまま「次へ」をクリックします。

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/b6e9780d-4238-99b3-6607-fb62007efde2.png)

「保存してデプロイ」をクリックします。

![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/bdf13500-2547-beb1-5d02-49174016cadd.png)

「検証」まで完了したら、URLをクリックしアプリケーションを確認します。

![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/f2554da0-d0f2-1621-0ab7-1bf10699f29a.png)

関連づけているブランチに変更をプッシュすると自動でビルド・デプロイされます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/75a4dcc1-a7e3-ec3f-ba13-c1709b489a2e.png)

# チュートリアルでハマったところ

GitHub にプッシュするところでハマりました。

GitHub の操作が不慣れですが、以下のコマンドはリモートリポジトリをローカルで操作するためのコマンドのようです。

```
PS C:\tutorial\amplifyapp> git remote add origin git@github.com:username/amplifyapp.git
PS C:\tutorial\amplifyapp> git push -u origin main
```

これは ssh 接続するのですが、以下のようなエラーが表示されました。

```
git@github.com: Permission denied (publickey).
```

.ssh/config に以下を追加し、リモートリポジトリにも公開鍵を設定したのですがうまくいきませんでした。

```
Host github github.com
    HostName github.com
    IdentityFile C:/Users/username/.ssh/path/to/id_rsa
    User git
```

なお、ローカルにリポジトリが既に登録されている状態で https に切り替えようとすると以下のようなエラーが出ます。

```
PS C:\tutorial\amplifyapp> git remote add origin https://github.com/username/amplifyapp.git
fatal: remote origin already exists.
```

この場合、以下のように参照しているリモートリポジトリを削除します。最初リモートリポジトリが削除されてしまうのでは、と思いましたがしっかり公式ドキュメントに記載がありました。

> メモ: git remote rm はリモートリポジトリをサーバから削除するわけではありません。 リモートとその参照をローカルリポジトリから削除するだけです。

```
PS C:\tutorial\amplifyapp> git remote rm origin
PS C:\tutorial\amplifyapp> git remote add origin https://github.com/username/amplifyapp.git
```

# 参考記事

https://aws.amazon.com/jp/getting-started/hands-on/deploy-react-app-cicd-amplify/

https://docs.github.com/ja/github/getting-started-with-github/getting-started-with-git/managing-remote-repositories#troubleshooting-remote-new-name-already-exists

https://qiita.com/shizuma/items/2b2f873a0034839e47ce