AWSインフラ構成の基本設計:どこから手を付けるべきか?
目次
オンプレとの違いを意識する
近年、AWS(Amazon Web Services)をはじめとしたパブリッククラウドの利用率は年々向上しており、システム開発やWebサイトの構築において必ず選択肢として考慮すべき状況となっています。本記事では、AWSとオンプレミスの設計や運用の違いについて、基本的な内容を解説します。
AWSは経費(使った分だけ)
よく「オンプレミスは投資、AWSは経費」と言われます。わかりやすく例えると、オンプレミスは「自社ビルを建てて運営する」、AWSは「必要な部屋を必要な分だけ借りる」イメージです。前者は初期投資(サーバー購入・設置)が大きく、増床や縮小にも時間がかかります。後者は“蛇口をひねると水が出る”ように、必要なときに必要な分だけ計算リソースやストレージを使い、不要になれば止められます。
設計に対する責任の違い
もう一つの大きな違いは「責任共有モデル」です。オンプレミスは電源の確保から機器の故障対応、ソフトウェアの改修まですべて利用者側で実施します。一方、AWSでは一部の管理をAWSの責任として委任できます。例えば、ハードウェアの故障対応やデータセンターの電源・空調はAWSの責任範囲ですが、OSやミドルウェア、アプリの設定・運用は利用者側の責任です。
サービス設計・構成の発想が違う
AWSでは「部品を組み合わせて耐障害性を作り込む」発想が基本です。例えるなら、1台の大型サーバーに全てを載せるのではなく、レゴブロックを複数組み合わせて、壊れても置き換えられる形にします。よく使われる比喩に「ペットではなく家畜」があります。オンプレでは1台のサーバーを長く大切に面倒を見る(ペット)傾向がありましたが、クラウドでは同じ役割のサーバーを複数台プールし、1台が不調ならすぐ新しい個体に差し替えます(家畜)。
この前提に立つと、アプリは以下のような設計が有効になります。
- ステートレス化:セッションはElastiCacheや外部ストアに退避
- ゆるやかな連携:SQSやEventBridgeで疎結合化
- 冪等な処理:同じリクエストが来ても安全に実行可能
また、「失敗を前提にした設計(Design for Failure)」も重要です。可用性ゾーン(Availability Zone: AZ)という独立電源・ネットワークを備えたデータセンター群を跨いで配置し、1か所に障害が発生してもサービスを継続します。オンプレの“二重化”に近い発想ですが、AWSでは「最初から分散」を前提にします。
AWSインフラの主な構成要素
クラウドの全体像は「都市計画」に例えると理解が進みます。
- アカウント…市役所の“区画”に相当。請求や権限の境界になります。開発・検証・本番をアカウントで分けると事故を防げます。
- リージョン…世界中に点在するデータセンターを地理的に区切った単位。日本には東京リージョンと大阪リージョンがあります。
- AZ(アベイラビリティゾーン)…リージョンを構成するデータセンター群。冗長電力源・ネットワーク・接続機能を備えています(例:東京リージョンは4つのAZ)。
- VPC…AWS上に構築する仮想ネットワーク。自社専用の“敷地”に相当し、サブネット(区画)、インターネットゲートウェイ(外部への出入口)、セキュリティグループやネットワークACL(門番の役割)などを設定可能です。
EC2、ELB、RDSなど配置対象の代表サービス
ここからは、VPC上に配置して利用する主要なサービスについて、ポイントを絞って解説します。
EC2(仮想サーバー)
WindowsやLinuxサーバーを仮想的に構築できるサービスです。自由度が高く、クラウド移行や開発用途に適しています。Auto Scalingと組み合わせることで、負荷状況に応じてサーバー台数を自動的に増減できます。
ELB(負荷分散)
Elastic Load Balancerは、サービスへのアクセス負荷を分散するためのサービスです。主に以下の3種類があります。
- ALB(Application Load Balancer)…アプリケーションの通信に対する負荷分散を行います。Webアプリケーションの負荷分散と言えば、ALBと覚えておくといいでしょう。
- NLB(Network Load Balancer)…アクセス数が非常に多いシステムに対して利用するといいでしょう。
- GWLB(Gateway Load Balancer)…セキュリティ製品をシステム構成につなぎこみたい場合に利用されます。
RDS / Aurora(マネージドDB)
RDSやAuroraは、AWSが提供するリレーショナルデータベースサービスです。OSやミドルウェアのパッチ適用、バックアップ、フェイルオーバーなどをAWSが代行します。このように運用業務をAWS側が担うサービスを「マネージドサービス」と呼びます。
S3
AWSではデータ保存のための様々なストレージサービスが提供されています。最も基本的なサービスがS3(Simple Storage Service)であり、様々な形式のデータを安価に保存することができます。また、データの耐久性(データが欠損しない性質)が99.999999999%となっており、データを安全に保管し続けることができます。
最適なシステム設計で安心して移行できるスタイルズのAWS導入・移行サービスはこちら→
設計前に意識したい「可用性」と「拡張性」
可用性は「お店をいつでも開けられるか」、拡張性は「行列ができてもレジをすぐ増やせるか」ということです。AWSでは、“壊れないこと”を想定するのではなく、“壊れても動き続ける”ことを前提に考えるのがポイントです。
可用性の基本
- Multi-AZ…複数のAZを利用する構成。1つのAZが障害で停止しても、他のAZでサービスを継続可能。
- 単一障害点の排除…踏み台サーバー、NAT、DBなど「1台だけ」の構成は避け、複数AZで冗長化。
- 運用も設計の一部…バックアップテスト、パッチ適用、証明書更新、障害訓練(GameDay)までを設計段階から組み込む。
拡張性の基本
- スケールアウト優先…1台を巨大化(スケールアップ)するより、同等性能のサーバーを複数増やすほうが安全。EC2はAuto Scalingなどの仕組みでスケールアウトが簡単に実装できます。
- 疎結合…電話よりメールのほうが、相手の状況に関係なくデータのやり取りができるように、相手先に障害が発生しても影響が少なくなるような設計が必要です。このように影響を極小化する構成を、疎結合化といい、AWSではSQSやEventBridgeなど、疎結合化を推進するための様々な機能が備わっています。
AWSにおけるコスト管理
クラウドの費用は水道料金とよく似ています。蛇口(サービス)を開けた時間や規模、契約プラン(購入オプション)、そして流れ出た量(データ転送料)によって料金が決まります。設計の段階で「見える化」と「コストを抑える仕掛け」を組み込んでおけば、後々の管理が格段に楽になります。
見える化機能
- Cost Explorer…月次の見通しや利用料をダッシュボードで確認することができます。
- AWS Budget…予算を決めておき、適宜アラートによる通知をおこなうことができます。
割引の仕掛け
- Savings Plans/Reserved Instance…いわゆる「前払い」により、コストを抑える仕組みです。1年〜3年単位で前払いを行うことで、最大6-7割引きを得ることができます。
最適なシステム設計で安心して移行できるスタイルズのAWS導入・移行サービスはこちら→
まとめ
オンプレミスの常識をそのままクラウドに持ち込んでしまうと、AWSのメリットを十分に活かせません。クラウド設計では、まず「壊れないこと」を前提とするのではなく、「壊れてもサービスを止めない」という発想への転換が必要です。また、アカウントやネットワーク構成といった都市計画に相当する基礎部分をきちんと整えることも重要です。
サービスの配置については、Multi-AZ構成を基本とし、ALBやEC2を適切に組み合わせ、さらにAuto Scalingなどの機能を活用して可用性と拡張性を高めます。加えて、コスト管理は運用段階になってから考えるのではなく、設計段階からダッシュボードによる可視化や購入オプションの活用を組み込み、効率的な運用を目指すことが大切です。
AWSの利用には多くの設計・運用上の配慮が必要です。自社だけで判断が難しい場合や最適な構成に迷う場合は、専門のベンダーに相談することも有効な選択肢となります。