「Amazon EC2」タグアーカイブ

AWS WEBシステム開発におけるEC2&Aurora のインスタンス選択目安について

WebシステムにおいてEC2、Aurora PostgreSQLを使ったスタンダードなWEB3層アプリケーションを開発する際、1日のリクエスト数ごとに適切なEC2インスタンスタイプとAuroraのインスタンスサイズを選定するための基本的な表を作成しました。これらはリクエスト数やワークロードに応じて選定することが一般的であり、次の表は目安として利用できます。

ただし、実際のパフォーマンス要件やリソース消費量は、リクエストの内容(データベースの読み書き、アプリケーション処理など)、トラフィックのピークタイムなどにより異なるため、負荷テストを通じて調整する必要がありますので参考までにご利用ください。

1. EC2インスタンスタイプ選定の目安

1日のリクエスト数リクエスト/秒EC2 インスタンスタイプ (Web/App サーバー)特性制約備考
~10,0000.1 ~ 1.0t3.micro, t3.smallバースト可能な汎用インスタンス。コスト効率が高い。CPUクレジット制限。継続した高負荷には不向き。開発・テスト環境向け。コスト重視。
10,000 ~ 100,0001.0 ~ 10t3.medium, t3.largeバランス型、バースト性能あり。小規模なアプリに最適。バースト性能が必要な場合にのみ有効。小規模なプロダクション環境。
100,000 ~ 500,00010 ~ 50m5.large, m5.xlarge高い汎用性とバランス型。メモリ・CPU性能が安定。I/O性能は特定のワークロードには十分でない可能性。中規模なWebシステム。
500,000 ~ 1,000,00050 ~ 100m5.2xlarge, c5.xlargem5は汎用、c5は計算最適化。c5はCPU性能重視のアプリに有効。c5はメモリ容量が低い。I/O要求が高いワークロードには非推奨。大規模なWebアプリ。高負荷処理を要する場合。
1,000,000以上100以上c5.4xlarge, c5.9xlarge高いCPU性能とスケーラビリティ。大規模な高負荷処理に適する。メモリが重要なアプリケーションには不向き。高パフォーマンスが求められる大規模なサービス。

EC2インスタンスタイプの特徴

  • T3シリーズ: CPUクレジットベースのバースト型インスタンス。一定の時間、高負荷処理が可能。ただし、CPUクレジットが不足するとパフォーマンスが制限されるため、長時間の高負荷には不向き。
  • M5シリーズ: 汎用インスタンスタイプで、CPUとメモリのバランスが良い。I/O性能やストレージの要求がそれほど高くないアプリケーションに適している。
  • C5シリーズ: 計算最適化インスタンスタイプ。高いCPU性能が求められる処理(機械学習、ビデオエンコーディング、ハイパフォーマンスコンピューティング)に最適。メモリリソースはやや低め。

2. Aurora PostgreSQLインスタンスサイズ選定の目安

1日のリクエスト数DB トランザクション/秒Aurora インスタンスサイズ特性制約備考
~10,0000.1 ~ 1.0db.t3.mediumバースト可能な小規模インスタンス。コスト効率重視。CPUクレジットの制限。高負荷なクエリには不向き。小規模なデータベース。
10,000 ~ 100,0001.0 ~ 10db.r5.largeメモリ最適化型。中規模なトラフィックに適応。ストレージI/Oが要求される場合は制限を受けることがある。中規模なデータベースに適したバランス型。
100,000 ~ 500,00010 ~ 50db.r5.xlargeメモリとCPUのバランスが良い。高負荷なトランザクション処理にも対応。高スループットな書き込み性能が必要な場合には要検討。高可用性、処理能力が必要な環境向け。
500,000 ~ 1,000,00050 ~ 100db.r5.2xlarge高いメモリ性能を持ち、データ処理に最適。非常に高負荷なワークロードにはスケールが限られる。高負荷なクエリやトランザクション処理を行う場合。
1,000,000以上100以上db.r5.4xlarge, db.r5.8xlarge非常に高いスケーラビリティ。大規模なDBワークロードに適応。非常に高コスト。非常に高いパフォーマンスが要求される場合。

Auroraインスタンスサイズの特徴

  • T3シリーズ: バースト可能なインスタンスタイプ。低コストで運用可能だが、持続的な高負荷には不向き。小規模なアプリケーションや開発環境に最適。
  • R5シリーズ: メモリ最適化型のインスタンスタイプで、DBワークロードに特化している。トランザクション処理が多い環境や、データ分析などのメモリ集約型処理に適している。

3. その他の構成要素の考慮

  • CloudFront: Webアプリの静的コンテンツや画像などのキャッシュを効率的に処理するため、オリジンサーバーの負荷を軽減します。リクエスト数が多い場合には、キャッシュポリシーを最適化することが重要です。
  • ALB (Application Load Balancer): 大量のリクエストに対応するため、EC2インスタンスに負荷を分散します。ALBの性能は、リクエスト数に応じてスケールアウトされるため、特別なインスタンスタイプの選定は不要です。

