はじめに
AWSのコンピューティングサービスについてまとめてみた
やってみたこと
初心者向けになるべくシンプルにまとめてみた
AWSのコンピューティング系サービスの概要
特徴的なものは以下の3つ
- EC2
- ECS
- Lambda
また、EC2の活用にあたって実質欠かせないものとして次のサービスが存在する
- ELB
- Auto Scaling
SPOFをなるべく作らず、コストも使った分だけ支払い、かつ必要な時に必要な性能が発揮できるようにAWSサービスの選択とオプションの設定を選択する必要がある。
EC2について
- 仮想サーバを提供するコンピューティングサービス
- ELBやAuto Scalingを組み合わせて、必要な時に必要な性能を発揮できるようにする必要がある
- インスタンスという単位で仮想サーバを起動・停止・削除できる
- インスタンスタイプという形で、スペックを選ぶことができる
- 逆に言うと、CPUやメモリを個別に指定することはできない
- インスタンスタイプという形で、スペックを選ぶことができる
- 費用は起動中だけ計上される
- ただし、停止中でも、EBS(ストレージ)が接続されているとその費用はかかる
- インスタンスには3つの運用形態がある
- リザーブドインスタンス
- スポットインスタンス
- オンデマンドインスタンス
- Saving Plansをうまく利用して費用がお得になる
ELBについて
- SPOFをなるべく作らない、という方針で設計する際に便利なサービス
- 設定に応じて、リクエストの受付先を自動振り分けしてくれる
- 例えば、ヘルスチェックを通して、ELB側から状況をチェックし、応答が2回なかったら切り替えるなど
Auto Scaling
- システムの利用状況に応じて、自動的にELBに紐づくインスタンスの台数を増減させるサービス
- 最小インスタンス数、最大インスタンス数などを設定し、それに応じて動作する
- スケーリングポリシーの指定によって条件指定を行う
- 最小インスタンス数、最大インスタンス数などを設定し、それに応じて動作する
- ただし、サーバをステートレスに設計する必要がある。
- なるべくAZをまたがってインスタンスを配置する設計にする。
ECSについて
- コンテナを提供するコンピューティングサービス
Lambdaについて
- サーバを用意しなくてもプログラムを実行できる環境を提供するサービス
- セットアップやメンテナンスの必要がないので、開発に集中できる
最後に
結局の所・・・
使い分け
- 今回出てきたサービスから選ぶとしたら・・・
- まずLambdaでできないか考える
- 次にECSでできないか考える
- 最後に、EC2を検討する
- ただし、いかにして動かさないかを追求する