「Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書」で重要だと思ったところをメモしておきます(書き途中なので随時更新します)
仮想化と分散処理
クラウドを支える2つの重要な技術
- 仮想化
- 1つの物理サーバーに対して複数の仮想サーバーをインスタンス化させておくことで、アクセスが大量に来て仮想サーバーが1つ落ちても別の仮想サーバーで一時的に補うことができる
- 分散処理
- 一台あたりのサーバーの負荷を減らして、ダウンしたり、応答時間がかかりすぎてしまうのを防ぐ
- ロードバランサーが分散処理をおこなってくれる(AWSではElastic Load Balancing)
仮想化と分散の技術があることで冗長化につながる
冗長化とは、万が一にもシステムやサーバーに何かあった時でも稼働し続けれられるように対策をしておくこと。(バックアップを取ったり、複数台で運用するのが一般的)
サーバーとインスタンス
サーバーとは何かサービスを提供するものを指す
Webサーバー |
---|
メールサーバー |
データベースサーバー |
ファイルサーバー |
プロキシサーバー |
DNSサーバー |
サーバーは普段使っているPCと同じく、CPUやメモリ、ストレージ、OSおsなどの機器が備わっている
インスタンス : サーバーとして稼働している仮想サーバーのこと(EC2インスタンス)
EC2ではサーバーをインスタンスとして作られる
DNSとドメイン
サーバーなどの端末(ホスト)はIPアドレスで認識されている
- DNSとはURLに含まれる名前に対応するIPアドレスのサーバーを教えてくれる仕組みのこと
- DNSサーバーに名前をもとに調べに行ってIPアドレスを返してくれる
AWSではRoute53がDNSサーバーとして働いている
Amazon Elastic Compute Cloud (EC2)
- サーバーに必要なものを一式借りることができる
- アンマネージドサービスでAWSによる強制アップデートが必要
- 多様なサーバーマシンやOSやソフトウェアの組み合わせが用意されていて選ぶ
- CPUやメモリのスペックなど
- OSやソフトウェア
- 他のAWSサービス
- メリット
- すぐに作れてすぐに壊せる
- ためにしに作りたい、どのくらいアクセスが来るかわからない場合
- 負荷が大きくなった場合に複製がすぐに作れて負荷分散させやすい
- 不確定要素が多い場合に強みを発揮する
- すぐに作れてすぐに壊せる
- デメリット
- 定期的にメンテナンスや見直しが必要
Amazon Elastic Block Store (EBS)
データをバイトのブロック単位で記録して保存しておく場所のこと
Elastic Load Balancing (ELB)
サーバーに集中するアクセス(トラフィック)を振り分ける仕組み
- ELB
- ALB (Application Load Balancing)
- 対応プロトコル : HTTP,HTTPS
- 振り分け先として静的IPアドレスを設定し、IPを持つホスト先へ転送することはできない
- NLB (Network Load Balancing)
- 静的IPアドレスを設定でき、そのままサーバーにIPを伝える設定にできる
- 対応プロトコル : TCP,TLS
- CLB (Classic Load Balancing)
- 古いタイプのロードバランサーで、これから作るシステムではあまり使われない
- 対応プロトコル : TCP,TLS,HTTP,HTTPS
- ALB (Application Load Balancing)
Auto Scaling
サーバーへのアクセス状態によって、サーバーの台数を増減する機能
- 単体のでの使用だけでなく、CloudWatchからサーバーの負荷情報を参照してスケーリングに役立てられる