0Pricing
Cloud & IT Cert Prep · レッスン

適正サイズ化とCompute Optimizer

AWS Compute Optimizerの推奨事項を使用して、過剰にプロビジョニングされたEC2インスタンス、Lambda関数、EBSボリュームのサイズを縮小し、コストを下げます。

「適正サイズ化とCompute Optimizer」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

過剰プロビジョニングの問題

クラウドアーキテクチャで最も一般的かつコストのかかる間違いの 1 つが、ワークロードに実際に必要な量を超えてリソースを割り当てる過剰プロビジョニングです。IT チームが過剰プロビジョニングを行う原因には、オンプレミス時代の習慣(ピーク負荷に備えてキャパシティを購入する)、性能低下への懸念、初期のサイジング判断を見直さないことなどがあります。AWS では、過剰にプロビジョニングされた EC2 インスタンス、EBS ボリューム、Lambda 関数が、実行されている間、毎分コストを無駄にします。適正サイジングとは、この無駄を体系的に特定して排除するプロセスです。

# Common over-provisioning symptoms:
# EC2: average CPU < 10%, memory < 20%
# RDS: storage auto-grow never triggered
# Lambda: allocated memory rarely exceeds 40%
# EBS: provisioned IOPS consistently unused

# Cost impact example:
# Over-provisioned r5.8xlarge at $1.92/hr: $1,382/month
# Correct size r5.xlarge at $0.252/hr:      $181/month
# Savings: $1,201/month per instance

AWS Compute Optimizer の概要

AWS Compute Optimizer は、CloudWatch の過去の使用率メトリクスを分析し、機械学習を利用して最適な AWS コンピューティングリソースを推奨します。対象は、EC2 インスタンス、EC2 Auto Scaling グループ、EBS ボリューム、Lambda 関数、Amazon ECS on Fargate です。Compute Optimizer が信頼性の高い推奨を生成するには、少なくとも 30 日分のメトリクス履歴が必要です。有効化は無料で、月間の推定削減額と変更に伴うリスク評価を含む推奨事項が提供されます。

# Opt in to Compute Optimizer
aws compute-optimizer update-enrollment-status \
  --status Active

# Get EC2 recommendations
aws compute-optimizer get-ec2-instance-recommendations \
  --query 'instanceRecommendations[].{Instance:currentInstanceType,Recommended:recommendationOptions[0].instanceType,Savings:recommendationOptions[0].estimatedMonthlySavings.value,Risk:recommendationOptions[0].performanceRisk}'

# Get Lambda recommendations
aws compute-optimizer get-lambda-function-recommendations

Compute Optimizer による EC2 の適正サイジング

Compute Optimizer は、過去 3 日間、14 日間、または 30 日以上の期間について、EC2 のCPU 使用率、メモリ使用率(CloudWatch エージェント経由)、ネットワークスループット、EBS IOPSを分析します。その後、4 種類の検出結果のいずれかを推奨します。Optimized(現在のサイズが適切)、Over-provisioned(サイズを縮小可能)、Under-provisioned(サイズを拡大すべき)、Not optimized(データ不足)です。必ず性能リスクを確認してください。Compute Optimizer は各推奨事項に対して、VeryLow, Low, Medium, High のリスクを割り当てます。

# EC2 recommendation findings:
# Finding: OVER_PROVISIONED
# CurrentInstanceType: m5.4xlarge
# RecommendedInstanceType: m5.xlarge
# CPU utilisation: P99 = 22%, P50 = 4%
# Memory utilisation: P99 = 18%, P50 = 8%
# EstimatedMonthlySavings: $380
# PerformanceRisk: VeryLow

# Always check:
# - Does current instance have burstable credits? (T3)
# - Are there workload spikes not captured in averages?
# - Is there seasonality to consider?

Lambda の適正サイジング

Lambda 関数の料金は、実行時間(ミリ秒単位)に割り当てたメモリ量を掛けて算出されます。必要以上にメモリを割り当てるとコストが無駄になりますが、メモリを増やすと CPU も増えます。そのため、適切なバランスとは、呼び出し 1 回あたりのコストが最小になるメモリ設定です。Compute Optimizer は、Lambda の呼び出し時間、エラー率、タイムアウトのメトリクスを分析し、最適なメモリ設定を推奨します。オープンソースのLambda Power Tuning ツールを使って、異なるメモリ設定で関数を呼び出し、実測に基づいてコストが最適になる構成を見つけることもできます。

# Compute Optimizer Lambda recommendations
aws compute-optimizer get-lambda-function-recommendations \
  --function-arns arn:aws:lambda:us-east-1:123:function:my-function

# Response shows:
# currentMemorySize: 1024 MB
# recommendedMemorySize: 256 MB
# utilizationMetrics:
#   - type: MEMORY_MAXIMUM, value: 89 (MB)
# estimatedMonthlySavings: $45

# 89 MB actual vs 1024 MB allocated = 935 MB wasted

EBS ボリュームの適正サイジング

