Share
Embed
Transcript
59 slides
-
CDKとLambda Aliasで実現する、 SQS+Lambdaの、安全なリリース手法 2024年09月25日 江口 純矢 JAWS-UG CDK支部 #16 ~CDK
Conference 2024 Extra~ -
5 導入施設数推移(ICT) 2021年4月 8,000 2020年4月 5,200 2019年4月 3,000 2018年4月 1,500
2017年4月 500 2016年4月 120 全国導入数 19,000 施設 2022年2月 11,000 17,000 2024年1月 (2024年7月時点) 14,000 2023年4月 -
9 CONFIDENTIAL - © 2022 CoDMON Inc. 9 LambdaのVersionとは?
1. LambdaのVersionとAliasとは? Lambdaの変更履歴 -
10 CONFIDENTIAL - © 2022 CoDMON Inc. 10 LambdaのVersionとは?
1. LambdaのVersionとAliasとは? Lambdaの変更履歴 任意のタイミングで 現在のVersionを発行 v1 -
11 CONFIDENTIAL - © 2022 CoDMON Inc. 11 LambdaのVersionとは?
1. LambdaのVersionとAliasとは? Lambdaの変更履歴 v1 任意のタイミングで 現在のVersionを発行 -
12 CONFIDENTIAL - © 2022 CoDMON Inc. 12 LambdaのVersionとは?
1. LambdaのVersionとAliasとは? Lambdaの変更履歴 v1 -
13 CONFIDENTIAL - © 2022 CoDMON Inc. 13 1. LambdaのVersionとAliasとは?
Lambdaの変更履歴 v1 v2 任意のタイミングで 現在のVersionを発行 LambdaのVersionとは? -
14 CONFIDENTIAL - © 2022 CoDMON Inc. 14 Lambdaの変更履歴 v1
v2 任意のタイミングで 現在のVersionを発行 1. LambdaのVersionとAliasとは? LambdaのAliasとは? -
15 CONFIDENTIAL - © 2022 CoDMON Inc. 15 Lambdaの変更履歴 v1
v2 任意のタイミングで 現在のVersionを発行 任意のタイミングで Aliasを発行 public 1. LambdaのVersionとAliasとは? LambdaのAliasとは? -
16 CONFIDENTIAL - © 2022 CoDMON Inc. 16 1. LambdaのVersionとAliasとは?
Lambdaの変更履歴 v1 v2 任意のタイミングで 現在のVersionを発行 LambdaのAliasとは? 任意のタイミングで Aliasを発行 public SQS 他AWSリソースは Aliasを指定して参照可能 SQSのトリガーに、 Aliasの指定が可能 -
17 CONFIDENTIAL - © 2022 CoDMON Inc. 17 1. LambdaのVersionとAliasとは?
Lambdaの変更履歴 v1 v2 任意のタイミングで 現在のVersionを発行 LambdaのAliasとは? 任意のタイミングで Aliasを発行 public SQS 他AWSリソースは Aliasを指定して参照可能 90% 10% 二つのVersionに対して 加重設定が可能 -
18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 1. LambdaのVersionとAliasとは?
Lambdaの変更履歴 v1 v2 任意のタイミングで 現在のVersionを発行 LambdaのAliasとは? 任意のタイミングで Aliasを発行 public SQS 他AWSリソースは Aliasを指定して参照可能 90% 10% 二つのVersionに対して 加重設定が可能 SQSのトリガーとなるLambdaの 段階的なリリースができそう -
20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 2. CDKで使う場合
Lambdaの変更履歴 v1 v2 1.Versionの発行 それぞれ、CDKではどのように記述する? 2-a. Aliasの発行 2-b. Aliasの加重設定 public SQS 3.他リソースにAliasを参 照させる 90% 10% -
21 CONFIDENTIAL - © 2022 CoDMON Inc. 21 2. CDKで使う場合
Lambdaの変更履歴 1.Versionの発行 それぞれ、CDKではどのように記述する? 2-a. Aliasの発行 2-b. Aliasの加重設定 public SQS 3.他リソースにAliasを参 照させる 10% 90% -
22 CONFIDENTIAL - © 2022 CoDMON Inc. 22 2. CDKで使う場合
Lambdaの変更履歴 1.Versionの発行 Versionの発行 90% 10% 2-a. Aliasの発行 2-b. Aliasの加重設定 3.他リソースにAliasを参 照させる public SQS v1 -
23 CONFIDENTIAL - © 2022 CoDMON Inc. 23 2. CDKで使う場合
1.Versionの発行 Versionの発行 2-a. Aliasの発行 2-b. Aliasの加重設定 public SQS 3.他リソースにAliasを参 照させる 90% 10% v1 Lambdaの変更履歴 -
24 CONFIDENTIAL - © 2022 CoDMON Inc. 24 90% 10%
2. CDKで使う場合 1.Versionの発行 Versionの発行 public SQS 2-a. Aliasの発行 2-b. Aliasの加重設定 3.他リソースにAliasを参 照させる v1 Lambdaの変更履歴 v2 -
25 CONFIDENTIAL - © 2022 CoDMON Inc. 25 2. CDKで使う場合
1.Versionの発行 Aliasの発行 SQS 3.他リソースにAliasを参 照させる Lambdaの変更履歴 v1 v2 2-a. Aliasの発行 2-b. Aliasの加重設定 public -
26 CONFIDENTIAL - © 2022 CoDMON Inc. 26 2. CDKで使う場合
1.Versionの発行 Aliasの加重設定 SQS 3.他リソースにAliasを参 照させる v1 Lambdaの変更履歴 v2 2-a. Aliasの発行 2-b. Aliasの加重設定 public 90% 10% -
27 CONFIDENTIAL - © 2022 CoDMON Inc. 27 2. CDKで使う場合
1.Versionの発行 Aliasの加重設定 SQS v1 Lambdaの変更履歴 v2 2-a. Aliasの発行 2-b. Aliasの加重設定 public 90% 10% 3.他リソースにAliasを参 照させる -
29 CONFIDENTIAL - © 2022 CoDMON Inc. 29 3. 実際どのようにして使っていたか
EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス 自社で使用していたPush通知基盤の構成 APNs FCM -
30 CONFIDENTIAL - © 2022 CoDMON Inc. 30 3. 実際どのようにして使っていたか
EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス 自社で使用していたPush通知基盤の構成 APNs FCM 通知メッセージ、宛先を SQSに送信 -
31 CONFIDENTIAL - © 2022 CoDMON Inc. 31 3. 実際どのようにして使っていたか
EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス 自社で使用していたPush通知基盤の構成 APNs FCM LambdaがSQSから メッセージを刈り取る -
32 CONFIDENTIAL - © 2022 CoDMON Inc. 32 3. 実際どのようにして使っていたか
EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス 自社で使用していたPush通知基盤の構成 APNs FCM プッシュ通知サービスの APIにリクエストを送信 -
33 CONFIDENTIAL - © 2022 CoDMON Inc. 33 3. 実際どのようにして使っていたか
EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス 自社で使用していたPush通知基盤の構成 APNs FCM iOS端末への通知は APNsへリクエスト -
34 CONFIDENTIAL - © 2022 CoDMON Inc. 34 3. 実際どのようにして使っていたか
EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス 自社で使用していたPush通知基盤の構成 APNs FCM iOS端末への通知は APNsへリクエスト Android端末への通知は FCMへリクエスト -
35 CONFIDENTIAL - © 2022 CoDMON Inc. 35 3. 実際どのようにして使っていたか
EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス Legacy API このままではFCMへのリクエストが送れなくなる APNs FCM -
36 CONFIDENTIAL - © 2022 CoDMON Inc. 36 3. 実際どのようにして使っていたか
移行後はOSSからFCMへリクエストさせない構成に 移行前 移行後 EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス Legacy API APNs FCM EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス APNs FCM Legacy API New API -
37 CONFIDENTIAL - © 2022 CoDMON Inc. 37 3. 実際どのようにして使っていたか
移行後はOSSからFCMへリクエストさせない構成に 移行前 移行後 EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス Legacy API APNs FCM EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス APNs FCM Legacy API 安全に移行したい New API -
38 移行前 移行後 段階移行期間 EC2 バッチ実行サーバー SQS Lambda ECS Fargate
プッシュ通知サービス Legacy API APNs FCM EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス APNs FCM Legacy API New API -
39 移行前 移行後 段階移行期間 EC2 バッチ実行サーバー SQS Lambda ECS Fargate
プッシュ通知サービス Legacy API APNs FCM EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス APNs FCM Legacy API EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス Legacy API APNs FCM Lambda New API New API -
40 移行前 移行後 段階移行期間 EC2 バッチ実行サーバー SQS Lambda ECS Fargate
プッシュ通知サービス Legacy API APNs FCM EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス APNs FCM Legacy API EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス Legacy API APNs FCM Lambda Alias OLD NEW AliasとVersionを 使用して実現 New API New API -
41 CONFIDENTIAL - © 2022 CoDMON Inc. 41 3. 実際どのようにして使っていたか
最新Versionの比重を0%に設定 段階移行期間 EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス Legacy API APNs FCM Alias OLD NEW Lambda -
42 CONFIDENTIAL - © 2022 CoDMON Inc. 42 3. 実際どのようにして使っていたか
最新Versionの比重を10%に設定 段階移行期間 EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス Legacy API APNs FCM Alias OLD NEW Lambda New API -
43 CONFIDENTIAL - © 2022 CoDMON Inc. 43 3. 実際どのようにして使っていたか
段階移行期間 EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス Legacy API APNs FCM Alias OLD NEW 最新Versionの比重を50%に設定 Lambda New API -
44 CONFIDENTIAL - © 2022 CoDMON Inc. 44 3. 実際どのようにして使っていたか
段階移行期間 EC2 バッチ実行サーバー SQS Lambda ECS Fargate プッシュ通知サービス APNs FCM Alias OLD NEW 最新Versionの比重を100%に設定 Lambda New API -
45 CONFIDENTIAL - © 2022 CoDMON Inc. 45 3. 実際どのようにして使っていたか
不要になったAliasやVersionを削除 段階移行期間 EC2 バッチ実行サーバー SQS ECS Fargate プッシュ通知サービス APNs FCM Lambda New API -
46 CONFIDENTIAL - © 2022 CoDMON Inc. 46 3. 実際どのようにして使っていたか
不要になったAliasやVersionを削除 段階移行期間 EC2 バッチ実行サーバー SQS ECS Fargate プッシュ通知サービス APNs FCM 無事安全に移行することができました Lambda New API -
48 CONFIDENTIAL - © 2022 CoDMON Inc. 48 Versionの発行に関する注意点 Versionの発行
Versionを発行する度に、CDKにコードが残ってしまう 2-a. Aliasの発行 2-b. Aliasの加重設定 public SQS 3.他リソースにAliasを参 照させる 10% 90% v1 Lambdaの変更履歴 -
49 CONFIDENTIAL - © 2022 CoDMON Inc. 49 Versionの発行 public
SQS 2-a. Aliasの発行 2-b. Aliasの加重設定 3.他リソースにAliasを参 照させる v1 10% 90% Lambdaの変更履歴 v2 Versionの発行に関する注意点 Versionを発行する度に、CDKにコードが残ってしまう -
50 CONFIDENTIAL - © 2022 CoDMON Inc. 50 Versionの発行 public
SQS 2-a. Aliasの発行 2-b. Aliasの加重設定 3.他リソースにAliasを参 照させる v1 10% 90% Lambdaの変更履歴 v2 Versionの発行に関する注意点 Versionを発行する度に、CDKにコードが残ってしまう 毎回バージョンを発行すると煩雑になる -
51 CONFIDENTIAL - © 2022 CoDMON Inc. 51 Versionの発行 public
SQS 2-a. Aliasの発行 2-b. Aliasの加重設定 3.他リソースにAliasを参 照させる v1 10% 90% Lambdaの変更履歴 v2 Versionの発行に関する注意点 Versionを発行する度に、CDKにコードが残ってしまう 毎回バージョンを発行すると煩雑になる →普段のリリースで使用するのには向いていない -
52 CONFIDENTIAL - © 2022 CoDMON Inc. 52 Versionの発行 public
SQS 2-a. Aliasの発行 2-b. Aliasの加重設定 3.他リソースにAliasを参 照させる v1 10% 90% Lambdaの変更履歴 v2 Versionの発行に関する注意点 VersionとAliasが有用な場面 毎回バージョンを発行すると煩雑になるため、普段のリリースで使用するのには向いていない -
53 CONFIDENTIAL - © 2022 CoDMON Inc. 53 Versionの発行 public
SQS 2-a. Aliasの発行 2-b. Aliasの加重設定 3.他リソースにAliasを参 照させる v1 10% 90% Lambdaの変更履歴 v2 Versionの発行に関する注意点 VersionとAliasが有用な場面 毎回バージョンを発行すると煩雑になるため、普段のリリースで使用するのには向いていない バージョンを多数発行しない、特定のタイミングのリリースに有用 -
55 CONFIDENTIAL - © 2022 CoDMON Inc. 55 まとめ •
VersionとAliasを使えば、SQS + Lambdaでも安全にリリースできる • Versionはたくさん作ると管理が煩雑になるため、この手法は特定の大きめ のリリースに有用