OCI関数へのAWSラムダ・ワークロードの移行について

AWSラムダ関数は、大規模なアプリケーションと統合ワークフローに頻繁に埋め込まれます。

移行を成功させるには、プラットフォーム間でコードを移動する以上のことが必要です。OCI関数は、AWSラムダ移行イニシアチブのデフォルトのターゲットです。ターゲットとしてOCI関数を選択する前に、各関数の起動方法、その関数が相互作用するサービス、その関数が依存する操作動作、および保持する必要がある動作を特定します。

このインベントリには、トリガー・タイプ、最大期間、メモリー使用、ペイロード・サイズ、同時実行性、再試行と失敗の動作、依存関係、IAM権限、ネットワーク・パス、ロギング、モニタリングおよびリカバリの期待値の収集が含まれます。これらの特性によって、OCI関数と別のOCIサービスのどちらが適切なターゲットになるかが決まります。

評価中に、ワークロードの呼出し、ペイロード、タイムアウト、メモリー、同時実行性、ネットワーキング、依存関係および統合要件がOCI関数でサポートできることを検証します。

OCI関数が文書化された要件を満たせない場合は、移行を一時停止し、例外レビューを完了してから、非関数アーキテクチャを提案してください。例外には、技術的制約、改訂された合計コスト・モデル、移行作業、運用上の影響および改訂されたアプローチの明示的な承認が含まれる必要があります。

何をするか

  • ラムダ構成、トリガー、依存性、権限、トラフィック、障害および操作シグナルのエビデンスベースのインベントリを作成します。
  • ソースの動作とOCI Functionsの制限、起動モード、トリガー・パターン、セキュリティ、依存関係パッケージング、ネットワーキングおよび可観測性を比較します。
  • 移植可能なビジネス・ロジックを、プロバイダ固有のイベント解析、アイデンティティ、SDKコール、デプロイメント・パッケージング、ロギング、シークレット、再試行および操作コードから分離します。
  • OCI Functionsコンテナ・イメージとして機能をデプロイし、カットオーバー前の出力、エラー、副作用、レイテンシ、容量、再試行、セキュリティ、可観測性およびロールバックの準備状況を検証します。

このプレイブックの使用方法

このプレイブックは評価および実装ガイドです。

大きなラムダエステートの場合、すべての機能を手動で評価することから始めてはいけません。プライマリ・ランタイム、トリガー、依存関係、トラフィック・プロファイルおよびビジネスクリティカル度レベルをカバーする代表的なサンプルから始めます。

サンプルを使用して、次のことを行います。

  1. 代表的なワークロードのOCI関数移行アプローチを確認します。
  2. 必要なアダプタおよびターゲット・コードの変更を識別します。
  3. 必要なセキュリティー、ネットワーキング、デプロイメントおよび運用の変更を特定すること。
  4. 移行作業、リスクおよび再利用可能なパターンを見積もります。
  5. 作業中の移行パイロットの代表的なワークロードを選択します。

ラムダ・コードを自動的に変換したり、必要なすべての統合を生成したりすることはありません。

アーキテクチャ

この再利用可能なパターンは、ソース・アセスメントとターゲット実装を分離します。

最初に、ラムダ関数とそのトリガーおよびその動作のインベントリを作成します。次に、ポータブル・ビジネス・ロジックをプロバイダ固有のアダプタから分離します。ターゲット実装は、OCI Functionsアプリケーションで実行され、コンテナ・レジストリに格納されているコンテナ・イメージからデプロイされ、ランタイム・アクセスにOCI IAMおよびリソース・プリンシパルを使用し、OCI Vaultなどの承認済シークレット・ストアからシークレットを取得し、必要に応じてOCIロギング、モニタリング、アラームおよびAPMを介して操作シグナルを発行します。

AWSラムダとOCI関数の関係マップ

これは、OCI関数を中心に再作成するためのワークロード・エンベロープのグループ化されたビューです


migrate-lambda-functions-arch.pngの説明が続きます
図migration-lambda-functions-arch.pngの説明

migrate-lambda-functions-arch-oracle.zip#GUID-B6E215FE-1619-4CDD-B055-0194D46ADBF8

アーキテクチャの原則

  • 最初に評価してから移行します。 トリガー、ペイロード、再試行、レイヤー、権限、ネットワーキングおよび操作動作が異なる場合があります。
  • トリガー移行を動作移行として処理します。 イベント・シェイプ、認証、再試行、順序付け、バッチ処理、重複配信、フィルタリング、デッドレター宛先または障害宛先、および中毒メッセージ処理を比較します。
  • ソース・ワークロードを測定します。 起動率、ピーク同時実行性、継続時間パーセンタイル、最大継続時間、メモリー使用、コールド・スタート依存パス、ペイロード・サイズ、エラー率、スロットル・レート、DLQまたは障害数、バックログおよびダウンストリーム制限を取得します。
  • ビジネス・ロジックの移植性を維持します。 イベント解析、アイデンティティ、SDKコール、オブジェクトまたはメッセージ・アクセス、ロギング、構成、シークレットおよび再試行動作のアダプタを分離します。
  • 操作を移行の一部にします。 カットオーバーの前に、ログ、メトリック、アラーム、ダッシュボード、トレース、ランブック、ロールバック・トリガーおよび障害テストが存在する必要があります。

