EC2 パフォーマンス最適化
Amazon EC2のパフォーマンス最適化は、適切なインスタンスタイプの選択、リソース使用率の最適化、コスト効率の改善により、アプリケーションの応答性向上とユーザーエクスペリエンスの向上を実現します。
適切なインスタンスタイプの選択
コンピューティング最適化インスタンス
コンピューティング最適化インスタンスは、高パフォーマンスプロセッサから恩恵を受けるコンピューティング集約型用途向けに設計されています。これらのインスタンスは、バッチ処理ワークロード、メディアトランスコーディング、高性能ウェブサーバー、高性能コンピューティング(HPC)、科学モデリング、専用ゲームサーバー、広告サーバーエンジン、機械学習推論に最適です。
インスタンスタイプの多様性
AWSは750を超えるインスタンスタイプを提供しており、そのほとんどがAWS Nitro Systemで構築されています。各インスタンスタイプは、プロセッサー、ストレージ、ネットワーキング、オペレーティングシステム、サイズの選択肢を提供するため、特定のワークロードと予算に最適なインスタンス構成を選択できます。
主要インスタンスカテゴリ
- 汎用インスタンス: コンピューティング、メモリ、ネットワーキングの最適なバランス
- コンピューティング最適化: メモリ最適化、ストレージ最適化
- アクセラレーテッドコンピューティング: GPU搭載インスタンス
コスト効率の高いインスタンス
AWS Gravitonベースインスタンス
AWS Gravitonプロセッサーは、Amazon EC2で実行されるクラウドワークロードに最高の価格性能を提供するよう設計されています。AWS Gravitonプロセッサーを搭載したEC2インスタンスは、同等のGraviton以外のインスタンスと比較して最大40%優れた価格性能を実現します。
Amazon EC2 Flexインスタンス
Flexインスタンスは、すべてのコンピューティングリソースを完全に活用しないアプリケーションに最適です。同等のFlex以外のインスタンスと比較して最大19%優れた価格性能を実現し、一般的なワークロードの大部分で価格性能の利点を得る最も簡単な方法を提供します。
アクセラレーテッドコンピューティングインスタンス
AWS TrainiumベースのEC2 Trn1インスタンスは、トレーニング時間の短縮を実現し、同等のAmazon EC2インスタンスと比較して最大50%のトレーニングコスト削減を提供します。AWS InferentiaベースのInf2インスタンスは、深層学習デプロイメント向けにEC2で最低コストで高性能を実現するよう設計されており、同等のEC2インスタンスと比較して最大40%優れた価格性能を実現します。
EBSパフォーマンス最適化
EBS最適化パフォーマンスの最大化
インスタンスのEBSパフォーマンスは、インスタンスタイプのパフォーマンス制限、またはアタッチされたボリュームの合計パフォーマンスのうち、どちらか小さい方によって制限されます。EBSのパフォーマンスを最大化するには、インスタンスにアタッチされたボリュームが合計でインスタンスの最大パフォーマンスと同等かそれ以上のパフォーマンスを発揮する必要があります。
実例
r6i.16xlargeの80,000 IOPSを実現するには、インスタンスに少なくとも16,000 IOPSがそれぞれプロビジョニングされた5つのgp3ボリュームが必要です(5ボリューム × 16,000 IOPS = 80,000 IOPS)。
適切なEBSボリューム選択の重要性
アプリケーションのニーズよりも多い専用Amazon EBSスループットを提供するインスタンスタイプを選択することを推奨します。このようなインスタンスを選択しない場合、Amazon EBSとAmazon EC2間の接続がパフォーマンスのボトルネックになる可能性があります。
CPU最適化機能
Optimize CPUs機能
Optimize CPUs機能により、Amazon EC2インスタンスをより詳細に制御できます。第一に、新しいインスタンスを起動する際にカスタムvCPU数を指定して、vCPUベースのライセンスコストを節約できます。第二に、特定の高性能コンピューティング(HPC)アプリケーションなど、シングルスレッドCPUで良好なパフォーマンスを発揮するワークロード向けに、Intel Hyper-Threading Technology(Intel HT Technology)を無効にできます。
AWS Compute Optimizerによる推奨事項
パフォーマンス向上とコスト削減
AWS Compute Optimizerから、パフォーマンスの向上、コストの削減、またはその両方に役立つAmazon EC2の推奨事項を取得できます。これらの推奨事項を使用して、新しいインスタンスタイプに変更するかどうかを判断できます。
推奨事項の生成プロセス
推奨事項を作成するために、Compute Optimizerは既存のインスタンスの仕様と使用率メトリクスを分析します。次に、コンパイルされたデータを使用して、既存のワークロードを処理するのに最適なAmazon EC2インスタンスタイプを推奨します。推奨事項は、時間あたりのインスタンス料金とともに返されます。
Compute Optimizerの機能範囲
AWS Compute Optimizerは、AWSリソースの構成と使用率メトリクスを調査して推奨事項を提供するサービスです。履歴使用率メトリクスを評価して、Amazon Elastic Compute Cloud(EC2)インスタンスタイプ、Amazon Elastic Block Store(EBS)ボリューム構成、AWS Fargate上のAmazon Elastic Container Service(ECS)のタスクサイズ、AWS Lambda関数のメモリサイズ、Amazon EC2で実行される商用ソフトウェアのライセンス推奨事項など、さまざまなAWSサービスの最適な構成を特定します。
Auto Scalingによる最適化
シームレスなスケーリング
Amazon EC2 Auto Scalingにより、定義した条件に従ってAmazon EC2キャパシティを自動的にスケールアップまたはスケールダウンできます。EC2 Auto Scaling内の動的および予測スケーリングポリシーを使用してEC2インスタンスを追加または削除できます。
スケーリングポリシーの種類
- 予測スケーリング: 機械学習を使用して予想される需要に基づいてインスタンスを事前に割り当て
- 動的スケーリング: 定義されたメトリクスに基づいてコンピューティングをスケール
EC2 Fleetによる最適化
単一のAPI呼び出しで、Amazon EC2 Fleetを使用してEC2インスタンスタイプ、アベイラビリティーゾーン、購入モデル全体でコンピューティングキャパシティをプロビジョニングし、スケール、パフォーマンス、コストの最適化を支援できます。
インスタンス管理機能
インスタンスの一時停止と再開
Amazon EBSでバックアップされたAmazon EC2インスタンスを休止状態にし、後でこの状態から再開できます。ブートストラップに時間がかかり、状態をメモリ(RAM)に永続化するアプリケーションは、この機能から恩恵を受けることができます。
グローバルインフラストラクチャの活用
Amazon EC2は、複数の場所にインスタンスを配置する機能を提供します。Amazon EC2の場所は、リージョンとアベイラビリティーゾーンで構成されています。アベイラビリティーゾーンは、他のアベイラビリティーゾーンの障害から隔離されるよう設計された独立した場所であり、同じリージョン内の他のアベイラビリティーゾーンへの低コストで低レイテンシのネットワーク接続を提供します。
パフォーマンス最適化のベストプラクティス
コスト最適化の3つのアプローチ
コンピューティングコストを最適化する3つの方法があり、AWSはそのすべてを支援するツールを提供しています:
- 適切なインスタンスの選択: 価格性能を微調整するため
- 適切なEC2購入モデルの選択: ワークロードに応じて
- 使用量の実際の需要へのマッピング
継続的な最適化
- Amazon Q EC2インスタンスタイプセレクターを使用して、機械学習に基づく個人化されたEC2インスタンス提案を取得
- Instance Type Explorer、EC2 Instance Discovery、属性ベースのインスタンスタイプ選択などのツールを活用
- AWS Compute Optimizerを使用してワークロードに最適なAWSコンピューティングリソースの推奨事項を取得し、コストを削減してパフォーマンスを向上
料金体系の最適化
秒単位課金
秒単位課金により、使用した分だけ支払います。1時間の未使用分と秒数のコストを請求書から差し引くため、使用量を1時間に最大化することではなく、アプリケーションの改善に集中できます。
引用元:
- https://docs.aws.amazon.com/ja_jp/ec2/latest/instancetypes/co.html
- https://aws.amazon.com/ec2/cost-and-capacity/
- https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-optimization-performance.html
- https://aws.amazon.com/ec2/features/
- https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-recommendations.html
- https://aws.amazon.com/blogs/aws-cloud-financial-management/optimize-costs-by-automating-aws-compute-optimizer-recommendations/
- https://dev.to/brayanarrieta/optimizing-aws-ec2-a-comprehensive-guide-12k5
- https://aws.amazon.com/jp/ec2/cost-and-capacity/
- https://docs.aws.amazon.com/ja_jp/ec2/latest/instancetypes/mo.html
- https://aws.amazon.com/jp/blogs/news/new-general-purpose-compute-optimized-and-memory-optimized-amazon-ec2-instances-with-higher-packet-processing-performance/