AWS App RunnerとAmazon ECRでGeoServerを構築してみた

![img](https://day-journal.com/memo/images/try-094_01.png)

### AWS App RunnerとAmazon ECRでGeoServerを構築してみました :tada:  

<br>

詳細として下記について説明します。

- [リポジトリ作成](https://qiita.com/dayjournal/items/0897862d2f85d25caad0#%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E4%BD%9C%E6%88%90)
- [イメージ登録](https://qiita.com/dayjournal/items/0897862d2f85d25caad0#%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E7%99%BB%E9%8C%B2)
- [デプロイ](https://qiita.com/dayjournal/items/0897862d2f85d25caad0#%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4)

<br>

## リポジトリ作成

はじめに、Amazon ECRでリポジトリを作成する方法です。  

AWSマネジメントコンソール → Elastic Container Registryをクリック。
![img](https://day-journal.com/memo/images/amazon-ecr-001_01.png)

「リポジトリの作成」をクリック。
![img](https://day-journal.com/memo/images/amazon-ecr-001_02.png)

一般設定・詳細を設定 → 「リポジトリを作成」をクリック。  
今回はパブリックで設定しました。  
![img](https://day-journal.com/memo/images/amazon-ecr-001_03.png)

リポジトリが作成されたのを確認できます。
![img](https://day-journal.com/memo/images/amazon-ecr-001_04.png)

これでリポジトリの作成は完了です！

<br>

## イメージ登録

次に、Amazon ECRでイメージを登録する方法です。  

リポジトリを選択 → 「プッシュコマンドの表示」をクリック。
![img](https://day-journal.com/memo/images/amazon-ecr-002_01.png)

コマンドが表示されるのでコピーしておく。
![img](https://day-journal.com/memo/images/amazon-ecr-002_02.png)

AWS CLIでコマンドを実行しリポジトリにイメージをプッシュします。  
今回はGeoServerのDockerイメージ[kartoza/geoserver](https://hub.docker.com/r/kartoza/geoserver)を利用しました。  

```sh
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/xxxxx
```

```sh
docker tag kartoza/geoserver:latest public.ecr.aws/xxxxx/sample:latest
```

```sh
docker push public.ecr.aws/xxxxx/sample:latest
```

![img](https://day-journal.com/memo/images/amazon-ecr-002_03.png)

プッシュが完了したら対象のリポジトリをクリック。
![img](https://day-journal.com/memo/images/amazon-ecr-002_04.png)

イメージが登録されたのを確認できます。
![img](https://day-journal.com/memo/images/amazon-ecr-002_05.png)

これでイメージの登録は完了です！

<br>

## デプロイ

最後に、AWS App Runnerでデプロイをする方法です。  

AWSマネジメントコンソール → AWS App Runnerをクリック。
![img](https://day-journal.com/memo/images/aws-app-runner-001_01.png)

「App Runnerサービスを作成」をクリック。
![img](https://day-journal.com/memo/images/aws-app-runner-001_02.png)

ソース・デプロイ設定を設定 → 「次へ」をクリック。  
今回はECRパブリックで設定したイメージを指定。
![img](https://day-journal.com/memo/images/aws-app-runner-001_03.png)

サービス設定を設定 →「次へ」をクリック。  
オプションのメモリとCPUの初期値が少ないので、GeoServerが動作する範囲まであげます。その他はデフォルト値で設定します。  
![img](https://day-journal.com/memo/images/aws-app-runner-001_04.png)

「作成とデプロイ」をクリック。
![img](https://day-journal.com/memo/images/aws-app-runner-001_05.png)

しばらく待つと環境構築が完了します。  
詳細にURLが表示されるので「/geoserver」を追加してブラウザでアクセスしてみます。  
![img](https://day-journal.com/memo/images/aws-app-runner-001_06.png)

GeoServerが起動されているのを確認できました！
![img](https://day-journal.com/memo/images/aws-app-runner-001_07.png)

<br>
<br>

AWS App RunnerとAmazon ECRについて、他にも記事を書いています。よろしければぜひ :bow:
<a href="https://day-journal.com/memo/tags/AWS-App-Runner" target="_blank">tags - AWS App Runner</a>
<a href="https://day-journal.com/memo/tags/Amazon-ECR" target="_blank">tags - Amazon ECR</a>

やってみたシリーズ :grinning:
<a href="https://day-journal.com/memo/tags/Try" target="_blank">tags - Try</a>

https://qiita.com/dayjournal/items/717fa60d113a549c1af6

https://qiita.com/dayjournal/items/05653341a75431ce6110

<br>
<br>

<a href="https://dayjournal.booth.pm" target="_blank"><img src="https://day-journal.com/memo/images/etc/book.png" alt="book"></a>