コア・コンポーネント

アーキテクチャには通常、ソース・ラムダ・ワークロード、移行レコード、OCI起動レイヤー、OCI Functionsアプリケーションおよびイメージ、およびサポート・セキュリティ、ネットワーキングおよびオペレーション・サービスが含まれます。ソースを直接ブループリントではなくエビデンスとして扱い、必要な動作と検証結果からOCIコンポーネントを選択します。

AWSラムダとOCIの同等の概念

このキーは評価時に使用します。

このキーは、1対1の等価性の約束ではなく、翻訳ガイドとして意図されています。各行について、ソース動作をターゲットOCI動作と比較し、移行レコードのエビデンスを保持します。

AWSラムダコンセプト OCIの概念またはパターン 比較または検証する対象
関数とハンドラ Fn FDKハンドラを使用したOCI関数 ランタイム、アーキテクチャ、ハンドラ・エントリ・ポイント、イベント・パーサー、レスポンス・オブジェクト、エラー動作、ローカル・テスト・パスおよびランタイム固有のライブラリ・サポート。
ZIPパッケージ、レイヤー、拡張 コンテナ・イメージまたは共有ベース・イメージ 依存関係のバージョン、ネイティブ・ライブラリ、イメージ・サイズ、起動動作、拡張動作、埋込みSDKの仮定、および依存関係を関数間で共有するかどうか。
実行ロールおよびリソース・ポリシー OCI Identity and Access Management (IAM)ポリシー、動的グループおよびリソース・プリンシパル ランタイム・アクション、コンパートメントとリソースのスコープ、クロスアカウントまたはクロスコンパートメント・アクセス、シークレット読取り、オブジェクトまたはキュー・アクセス、および拒否パス・テスト。
APIゲートウェイとラムダ OCI APIゲートウェイOCIファンクション 認証、ルートおよびメソッド、ヘッダー、問合せ文字列、本文スキーマ、ステータス・コード、レスポンス・ヘッダー、タイムアウト、ペイロード・サイズ、レイテンシおよびエラー本文。
S3オブジェクト・イベント OCIイベントを介したOCIオブジェクト・ストレージ・イベント イベント・スキーマ、オブジェクト・メタデータ、ネームスペース、バケットおよび接頭辞のフィルタ、作成/更新/削除の動作、再試行、重複、冪等性および入力/出力ループの防止。
SQS、ストリーム、SNS、EventBridge、ログ・サブスクリプション OCI Queue、OCI StreamingOCI NotificationsOCI EventsOCI Connector Hub、または再設計されたフロー バッチ・サイズ、順序付け、再試行、部分障害、デッド・レターまたは障害宛先、可視性または再試行ウィンドウ、バックプレッシャー、ポイズン・メッセージ、ファンアウト、フィルタおよび重複配信。
同期または非同期呼出し 同期または連結解除された呼出し コール元レスポンス・セマンティクス、結果処理、呼出しタイムアウト、実行タイムアウト、デタッチされた完了処理、成功/失敗の宛先および再試行パス。
メモリー、タイムアウト、ペイロード、一時的仮定 OCI関数のメモリー、タイムアウト、リクエスト、レスポンス、イメージおよびランタイム設定 p95/p99および最大期間、タイムアウト数、メモリー・ヘッドルーム、リクエスト/レスポンスのペイロード・サイズ、一時記憶域の前提条件、大容量ペイロード・オフロード設計および依存性ロード時間。
予約済/プロビジョニング済の同時実行性およびイベント・ソース・スケーリング OCIサービス制限、アプリケーションの同時実行性、プロビジョニングされた同時実行性、トリガー制御、ダウンストリーム保護 現在およびピークの同時実行性、コールドスタート感度、スロットルまたは429秒、キュー経過時間またはバックログ、再試行ストーム、ダウンストリーム容量制限、およびソース設定で容量を予約するか、トラフィックを制限するか、または待機時間を短縮するか。
CloudWatchログ、メトリック、アラーム、X線 OCI LoggingOCI Monitoring、アラーム、ダッシュボード、および必要に応じてOracle Application Performance Monitoring (APM) 必要なログ・フィールド、相関ID、呼出し数、期間、エラー率、タイムアウト数、アラームしきい値、トレース、ダッシュボード、ランブックおよびインシデント・レスポンスの所有権。
Secrets Manager、Parameter Store、KMS、VPCネットワーキング OCI Vault、キー、VCN、サブネット、ゲートウェイ、プライベート・エンドポイント、DNSおよびセキュリティ・ルール シークレット・ローテーション、リーク・チェック、ルート・ルール、エグレス、DNS、許可リスト、プライベート・アクセス、認可されていないパス・ブロックおよびダウンストリーム接続の制限。