onemuri.space

AWS コンピューティング環境の比較

AWS のコンピューティング環境を自分なりにまとめてみました

EC2

  • データベースソフトウェア
  • あくまでコンピューティング環境のみをもち、S3 や RDS と組み合わせることになる
  • インスタンス生成時には OS がインストールされているだけ
  • その分柔軟性が高い

Elastic Beanstalk

  • フルマネージド
    • スケーリングやインフラに関する作業がほとんどなくなる
  • ほぼコマンド一発でデプロイ可能
  • デプロイのたびにインスタンスが生成されるためデータの永続化が必須
  • 複雑なことしないならフルマネージドサービス最高

Lightsail

  • シンプルな web アプリケーション
  • 単一サーバーのビジネスソフトウェア
  • 開発/テスト環境
  • インスタンス、ロードバランサー、DB を含んだオールインワンツール
  • ウェブに必要な機能をほとんど含んだもの
  • その分柔軟性にかける

ECS

  • EC2 インスタンス上でコンテナベースのクラスタリング
  • マイクロサービス
  • バッチ処理
  • ウェブアプリケーション
  • コンテナ化されたアプリを AWS で簡単に実行・スケールできる

Fargate

  • EC2 インスタンスが不要
  • コンテナ管理サービス
  • EC2 が不要なため、コンテナのスケールに合わせて EC2 インスタンスのスケールを設計しなくてもよい
  • サーバレスコンテナを実行する

Lambda

  • ウェブアプリケーション
  • モバイルバックエンド
  • ファイル処理ワークロード
  • インフラ環境を用意する必要はない
  • スクリプトさえ用意すればすぐに実行できる(言語は限られる)
  • イベント駆動なので、EC2 のように一日中インスタンスを立ち上げておく必要がない

まとめ

以上 AWS のコンピューティング環境について簡単にまとめてみました。自分でこれらのツールを用いてサービスを作るときのために、ほとんどのサービスを触っておき何ができて、何ができないのか、強みと弱みを把握できていると焦らずに済みますね。AWS や GCP のようなクラウドサービスはチュートリアルが豊富なので無料枠で試してみてはいかがでしょうか

自己紹介用画像

Riki Akagi

2019年からDeNAで働いています。GCP(CloudSQL・GAE・Cloud Function etc)とGoでAPI開発に勤んでいます。睡眠やエンジニアリングに関することに興味を持って過ごしているのでその情報を皆さんに共有していけたらなと思っています。

自己紹介の詳細