4. 補足

  • この表は一般的なWebシステム向けのリクエスト数とワークロードを基にした目安です。Webアプリケーションの内容やDBクエリの複雑さ、またはピンポイントの負荷状況によって最適な構成が異なるため、負荷テストやパフォーマンスモニタリングを推奨します。
  • また、Auroraの自動スケーリング機能を有効にすることで、ピーク時やリクエスト数が変動する場合に柔軟に対応できます。

各サービスの詳細な料金体系や、インスタンスタイプによるコスト差も考慮する必要があります。

【AWSサービス解説シリーズ】Amazon EC2

Amazon EC2(Elastic Compute Cloud)は、AWSが提供するスケーラブルでカスタマイズ可能な仮想サーバー(インスタンス)サービスです。ユーザーは、必要なリソースを選び、任意の時間にサーバーを作成・削除できます。柔軟なスケーリング、様々なインスタンスタイプ、そして高度なセキュリティ機能により、Amazon EC2は世界中の企業や開発者に広く利用されています。

Amazon EC2を利用すべきケース

  1. スケーラブルなウェブアプリケーションのホスティング
    • EC2は、アクセス量が変動するウェブアプリケーションのホスティングに最適です。たとえば、ECサイトやソーシャルメディアプラットフォームは、トラフィックの増加に伴ってスケールアップが必要になることが多いため、EC2のオートスケーリング機能を利用して、瞬時にインスタンスを増減させることが可能です。
  2. ビッグデータ処理や機械学習のワークロード
    • 大量のデータを処理する場合や、機械学習モデルのトレーニングには、強力な計算リソースが求められます。EC2は、高性能なGPUやCPUを搭載したインスタンスタイプ(P3、G4dn、C6gなど)を提供し、ビッグデータ分析やディープラーニングワークロードの実行に最適です。
  3. オンデマンドでのテスト・開発環境の構築
    • 開発者は、テストやデバッグのために一時的なサーバーを必要とすることがあります。EC2は、短時間の利用でも料金が従量課金制であるため、開発プロジェクトに対して費用対効果が高く、特定の環境に合わせた開発環境の構築が容易です。
  4. 災害復旧のバックアップシステム
    • 企業は、EC2を活用してバックアップシステムや災害復旧環境を構築できます。オンデマンドでリソースを確保し、障害時には迅速に切り替えが可能です。AWSの他のサービス(例: S3、RDS)と組み合わせて、包括的な災害復旧計画を実施できます。

公式リソース


Amazon EC2利用時に気を付けるべき制約事項

Amazon EC2を利用する際には、以下の制約事項に注意する必要があります。

  1. インスタンスの停止・削除とデータの消失リスク
    • EC2インスタンスを停止または削除すると、インスタンス内のデータが消失するリスクがあります。特にインスタンスストア(インスタンスの一時的なストレージ)を使用している場合、インスタンスの停止でデータが失われることがあるため、永続的なストレージにはEBS(Elastic Block Store)やS3を使用することが推奨されます。
  2. インスタンスの料金とコスト管理
    • EC2は従量課金制であり、利用時間に応じて料金が発生します。オンデマンドインスタンスの利用は便利ですが、長期間の稼働が必要な場合はリザーブドインスタンスやスポットインスタンスの利用を検討することで、コストを抑えることができます。また、不要なインスタンスを停止・削除し忘れると、無駄なコストが発生することがあります。
  3. セキュリティの確保とアクセス管理
    • EC2インスタンスに対するアクセスは、適切なセキュリティグループとIAM(Identity and Access Management)ポリシーを設定する必要があります。SSHアクセスのために適切なセキュリティグループを設定し、公開鍵暗号方式を使用して安全にインスタンスにアクセスすることが推奨されます。
  4. 可用性とフェイルオーバーの設計
    • 単一のEC2インスタンスに依存するシステム設計は、障害発生時にシステム全体がダウンするリスクがあります。AWSの複数のアベイラビリティゾーン(AZ)やリージョンにわたる冗長性の確保、ロードバランシング、オートスケーリングの活用など、可用性を高めるための設計が必要です。
  5. コンピューティングリソースの最適化
    • すべてのインスタンスタイプがすべてのワークロードに最適なわけではありません。計算、メモリ、ストレージ要件に応じたインスタンスタイプの選定が重要です。また、リソースが過剰であれば無駄なコストが発生するため、適切なサイズを選定することがコスト効率を高める鍵となります。

公式リソース


まとめ

Amazon EC2は、スケーラブルな仮想サーバーを提供し、ウェブアプリケーションのホスティングからビッグデータ処理まで、多様なワークロードに対応します。EC2の柔軟性や豊富なインスタンスタイプにより、さまざまな業界やアプリケーションに最適なソリューションを提供できます。

ただし、インスタンスの停止時のデータ管理やコスト最適化、セキュリティ設定には十分な注意が必要です。AWSの他のサービスと組み合わせて、EC2を効果的に活用することで、高可用性、スケーラビリティ、コスト効率を実現できます。