Slide 1

Slide 1 text

情シスがMA移行を乗り切るIaC AWS CDKで楽できたあれこれを語りたい クラスメソッド株式会社 進地 崇裕 1

Slide 2

Slide 2 text

2 自己紹介 ● 情報システムグループ 情報システム室 コアシステムチーム(長い) ○ 進地 崇裕(しんち たかひろ) ● 仕事: 業務改善したり、営業支援したりな人 ● 趣味: モンハン、尺八、ワンコと遊ぶ

Slide 3

Slide 3 text

3 Mission

Slide 4

Slide 4 text

4 そうだ! MAをPardotからHubSpotに 移行しよう!! (意訳)

Slide 5

Slide 5 text

5 年内に (重要)

Slide 6

Slide 6 text

6 いろんな課題

Slide 7

Slide 7 text

7 アーキテクチャ(?)を考える ↑APIある ↑APIある そしたら、Lambdaで色々ゴニョゴニョすればよろし (超シンプル)

Slide 8

Slide 8 text

8 AWS CDKの嬉しいところ 1. 5分で素のLambdaが作れる。 Role、EventBridgeのルールも簡単作成 2. コマンド一発でデプロイできる 3. バージョン管理できる。レビューもできる。 4. CFnやServerless Frameworkは記述量が多くて 手が疲れる 5. 新しく↑の言語、記法を覚えなくてよろし。 学習コスト低い。採用しやすい。保守性向上。

Slide 9

Slide 9 text

9 実際のコードサンプル 1. リソースはTypeScriptで作成(サンプル多いから)

Slide 10

Slide 10 text

10 実際のコードサンプル 2. Lambda本体はPythonで作成がおすすめ  (jsはライブラリのアップデートが激しくて辛いので)

Slide 11

Slide 11 text

11 結果!Mission Clear!(色々課題はまだある) MA移行の各課題を解決する Lambdaを2weeksぐらいで 爆速開発

Slide 12

Slide 12 text

12 カスタムAPIも爆速 API Gatewayと絡めてカスタムAPIの作成も 爆速でできた const lambdaIntegration = new LambdaIntegration(lambda); const apigw = new RestApi(this, "apigw", { restApiName: "apigw", deployOptions: { loggingLevel: MethodLoggingLevel.INFO, dataTraceEnabled: true, metricsEnabled: true, }, defaultCorsPreflightOptions: { allowOrigins: Cors.ALL_ORIGINS, allowMethods: Cors.ALL_METHODS, allowHeaders: Cors.DEFAULT_HEADERS, statusCode: 200, }, endpointTypes: [EndpointType.REGIONAL], cloudWatchRole: true });

Slide 13

Slide 13 text

13 Cognito連携も爆速 既存のCognitoユーザプールと繋いだりも 爆速でできた // 既存のユーザープールを使う const userPool = cognito.UserPool.fromUserPoolArn( this, 'ExistingUserPool', `arn:aws:cognito-idp:ap-northeast-1:${process.env.AWS_ACCOUNT_ID}:u serpool/${process.env.COGNITO_USER_POOL_ID}` ); // Cognitoのユーザープールにクライアントを追加 const userPoolClientName = 'companyAndContactLinkerUserPoolClient'; userPool.addClient(userPoolClientName, { userPoolClientName: userPoolClientName, authFlows: { userPassword: true }, });

Slide 14

Slide 14 text

14 まとめ AWS CDKで 1. Lambdaを爆速で用意できる 2. 学習コストを抑えて、保守性も向上できる 3. キータイピング量を抑えて腱鞘炎を回避できる 環境構築とコーディングを爆速で終わらせて、要件整理、課題 整理、タスク整理、トラブルシューティング、会議などの重要な (楽しくない)仕事をバリバリこなしましょう