投稿日: Nov 28, 2017

事前に割り当てられたウェイトに基づいて、AWS Lambda 関数の 2 つのバージョン間で受信トラフィックを移動できるようになりました。これにより、2 つのバージョン間のトラフィックを徐々に移行し、新しい Lambda のデプロイによるリスクを軽減しその影響範囲を制限できます。また、AWS CodeDeploy を使用して関数の新しいバージョンのロールアウトを自動的に管理できるようになりました。CodeDeploy は、Lambda や Amazon EC2 のようなさまざまなコンピューティングサービスへのソフトウェアのデプロイを自動化するサービスです。CodeDeploy を使用すると、更新を Lambda に段階的および安全にデプロイするのが簡単になります。CodeDeploy は AWS Serverless Application Model でサポートされています。

これまでは、Lambda 関数エイリアスに新しい関数バージョンを指定すると、すべてのトラフィックが即時に新しいバージョンにルーティングされていました。今回、Lambda エイリアスに 2 つの関数バージョンを指定して、各バージョンにルーティングされるトラフィックの割合を設定できるようになりました。トラフィック移行は、AWS マネジメントコンソール、AWS CLI、および SDK で設定できます。この機能は、Lambda がサポートされているすべてのリージョンで使用できます。

AWS CodeDeploy は、Lambda のトラフィック移行機能を利用して、新しい関数バージョンの段階的なロールアウトを自動化します。また、新規の変更をすべての顧客にデプロイする前にトラフィックのごく一部でテストするなど、デプロイのベストプラクティスを使用する場合も便利です。たとえば、CodeDeploy を使用すると、関数がトラフィックを取り込む前に合格する必要があるデプロイ前テストを自動化できます。また、エラーの際にロールバックを自動的にトリガーするアラームを設定することもできます。Serverless Application Model テンプレート内で CodeDeploy を定義することで、リリースプロセス内にこのようなデプロイパターンを簡単に構築できます。最後に、SAM を AWS CodePipeline のような CI/CD サービスで使用することで、新規バージョンの構築、テスト、ロールアウトというプロセス全体を自動化できます。CodeDeploy は、AWS マネジメントコンソール、AWS CLI、SDK で使用できます。

CodeDeploy の Lambda デプロイ機能は、米国東部 (バージニア北部) および南米 (サンパウロ) で利用できます。米国東部 (オハイオ)、米国西部 (オレゴン)、米国西部 (北カリフォルニア)、カナダ (中部)、欧州 (アイルランド)、欧州 (フランクフルト)、欧州 (ロンドン)、アジアパシフィック (シンガポール)、アジアパシフィック (東京)、アジアパシフィック (シドニー)、アジアパシフィック (ソウル)、アジアパシフィック (ムンバイ) の各リージョンで今週後半より利用できます。

詳細については、Lambda ドキュメントを参照してください。