アマゾン ウェブ サービス(AWS)でしっかりした環境を構築しようとすると、必要な各リソースに対してだけでなく、負荷分散やスケーリング、ログ管理など要求される知識も設定も多いしハードル高いですよね。
その解決策として、AWSではアプリケーション環境の管理を簡単に行うことができる『Elastic Beanstalk』という便利なサービスが提供されています。Elastic BeanstalkではWebアプリケーション公開までに必要な個々のサービスについて十分な知識がなくとも、簡単に一通りの環境を構築することができます。
実際に筆者もよく分からないまま業務システムの構築ができました。
本記事では、Elastic Beanstalkを使った環境構築からWebアプリケーションの公開まで、複数回に分けて解説していきます。実際にAWSサポートの方に問い合わせた点も含めて説明していきますので、ぜひご参考としていただければと思います。
٩( ’ω’)و٩(‘ω’ )وガンバローネ♪
- Elastic BeanstalkとはWebアプリの公開に必要な環境全体を統合的に作成・管理できるサービスです。
- 今後作成していくアプリケーション環境について
Elastic Beanstalkについて
Elastic BeanstalkとはAWSが提供しているサービスで、『アプリケーション環境を統合的に作成・管理』できるものです。
構築するシステム環境全体(インフラも含め)を「アプリケーション」と呼ぶようです。サーバ上で動かすWebアプリケーションのことではありません。ややこしいですね。
利点
VPCの作成からEC2、RDS、S3の作成に加え、負荷分散、オートスケーリング、S3との連携も行ってくれるため、一つ一つのリソースを作成・管理する必要がなくなります。
また、Webアプリケーションのバージョン管理や、デプロイ時に配下の全EC2に自動で展開してくれます。
アプリケーション全体を一元的に管理することが可能となるため、非常に強力なサービスです。
図:Elastic Beanstalkワークフロー
引用元:https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/Welcome.html
料金
Elastic Beanstalkの料金は無料!です。
ただし、構築したアプリケーション環境で使用しているリソース(EC2など)は通常通りの料金がかかりますのでご注意ください。
もちろん各リソースが無料枠内に収まるなら無料で使えます。
構築するアプリケーション環境(ゴール)
アプリケーション環境の構成
本記事でゴールとなるアプリケーション環境は以下の通りです。
- Webサーバ(EC2)はpublicサブネットに配置します。
- Webサーバのインスタンスは通常1つとし、負荷により最大2つまで自動で増やします。
- WebアプリのログをS3に保存します。
- privateサブネットにRDSを配置し、publicサブネット上のEC2のみアクセス可能とします。
- [Users]はSSL/TLS(Https)によりWebアプリにアクセスします。
- [Administrators]はリモートデスクトップ(SSMを使用)により各EC2に接続します。
- RDS管理用にAZ1のpublicサブネットに管理用サーバ(EC2)を1つ作成します。
なお、本来であればWebサーバはプライベートサブネットに配置してNATゲートウェイ経由でのアクセスとするべきですが、今回はパブリックに配置しています。
(NATゲートウェイは稼働時間にも費用が掛かります。予算やリスクを考慮し配置場所を検討してください。)
では次記事より構築を開始していきましょう。
関連記事: