AWS のコンピューティング環境を自分なりにまとめてみました
EC2
- データベースソフトウェア
- あくまでコンピューティング環境のみをもち、S3 や RDS と組み合わせることになる
- インスタンス生成時には OS がインストールされているだけ
- その分柔軟性が高い
Elastic Beanstalk
- フルマネージド
- スケーリングやインフラに関する作業がほとんどなくなる
- ほぼコマンド一発でデプロイ可能
- デプロイのたびにインスタンスが生成されるためデータの永続化が必須
- 複雑なことしないならフルマネージドサービス最高
Lightsail
- シンプルな web アプリケーション
- 単一サーバーのビジネスソフトウェア
- 開発/テスト環境
- インスタンス、ロードバランサー、DB を含んだオールインワンツール
- ウェブに必要な機能をほとんど含んだもの
- その分柔軟性にかける
ECS
- EC2 インスタンス上でコンテナベースのクラスタリング
- マイクロサービス
- バッチ処理
- ウェブアプリケーション
- コンテナ化されたアプリを AWS で簡単に実行・スケールできる
Fargate
- EC2 インスタンスが不要
- コンテナ管理サービス
- EC2 が不要なため、コンテナのスケールに合わせて EC2 インスタンスのスケールを設計しなくてもよい
- サーバレスコンテナを実行する
Lambda
- ウェブアプリケーション
- モバイルバックエンド
- ファイル処理ワークロード
- インフラ環境を用意する必要はない
- スクリプトさえ用意すればすぐに実行できる(言語は限られる)
- イベント駆動なので、EC2 のように一日中インスタンスを立ち上げておく必要がない
まとめ
以上 AWS のコンピューティング環境について簡単にまとめてみました。自分でこれらのツールを用いてサービスを作るときのために、ほとんどのサービスを触っておき何ができて、何ができないのか、強みと弱みを把握できていると焦らずに済みますね。AWS や GCP のようなクラウドサービスはチュートリアルが豊富なので無料枠で試してみてはいかがでしょうか