そもそもクラウドとは?
コンピューターやデータベース、ストレージなどを使いたいときに使いたいぶんだけ使えるサービス
オンプレミス
クラウドが導入される前のコンピュター環境の手法。
サーバーやネットワークなどの設備をハードで用意する(=固定費)
オンプレミスの欠点
ハードを用意する必要があるので交換が効きにくい
→予想されるトラフィック量などに応じて事前にキャパシティを予測してから設備投資しないといけない。
→予想がはずれれば余剰リソースや過剰なトラフィックによるキャパシティアウトが起こる
クラウドのメリット
使いたいときに使いたい分だけ使えるので
- キャパシティの予測が不要
- スタートアップ企業からすれば小さく始められ理
- サービスの状況に応じて柔軟にリソースを調整できる→コスパがいい
- モノを設置しなくてもいいので世界中に一瞬でデプロイ可能
- オンプレミスの際に発生していた電気代、ネットワーク代などを一括で管理できる
サーバーアーキテクチャの設計原理
Design for Failure…障害が起こる前提で設計する
いわゆるリスク分散
単一障害点 をなくす→一つのデータセンター、インスタンスに依存しない
コンポーネントの分離…各アプリケーションの機能を分離する
機能とは…webサーバー、アプリサーバ、DBなど
SQS
1つのリクエストに対して、キューと呼ばれるところにデータを保持させることで1箇所で処理が止まっても別の箇所で処理が動くようにする
マイクロサービスアーキテクチャ
システムを複数の小規模なサービスの集合体として構成すること
弾力性
インフラリソースを柔軟にスケールアウト/スケールインするための仕組み
3種類紹介されてた
- 巡回…定期的に行う
- イベントベース…ビジネス上のイベント・キャンペーンに応じて行う。たとえば夜の時間帯だけ利用トラフィックが増加することが予想されるオンラインゲームなど
- オンデマンド…事前に決めた監視項目に従って自動で行う
並列化
サーバー全体でリクエストを分散させること。ロードバランサーが担っている
サーバーの理想的な配置
- 静的コンテンツ…エンドユーザーの近くに
- 動的コンテンツ…コンピューターの近くに