EBS ボリュームは、サイズ(未使用のディスク領域)とIOPS(プロビジョニングしたものの使用されていない IOPS)の両方で過剰プロビジョニングされていることがよくあります。Compute Optimizer は、VolumeReadOps, VolumeWriteOps, VolumeReadBytes, VolumeWriteBytes のメトリクスを分析します。よくある推奨事項は、gp2 からgp3(サイズと IOPS が分離されている)への移行です。IOPS を個別に適正化でき、多くの場合 20% のコスト削減につながります。また、未接続の EBS ボリューム(インスタンスが終了した後も残っているボリューム)を特定し、スナップショットを作成するか削除してください。

# Get EBS volume recommendations
aws compute-optimizer get-ebs-volume-recommendations \
  --volume-arns arn:aws:ec2:us-east-1:123:volume/vol-12345

# Common finding: gp2 -> gp3 migration
# gp2: 500 GB = 500 GB * $0.10 = $50/month
#   IOPS: 1,500 (3 IOPS/GB, not configurable)
# gp3: 500 GB = $40/month + 3,000 IOPS free
#   Save $10/month plus get MORE baseline IOPS

# Find unattached EBS volumes
aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query 'Volumes[].{VolumeId:VolumeId,Size:Size,Created:CreateTime}'

Auto Scaling グループの推奨事項

Compute Optimizer は、グループ全体のインスタンスにおける ASG の使用率を分析し、インスタンスタイプ向けの起動テンプレートの変更を推奨します。ASG 内のすべてのインスタンスが継続的に過剰プロビジョニングされている場合、より小さいインスタンスタイプに切り替えることで、規模に応じてコストを削減できます。たとえば、ASG が平均 10 台の m5.large インスタンスで構成されている場合、m5.medium に切り替えると、インスタンス 1 台あたり 50% 節約できます。ソフトウェアに互換性がある場合、Compute Optimizer はGraviton ベースのインスタンスも推奨します。これにより、性能向上とコスト削減の両方を実現できます。

# Get ASG recommendations
aws compute-optimizer get-auto-scaling-group-recommendations \
  --auto-scaling-group-arns arn:aws:autoscaling:us-east-1:123:autoScalingGroup:abc:autoScalingGroupName/my-asg

# If recommendation is to switch to Graviton:
# Current: m5.large (x86, $0.096/hr)
# Recommended: m6g.large (Graviton2, $0.077/hr)
# Savings: 20% per instance
# ASG at 10 instances average = $220/month savings

コスト分析に役立つ Trusted Advisor

AWS Trusted Advisor は、セキュリティ、性能、耐障害性、サービス制限のチェックに加えて、コスト最適化に関する洞察も提供するツールです。主なコストチェックには、Low Utilization EC2 Instances(4 日以上、CPU 使用率が 10% 未満)、Unassociated Elastic IP Addresses(アタッチされていない場合に課金)、Underutilized EBS Volumes、Idle Load Balancers(正常なターゲットがない)、Unused Reserved Instances があります。Trusted Advisor の基本チェックは無料ですが、すべてのチェックを利用するには Business Support または Enterprise Support が必要です。

# Trusted Advisor: get cost optimisation checks
aws support describe-trusted-advisor-checks \
  --language en \
  --query 'checks[?category==`cost_optimizing`].{Name:name,Id:id}'

# Key checks:
# Qkj5MU5fNp: Low utilisation EC2 instances
# Z4AUBRNSmh: Unassociated Elastic IP addresses
# DAvU99Dc4C: Underutilized EBS volumes
# hjLMh88uM8: Idle load balancers
# 1e93e4c0b5: Unused reserved instances

インスタンス世代のアップグレード

AWS は、より低い、または同等のコストで優れた性能を提供する、より効率的な新世代の EC2 インスタンスを定期的にリリースしています。第 5 世代(m5、c5、r5)から第 7 世代(m7g、c7g、r7g)に移行すると、同程度またはそれ以下のコストで、コンピューティング性能が 40% 向上する場合があります。Compute Optimizer は、Graviton ベースのインスタンスを含む、新しい世代へのアップグレード機会を具体的に示します。インスタンスのアップグレードは、多くの場合、最も簡単な適正サイジングの方法です。構成は同じまま、ハードウェアを新しくして、性能を高め、コストを下げられます。

# EC2 instance generation comparison (same price tier):
# m5.large:  2 vCPU, 8 GB, $0.096/hr  (2019)
# m6i.large: 2 vCPU, 8 GB, $0.096/hr  (2021, ~10% faster)
# m7i.large: 2 vCPU, 8 GB, $0.1008/hr (2023, ~15% faster)
# m7g.large: 2 vCPU, 8 GB, $0.0808/hr (2023, Graviton3, cheapest)

# Upgrade path for Linux workloads:
# m5 -> m7g (Graviton): best price/performance
# m5 -> m7i: same architecture, no code changes

RDS インスタンスの適正サイジング

