一旦、手元で作成が完了したので、他に気になることをまとめておきます。
この構成はベストプラクティスか?
これまで構築してきた構成は、ALBとEC2インスタンス1台でWordPressサイトを運用する上での、優れた「標準構成」であり、ベストプラクティスの一つになると思います。
この構成の優れた点(ベストプラクティスである理由)
セキュリティの向上:
EC2インスタンスを直接インターネットに公開せず、ALBを門番として前段に置くことで、サーバーが直接攻撃に晒されるリスクを大幅に低減できます。
柔軟性と拡張性:
将来サイトのアクセスが増えた際に、同じ設定のEC2インスタンスを2台、3台と簡単に追加し、ALBにぶら下げるだけで、サーバーの処理能力を向上(スケールアウト)させることができます。
負荷の分散:
HTTPSの暗号化・復号といった負荷のかかる処理を、パワフルなALBに任せる(SSL/TLSターミネーション)ことで、EC2インスタンスはWordPressの処理という本来の仕事に集中できます。
「さらに上の」ベストプラクティス
もし、さらに可用性や運用性を高める「より本格的な」ベストプラクティスを目指すのであれば、将来的に以下のような要素を追加していくことになります。
- データベースの分離: EC2内のMySQLを、AWSのマネージドデータベースサービスである「Amazon RDS」に分離する。
- サーバーの冗長化: EC2インスタンスを複数のAZに配置し、「Auto Scaling Group」で自動的に管理する。
- CDNの活用: 「CloudFront」を導入し、表示速度の向上とサーバー負荷のさらなる軽減を図る。
ですので、現状の構成は素晴らしい出発点であり、今後のサイトの成長に合わせて、これらの要素を段階的に追加していくことができる。
この状態では、どの部分でお金がかかってくるか?
主な課金ポイントはALBとEC2になります。もう少し詳しく、課金が発生する要素を分解してみましょう。
1. Application Load Balancer (ALB)
ALBの料金は、主に2つの要素で構成されます。
- 時間料金: ALBが稼働している時間に対して発生する、固定の料金です。(例: 1時間あたり約$0.025)
- LCU料金: ALBが処理したトラフィック量に応じて発生する、従量課金です。「Load Balancer Capacity Unit」の略で、通信量や接続数などに基づいて計算されます。
2. Amazon EC2
EC2の料金も、主に2つの要素で構成されます。
- インスタンスの稼働料金: EC2インスタンスが「実行中」の状態である時間に対して発生します。(秒単位課金)
- EBSボリューム料金: EC2インスタンスにアタッチされている「ハードディスク(SSD)」の料金です。確保したストレージ容量(GB)に対して月額で発生します。これは、EC2インスタンスを「停止」していても料金がかかり続けるので注意が必要です。
3. データ転送料金
これは見落とされがちですが、重要な課金ポイントです。
- データ転送(内向き): インターネットからAWSへデータを送る通信(ファイルのアップロードなど)は、無料です。
- データ転送(外向き): AWSからインターネットへデータが出ていく通信(サイト訪問者がページを閲覧する、ファイルをダウンロードするなど)は、有料です。
まとめ
非常にシンプルにまとめると、課金の軸は以下のようになります。
-
「確保している時間」に対する課金
- ALBの稼働時間
- EC2の稼働時間
- EBSのストレージ容量
-
「使った量」に対する課金
- ALBが処理したトラフィック量(LCU)
- インターネットへ出ていったデータ転送量
今回の構成では、これらが主な課金要素となります。ACMの証明書や、セキュリティグループの設定などには料金はかかりません。