インフラエンジニアへの道 Amazon web services クラウドデザインパターン 設計ガイド
今日はAWSについて書きたいと思います。
snapshot(ある瞬間のデータを複製したバックアップ) パターン
➡データのバックアップ
課題:データの保存としてテープのバックアップをすると自動化が困難である。また、テープの容量が有限なため完全な自動化ができない。
解決策:クラウドでは安全で容量制限がないストレージがある。安い プログラムを使用して自動化できる OSごと複製できる
実装 EBSにスナップショット機能がついている ➡ S3に保存。 保存されたものはEBS上で新たに復元できる
ブートディスクとして使うとAMIとして登録できる
利点・・・バックアップをプログラムから人手を返すことなく自動でできる
バックアップ先に耐久性の高いS3
EBSのデータを丸ごとバックアップできるので万が一の時にも簡単に復旧できる
OSごとバックアップでき、AMIとして利用できるので、新たなEC2インスタンスを起動することも可能
注意点・・・スナップショットを取得する際にデータの整合性を確保しなければならない。
サーバーの複製
課題 仮想サーバーでも依然として物理サーバーと同じくらい設定の手間がかかる
実装 OSブートがあるEBSからAMIを作成すれば、AMIからEC2をたくさん起動できる
利点
仮想環境済みのAMIを使えば、それを基に立ち上げたEC2インスタンスへの設定作業は不要になる
AMIは自分だけでなく、他人にもshareできる
注意点
どの時点でのスナップショットを所得するか、どのくらいのタイミングでAMIを更新するかはケースバイケース
バージョンアップやパッチは個別に行う必要がある
Scale up
動的なサーバーのスペックアップ
解決したい課題 サーバーの必要なリソースを自動的に補いたい
解決 クラウドではスペックに応じて切り替えることができる
利点 システムの設計時に厳密にサーバースペックを見積もらなくていい
柔軟に対応でき、コスト面で無駄をなくせる
注意点
サーバースペックを変更するときには、EC2インスタンスを一時停止する必要がある。
処理待ちが大量に発生した時、一時的にサーバースペックを変更してその場をしのぎ、アプリやデータベースの改善をしてから元のスペックに戻す。
Ondemand Disk
動的なディスクの容量の増減
ディスク容量を事前に見積もるのは難しいので、ハードウェアの初期投資が無駄になってしまう可能性がある
解決 クラウドでは仮想ディスクを利用できる ➡いつでも好きなだけ容量を確保可能である。(オンでぃまんど)
ディスクは年々価格が下がっているので、いらなくなったら捨てるのが良い
実装 AWSのEBSを使えばいつでも好きなタイミングで容量を確保できる
ディスクが必要になった時にEBSスナップショットをとり、それを基に新しいEBSを作成する➡ 新しいEBSをEC2にアタッチする➡ リサイズコマンドで新しい容量まで拡張する
ストライピングのときは複数のEBSをアタッチし、ソフトウェアRAIDディスク構成にする
利点 コストの削減
ストライピングを行うことでディスクI/Oの性能を上げる
注意点 EBSはS3と違い、確保したディスク容量に対して課金する (どれほどつかわれているかに関わらず)
EBSはネットワーク経由でアクセスするため、より大きいサイズのEC2インスタンスを利用するほうがI/O性能が高くなる
可用性向上
multi-server
サーバーの冗長化
課題 複数の物理サーバーを用意する方法がある
オンプレより簡単に環境を整えやすい
実装 ELBを利用する ELBはヘルスチェック機能があり、正常に稼働しているEC2だけに振り分ける
利点
あるEC2インスタンスに障害が起きても、システム全体としては稼働を続ける
ELB auto-scaleを組み合わせれば、障害があっても一定のEC2を保てるので適切なAMIを選択してEC2を起動しておく必要がある
注意点
ELBと複数のEC2を利用するのでコストがかかる
常に予備がある構成にする
IPアドレスの動的な移動
解決したい課題
サーバーにパッチを当てたり、アップグレードをするためにサーバーの停止が必要となる。 サーバー停止=サービスの停止 時間を短くしないといけない
解決 ➡ 従来では本来のサーバーの停止に備えて予備を用意するが、クラウドではこれがとても短くできる。
IPアドレスを指定するAPIもあるので サーバーの軌道からIPアドレスの設定までスクリプトを用いて自動化できる
実装 EIP(elastic IP address) IPアドレスを付け替えられる。 EC2インスタンスに対してEIPを振り分ける
利点 EIPを付け替えるだけなので、DNSのTTLに影響されずにサーバーを切り替えられる。
アップグレードの際、仮に切り替え先のサーバーでエラーが発生しても、即座に元のサーバーにEIPを付け替えることでフォールバックできる。
EIPは別のAZにも適用できるのでリージョンごとに利用可能
注意点
EIPの切り替えには数十秒かかる
VPCの場合、固定のプライベートIPアドレスを割り当てることができる。
ネットワークカードを別のEC2インスタンスにも適用可能
ただし、サブネットを超えてアドレスを付け替えることはできない