ある企業が AWS 上の本番環境でコスト削減を行うため、Amazon EC2 の使用状況を分析しました。分析の結果、本番の Auto Scaling グループ(On-Demand)とは別に、追加の処理ジョブ(バッチ処理、データ変換など)を実行する EC2 フリートに月額 100 万円以上のコストが発生していることが分かりました。これらのジョブは処理時間が 2〜8 時間で、中断が発生しても再開できる設計になっています(チェックポイントあり)。最もコスト効率よくこれらのジョブを実行するには、どの方法が適切ですか?
- A. 処理ジョブを On-Demand インスタンスで継続し、Savings Plans を購入してコストを削減する
- B. AWS Lambda でバッチジョブを実行し、処理をマイクロバッチに分割して 15 分以内で完了するように再設計する
- C. バッチ処理用に Reserved Instances(1 年)を購入し、常時利用することでコストを削減する
- D. Amazon EC2 スポットインスタンスを使用してバッチジョブを実行する。スポットインスタンスはオンデマンドに比べて最大 90% コスト削減が可能で、チェックポイントがあるため中断耐性がある。AWS Batch または EC2 スポットフリート(多様なインスタンスタイプ指定)で Spot 中断リスクを分散し、2 分前の中断通知(Spot Instance Interruption Notice)で状態を保存する
解答と解説を見る
正解: D
EC2 スポットインスタンスはオンデマンド比最大 90% のコスト削減が可能で、チェックポイントがある中断耐性のバッチジョブには最適な選択です。Spot Instance Interruption Notice の 2 分前通知をインスタンスメタデータから取得し、状態をチェックポイントとして保存することで、中断後の再開が可能です。複数のインスタンスタイプとアベイラビリティゾーンを指定することで、Spot の可用性を高めることができます。 C: Reserved Instances の購入はバッチジョブが断続的に実行される場合(24 時間365日でない)に非効率です。使わない時間も料金が発生します。 B: Lambda の最大実行時間は 15 分で、2〜8 時間のバッチジョブには直接対応できません。処理の分割と再設計には大きな開発コストが必要です。 A: Savings Plans はコンピューティングコストを削減しますが、スポットインスタンスほどの大幅な削減(最大 90%)は達成できません。Savings Plans での最大削減は約 66% です。
📚 関連サービスの解説: Amazon EC2