Announcement
CloudFlowでAWS Waitersをサポート開始
By Craig Lowell
このページはEnglish、Português、Deutsch、Español、Italiano、Françaisでもご覧いただけます。

CloudFlowのステップでAWSリソースが目的の状態に達するまでポーリングが可能になり、競合状態の排除や任意のスリープ処理の置き換えを、決定論的かつ調整可能なWaiterで実現します。
AWS APIを呼び出すCloudFlowステップに「Waiters」を組み込めるようになりました。Waitersは、リソースが指定の状態に達するまで実行をブロックする組み込みのポーリング機構です(例:EC2インスタンスが「running」状態になる、CloudFormationスタックが「CREATE_COMPLETE」状態に達する、など)。
Waiterがターゲット条件を確認するまでフローは先に進まないため、タイミングに起因する競合状態や「偽陽性」の成功を排除できます。
これが重要な理由:
- 決定論的なパイプライン: 各ステップが状態を認識することで、任意のスリープ処理やアドホックなリトライが不要になります。その結果、予測可能で再現性の高いデプロイが実現し、不安定なビルドが減少します。
- 障害率の低減: Waitersは各AWSサービス固有のバックオフロジックとエラーハンドリングを活用するため、プロビジョニング中のリソースに起因するカスケード障害を回避できます。
- 調整可能なレイテンシ: デフォルトのポーリング間隔は15秒ですが、
MinDelay、MaxDelay、MaxAttemptsをオーバーライドすることで、パイプラインの速度とAPI呼び出し量のバランスを調整できます。 - コスト効率の高いポーリング: 専用のWaitersがタイトループやアグレッシブなカスタムポーリングを置き換え、不要なAPI呼び出しとそれに伴うリクエスト課金を削減します。
- リソース課金の最適化: ダウンストリームタスクは前提条件が本当に準備完了した時点でのみ開始されるため、結果整合性の待機中にコンピュート、コンテナ、ランナーのキャパシティをアイドル状態で保持する必要がありません。
- 予測可能なコスト: 実行時間がより決定論的になることで、ランタイムコストの予測や異常の検出が容易になります。
Waiterを有効にするには、AWS APIを呼び出す任意のCloudFlowステップにWaiter設定ブロックを追加してください。

AWS Waitersの適用方法について詳しくは、ヘルプドキュメントをご参照いただくか、DoiTサポートチームにチケットをお寄せください。
Related documentation