AWS AmplifyとElastic Beanstalk、2通りの簡単レシピを比較(Elastic Beanstalk編)
みなさんこんにちは!Airitechシステム開発グループの岡崎です。
突然ですが、AWSのサービスってたくさんありますよね。EC2やRDS、S3など本当にさまざまです。
ただ、たくさんありすぎてどれを使えば良いか分からないといった悩みを持つ方もいると思います。アプリ開発するにしても、インフラなどの開発と直接関係のないところにはなるべく手間をかけずにサクッとリリースできたら便利ですよね。
今回はそんな数あるAWSサービスの中から「Elastic Beanstalk」と「AWS Amplify」の2つに絞って、実際に触ってみた所感と比較、どんな用途に適しているのかを全2回に分けて考察していきたいと思います!
1. 2つのサービス
1つ目の「Elastic Beanstalk」についてです。
(出典:AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪)
Elastic Beanstalkは、WebアプリケーションやWebサービスの実行環境を構築し、デプロイ、管理、スケールを我々の代わりに行ってくれるサービスです。
2つ目の「AWS Amplify」についてです。
(出典:これからはじめる AWS Amplify)
AWS AmplifyはCLI、Framework、Consoleの3サービスで構成されており、主にスタンダードな構成の構築を担当します。
また、CLIを使えば対話形式にバックエンドを構築しWebアプリケーションをデプロイ、ホスティングまで行うことが可能です。
本記事では、1つ目のElastic Beanstalkについて深掘りしていきたいと思います。
2. Elastic Beanstalkって何?
公式ページより。
Q: AWS Elastic Beanstalk とは何ですか?
A: AWS Elastic Beanstalk により、開発者は AWS クラウドのアプリケーションを迅速にデプロイし管理することがより簡単になります。開発者は単にそのアプリケーションをアップロードするだけで、Elastic Beanstalk が自動的に容量のプロビジョニング、負荷分散、Auto-Scaling、およびアプリケーション状態モニタリングといったデプロイの詳細を処理します。
つまり、アプリケーションを開発してElastic Beanstalkに渡すだけで実行できる環境を用意してくれることになります。
また、必要に応じてElastic Beanstalkのリソースを調整できるため、詳しく包括的な制御をすることが可能です。
3. 特徴
・実行基盤の自由度が高く、速く簡単にアプリケーションをデプロイ可能
・インフラストラクチャの準備・運営からアプリケーションスタックの管理までの自動化が可能
・オートスケーリングによりコストを抑えながらスケーラビリティを確保できる
・Java、PHP、.NET、Node.js、Python、Rubyに対応
4. 構成要素
(出典:AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk)
Elastic Beanstalkは、まず「アプリケーション」という入れ物を作り、その中で実際にソースコードをアップロードするサーバやネットワークを組み合わたリソースの集まりである「環境」を管理します。
また、「アプリケーション」は複数の「環境」を管理することができます。
※Elastic Beanstalk上の「アプリケーション」と、ユーザーが実際にアップロードする「アプリケーション」とで指すものが異なるため、ここでは後者を「アプリ」と称します。
5. サンプルアプリケーションを使って構築してみる
まず、AWSコンソールから「Elastic Beanstalk」を選択します。
「Create Application」を選択します。
「アプリケーション名」に適当な文字列を入力し、「プラットフォーム」「アプリケーションコード」を選択します。
VPC等の関連付けをしたい場合は「より多くのオプションの設定」を選択します。
編集が完了したら、「アプリの作成」を選択します。
構築が終わるまで、数分待ちます。
ヘルスがOKになれば、構築は完了です。URLにアクセスしてデプロイしたアプリを確認してみましょう。
デプロイしたサンプルアプリの画面です。
このように、インフラ系の知識が無くても指定したVPC内でサクッとアプリを動かせるので、とにかく早くリリースするという点においては便利に使えそうですね。
6. Elastic Beanstalkの料金
Elastic Beanstalkは追加料金がかかりません。
アプリケーションの保存・実行に必要なAWSリソース(EC2・EBS・RDS・S3など)に対してのみ課金されます。
7. まとめ
手軽にアプリをデプロイする環境が構築できる「AWS Elastic Beanstalk」いかがでしたでしょうか。
個人的にはなるべく学習コストをかけずに、インフラ部分をまるごと任せて開発に専念できるという点が非常に便利だと感じました。
Elastic Beanstalkの裏側では多くのAWSリソースが構築されているため、CloudFormationの知識と合わせればさらに便利になるかもしれません!
効率よく開発したい方、ぜひ使ってみてください。
ここまで読んでいただきありがとうございました!
次回は「AWS Amplify」について深堀りながら、2つのサービスを使ってみた感想と用途に応じた比較をします!
8. Airitechのスキルアップサポート
Airitechでは、社員が最高の学習を行えるようスキルアップサポートを行っています。
また、新しいことにチャレンジしたい、新しい技術を習得したい仲間を募集しています。一緒に働いてみたいと思う方は、こちらものぞいてみてください。
Airitechの採用情報はこちら
https://www.airitech.co.jp/recruit