RDS インスタンスは高価で、過剰プロビジョニングされていることもよくあります。CloudWatch メトリクスを使って、RDS の使用率を評価してください。確認するメトリクスは、CPUUtilization、FreeableMemory、ReadIOPS、WriteIOPS です。CPU 使用率が 20% 未満で、メモリに十分な余裕が継続的にある場合は、サイズの縮小を検討します。Multi-AZ 構成の本番データベースでは、プライマリとスタンバイの両方が変更されるため、適正サイジングによる削減効果は 2 倍になります。また、RDS MySQL/PostgreSQL から Aurora への切り替えも検討してください。多くの場合、同程度のコストで性能が向上し、大規模環境ではよりコスト効率が高くなります。

# Monitor RDS utilisation for right-sizing
aws cloudwatch get-metric-statistics \
  --namespace AWS/RDS \
  --metric-name CPUUtilization \
  --dimensions Name=DBInstanceIdentifier,Value=mydb \
  --start-time 2026-05-21T00:00:00Z \
  --end-time 2026-06-21T00:00:00Z \
  --period 86400 \
  --statistics Maximum Average

# If 30-day P99 CPU < 30%, consider downsizing
# If P99 CPU > 80%, consider upsizing

適正サイジングの運用化

適正サイジングは、一度だけ実施する作業ではなく、継続的なプロセスにする必要があります。毎月または四半期ごとのレビュースケジュールを設定し、Compute Optimizer の推奨事項を取得して、安全に適用できるものを評価し、メンテナンス時間帯に変更を実施して、削減効果を測定します。未接続の EBS ボリュームのクリーンアップ、未使用の Elastic IP の解放、アイドル状態のロードバランサーの削除など、簡単に実施できる改善は自動化してください。CloudWatch にコスト最適化ダッシュボードを作成し、サービス別の月間支出を追跡するとともに、通常とは異なる増加を強調表示します。

# Script to release unassociated Elastic IPs
aws ec2 describe-addresses \
  --query 'Addresses[?!AssociationId].AllocationId' \
  --output text | xargs -I {} \
  aws ec2 release-address --allocation-id {}

# Script to delete unattached EBS volumes (careful!)
# First check if snapshots exist before deleting
aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query 'Volumes[].VolumeId' \
  --output text

適正サイジングとアーキテクチャの変更

適正サイジングは既存アーキテクチャ内の過剰プロビジョニングに対処しますが、アーキテクチャ自体に問題がある場合もあります。複数のアプリケーションを実行する 1 台の大規模な EC2 インスタンスには、単に小さいインスタンスへ変更するのではなく、アーキテクチャを分解して Fargate 上のマイクロサービスにする対応が必要かもしれません。モノリシックなデータベースには、単にインスタンスのサイズを縮小するのではなく、シャーディングやキャッシュが必要になる場合があります。適正サイジングは、最初に行う、最も迅速なステップです。アーキテクチャの最適化(サーバーレス、コンテナ、キャッシュ)では、より深く持続的な削減効果を得られますが、より多くの労力が必要です。Cost Optimisation の柱では、両方に取り組むことが推奨されています。

# Cost optimisation hierarchy:
# Level 1: Right-sizing (quick wins, days)
#   - Compute Optimizer recommendations
#   - Delete unused resources
#   - Elastic IP, EBS cleanup

# Level 2: Purchasing model (weeks)
#   - Reserved Instances / Savings Plans
#   - Spot for eligible workloads

# Level 3: Architecture (months)
#   - Serverless migration
#   - Container consolidation
#   - Caching layer addition
#   - Database optimisation

クイックチェック

このレッスンで扱った AWS Solutions Architect(SAA-C03)の概念について、理解度を確認しましょう。

レッスンのまとめ

このレッスンでは、AWS Compute Optimizer が CloudWatch メトリクスに機械学習を適用し、適正サイズのコンピューティングリソースを推奨すること、適正サイジングは EC2、Lambda、EBS、ASG、ECS on Fargate に適用できること、そして新しい世代のインスタンス(特に Graviton)へのアップグレードによって、コストと性能の両方を改善できることを学びました。適正サイジングを一度きりの作業ではなく、継続的な実践にしてください。次は、Reserved Instances、Savings Plans、Spot の購入モデルについて説明します。

よくある質問

「適正サイズ化とCompute Optimizer」レッスンは無料ですか?

はい。「適正サイズ化とCompute Optimizer」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

「適正サイズ化とCompute Optimizer」で何を学びますか?

AWS Compute Optimizerの推奨事項を使用して、過剰にプロビジョニングされたEC2インスタンス、Lambda関数、EBSボリュームのサイズを縮小し、コストを下げます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cloud & IT Cert Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「適正サイズ化とCompute Optimizer」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?

はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 適正サイズ化とCompute Optimizer
  2. リザーブドインスタンス、Savings Plans、Spot
  3. Cost Explorer、Budgets、コスト配分タグ
  4. S3とデータ転送のコスト最適化
← Cloud & IT Cert Prepに戻る