Amazon Web Services ブログ
AWS Fargate Spotの発表 – Fargateとスポットインスタンスの統合
本日のAWS re:Invent 2019にて、AWS Fargate Spotを発表します。Fargate SpotはAWS Fargateの新しい機能です。中断に強いAmazon Elastic Container Service (Amazon ECS)タスクに最適であり、Fargate価格から最大70%割引で提供します。
もしEC2スポットインスタンスを知っていれば、同様のコンセプトで理解できます。Fargate Spotは、AWSクラウドの空きキャパシティを活用してタスクを実行します。Fargate Spotが空きキャパシティを確保できるかぎり、ユーザーは指定したタスクを起動することができます。AWSにキャパシティが必要になったとき、Fargate Spotで稼働するタスクは2分前の通知とともに中断されることになります。Fargate Spot用のキャパシティが使用できなくなると、Fargateは稼働中の通常のタスクを保持しながら、Fargate Spotで稼働するタスクをスケールダウンします。
タスクが中断される可能性があるという特性から、中断が許容できないワークロードをFargate Spotで稼働させるべきではありません。一方で中断耐性のあるワークロードに対しては、コスト最適化に大きく貢献します。
Fargate Spotは特に画像のレンダリング、モンテカルロシミュレーション、ゲノム解析といった並列度の高いワークロードに適しています。また高可用性を求められるウェブサイトやAPIサーバーのように、ECSサービスの一部となるタスクに対してもFargate Spotを適用することができます。
クラスター定義を作成・更新する際、常時稼働させるべき最低限のタスク数を指定し、さらに性能向上を狙いとするタスクをコスト効率の良いFargate Spot上で稼働するように構成することができるようになります。サービス定義のService Auto Scalingを利用することで、Fargate Spot用のキャパシティが使用可能になり次第、リクエストを満たすようにスケジューラーがタスクを起動し、Fargate Spot用のキャパシティが使用できなくなると、前述の通り先に指定した常時稼働タスクを保持しながら、Fargate Spotで稼働するタスクがスケールダウンする、という動作を実現することもできます。
AWS Fargate Spotの開始方法を見ていきましょう。
まずECSマネジメントコンソールより、新規のECSクラスターを作成します。Fargate起動タイプを選択するため、ここでは”Networking only”を選択し、ウィザードを進めます。
クラスターが作成されたらば、”Capacity Providers”タブからキャパシティプロバイダーを追加します。デフォルトではFARGATEとFARGATE_SPOTの2種類のキャパシティプロバイダーが用意されています。
キャパシティプロバイダーとしてFARGATE_SPOTを用いるのに、まずデフォルトのプロバイダーをFARGATE_SPOTに変更します。”Update Cluster”ボタンをクリックし、次の画面で”Add provider”をクリックしてFARGATE_SPOTを追加し、Updateボタンを押します。
続いて、これまでのようにタスクを起動します。事前に設定済みのタスク定義から、10のタスクを指定し、また”VPC and security groups”セクションでVPC関連の必要情報をセットしたのちに”Run Task”をクリックします。
起動された10個のタスクは、通常のFargate環境ではなくFargate Spot環境が選択されています。あるタスクをクリックしてみると、実際にキャパシティプロバイダーとしてFARGATE_SPOTが使用されたことがわかります。
ここまで、Fargate Spotの開始方法を紹介してきました。ぜひお手元でも試してみてください。
数週間前にCompute Savings Plansをリリースしました。FargateはCompute Savings Plansの一部に含まれます。さらにここでFargate Spotが登場したことより、費用の大幅な効率化とともに、様々な種類のアプリケーションへの一層の活用が期待できます。いま、Fargateを使うのにまたとないチャンスが訪れていると言えるでしょう。
AWS Fargate Spotは本日より、AWS Fargateを使用できるすべてのリージョンでお使いいただけます。ぜひお試しください。
— Martin
この記事はソリューションアーキテクト滝口が翻訳しました。原文はこちら。