ElasticBeansTalk + Spring boot でEverything(It's you)してみた

# Elastic Beanstalkって？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/68155040-90dd-a0de-a1bd-f377e7d5c895.png)

> AWS Elastic Beanstalk は、Java、.NET、PHP、Node.js、Python、Ruby、Go および Docker を使用して開発されたウェブアプリケーションやサービスを、Apache、Nginx、Passenger、IIS など使い慣れたサーバーでデプロイおよびスケーリングするための、使いやすいサービスです。

というのは漠然とわかっていたのですが、触ったことがなかったので、とりあえずElastic Beanstalk x Spring bootで何かやってみたかったから、ちょっと触ってみた程度です。

例によってEverything(It's you)です。get叩いて１フレーズ返すだけですが・・
[Spring bootのサンプル](https://github.com/happy2mylife/spring-sample-everything-its-you)


# アプリケーション作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/342c9c5e-46a6-371b-1e6b-77a9d68ea2f1.png)

# 環境作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/d2335128-397a-323d-ce18-40aebceac9f0.png)

- ウェブサーバー環境を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/9aa10809-c1aa-59eb-5e43-7fad41184b71.png)

- アプリケーション名の入力
- プラットフォームはSpring Bootのjarを動かしたいのでJavaを選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/86043e21-c122-2e65-c451-3f2b1f0e5d6c.png)

- ビルドしたjarを選択してアップロード

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/3a6208c0-f750-85fc-4e76-0a1112b416a8.png)


#### 環境構築が始まります

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/933bcac6-4193-b742-4233-9d5f2a2508cb.png)

- しばらく待つともうデプロイ完了です

# 早速アクセス

![スクリーンショット 2022-04-09 8.06.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/53e3d612-a680-edd2-bfb1-36a81c46399c.png)

- URLにあるパスに、あとはSpringBootで作成したREST APIを叩くだけです。

![スクリーンショット 2022-04-09 8.08.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/2093b033-db61-7f8e-381b-4c1ec13b3b55.png)

- 無事にGETできました！


# 作成された環境について

EC2インスタンスやロードバランサーなど一通りの環境が構築されてました。
SpringBootアプリを除けばほんの5分くらいで実行できる状態に。

| カテゴリ | オプション |
|:-:|:-|
|  ソフトウェア |X-Ray デーモン: 無効<br> ログのストリーミング: 無効<br> ログのローテーション: 無効<br>環境プロパティ: GRADLE_HOME, M2, M2_HOME   |
|  インスタンス | IMDSv1: 無効<br> IOPS: コンテナのデフォルト<br>インスタンスセキュリティグループ: awseb-e-XXXXXXXX-stack-AWSEBSecurityGroup-XXXXXXXX<br>サイズ: コンテナのデフォルト<br>スループット: コンテナのデフォルト<br>ルートボリュームタイプ: コンテナのデフォルト<br>間隔のモニタリング: 5 分   |
| 容量  |AMI ID: ami-xxxxxxxxxxxxxxxx<br>アベイラビリティーゾーン: Any<br>インスタンスタイプ: t2.micro,t2.small<br>スケーリングのクールダウン: 360 秒<br>メトリクス: NetworkOut<br>上限しきい値: 6000000<br>下限しきい値: 2000000<br>単位: Bytes<br>増分のスケールアップ: 1<br>増分のスケールダウン: -1<br>容量の再分散を有効にする: 無効<br>最大: 4<br>最小: 1<br>期間: 5<br>環境タイプ: load Balancing、Auto Scaling<br>統計: 平均<br>超過時間: 5<br>配置:   |
|  ロードバランサー | プロセス: 1<br>リスナー: 1<br>ルール: 0<br>ログの保存: 無効<br>ロードバランサーの種類: application<br>共有: false   |
| ローリング更新とデプロイ  | コマンドタイムアウト: 600<br>デプロイメントポリシー: 1 回にすべて　<br>バッチサイズ: 100%<br>ヘルスチェックを無視: 無効<br>ローリング更新: 無効<br>正常のしきい値: Ok   |
| セキュリティ  |EC2 キーペア: --<br>IAM インスタンスプロフィール: aws-elasticbeanstalk-ec2-role<br>サービスロール: arn:aws:iam::xxxxxxxxxxxx:role/aws-elasticbeanstalk-service-role   |
|  モニタリング | CloudWatch のカスタムメトリクス-インスタンス:<br>CloudWatch のカスタムメトリクス-環境:<br>HTTP 4xx を無視: 無効<br>システム: 拡張<br>ヘルスイベントログのストリーミング: 無効  |
|  マネージド更新 | 管理された更新: 無効   |
| 通知  | E メール: --  |
| ネットワーク   |この環境は VPC の一部ではありません。   |
| データベース   |   |


# 今後

とりあえず動かしてみた程度なので、もう少し深堀りしていきたい！