AWSクラウドの概念の学習
AWSクラウドの概念
クラウドコンピューティングの基本的な定義から、AWSを利用するメリット、そしてクラウドならではのシステム設計の原則について解説されています。
1. クラウドとは
クラウドとは、インターネット経由でコンピューティング、データベース、ストレージなどのITリソースをオンデマンド(利用したいときに利用した分だけの従量課金)で利用できるサービスの総称です。従来のオンプレミスでは最大ピークを予測して機器を調達・運用する必要がありましたが、クラウドを活用することで、未使用リソースに対する無駄なコストやキャパシティ不足による機会損失を防ぐことができます。
2. AWSクラウドコンピューティングの6つのメリット
AWSを利用する利点として、以下の6つが挙げられています。
- 固定費(設備投資費)が柔軟な変動費へ: 事前に多額の投資を行う必要がなくなり、利用した分だけ支払う従量課金モデルに切り替えることができます。
- スケールによる大きなコストメリット: 数十万規模のユーザーが利用する「規模の経済」を活かすことで、低い変動コスト(従量課金)での提供が実現されています。
- キャパシティ予測が不要に: 従来のように数か月かけてキャパシティを予測する必要はなく、状況に応じて数分でリソースのスケールアップやスケールダウンが可能です。
- 速度と俊敏性の向上: 数分で新しいITリソースを調達できるため、検証や開発にかかる時間とコストが大幅に減り、組織の俊敏性が高まります。
- データセンターの運用と保守への投資が不要に: サーバーの設置や保守といったインフラ管理の重労働をAWSに任せ、自社の本来のビジネスに専念できます。
- わずか数分で世界中にデプロイ: わずか数回のクリックで、世界中の複数リージョンに容易にシステムを展開できます。
3. クラウドアーキテクチャの設計原理
オンプレミスとは異なる、クラウドの利点を活かしたシステム設計の原則です。
- 故障に備えた設計 (Design for Failure): 「形あるものはすべて壊れる」という前提のもと、マネージドサービスを利用して単一障害点 (SPOF) をなくすアーキテクチャを構築します。
- コンポーネントの分離: システムの各コンポーネントを疎結合にし、一部の障害がシステム全体に影響しないようにします。Amazon SQSを利用した非同期処理やマイクロサービスアーキテクチャが有効です。
- 弾力性の実装: リソース性能を柔軟に拡張・縮小(スケールアウト/スケールイン)させます。動的なスケーリングを行い、サーバーを「使い捨て可能なリソース」として扱います。
- 並列化を考慮する: ロードバランサーなどを利用して、複数のWebサーバーにリクエストを分散させて並列処理を行います。
- データの保管場所: 静的コンテンツはCDN等を利用してエンドユーザーの近く(外部)に保管し、動的に処理するデータはクラウド上のリソースの近くに保管して遅延を防ぎます。
4. AWS Well-Architected フレームワーク
AWSのベストプラクティスに基づき、優れたシステムを設計・運用するためのフレームワークです。以下の5本の柱を基本としています。
- 運用上の優秀性: ビジネス価値を実現するためのモニタリングとプロセス改善。
- セキュリティ: リスク評価を通じて情報やシステムを保護する能力。
- 信頼性: 障害からの復旧や障害軽減によるシステムの安定稼働。
- パフォーマンス効率: コンピューティングリソースを効率的に使用・維持する能力。
- コスト最適化: 最も安価にビジネス価値を実現する能力。