Slide 1

Slide 1 text

2024/12/12 『クラスメソッド re:Growth 2024 福岡』 産業⽀援グループ リテールアプリ共創部 中野ヨシユキ サーバレスアプリ開発者向け アップデートをキャッチアップしてきた

Slide 2

Slide 2 text

SNS投稿タグ #regrowth_fuk をつけて SNS投稿を!

Slide 3

Slide 3 text

● 部署 ○ 産業⽀援グループ リテールアプリ共創部 ● 職務 ○ ソフトウェアエンジニア ● 業務 ○ LINEミニアプリの開発‧保守 ● 名前 ○ 中野 ヨシユキ(@engin_yo) ● 所属 ○ 福岡オフィス ● 趣味 ○ ランニング(福岡オフィスメンバーでフルマラソン出場予定!) ○ ⾃作キーボード ⾃⼰紹介

Slide 4

Slide 4 text

サーバレスなアプリ開発やってますか?

Slide 5

Slide 5 text

本⽇は、アプリ開発している私⽬線で アップデートをご紹介します!

Slide 6

Slide 6 text

題して....

Slide 7

Slide 7 text

俺たちの re:Inventは ラスベガスに⾏く前から 始まっていた!!!!

Slide 8

Slide 8 text

1. 私のバックグラウンド 2. アプリ開発系アップデートの⼀覧 3. re:Invent 2024 アップデート紹介 4. “pre” re:Invent 2024 アップデートの紹介 ⽬次

Slide 9

Slide 9 text

1. 私のバックグラウンド 2. アプリ開発系アップデートの⼀覧 3. re:Invent 2024 アップデート紹介 4. “pre” re:Invent 2024 アップデートの紹介 ⽬次

Slide 10

Slide 10 text

私の普段使いのアーキテクチャ ● Backend ○ API Gateway + Lambda + DynamoDB ○ App Sync + Lambda + DynamoDB ○ ECS + RDS(Aurora) ○ Lambdaは、Node.jsランタイム ● Frontend ○ CloudFront + S3 ● Infrastructure as Code ○ AWS CDK (TypeScript) ● Monitering ○ CloudWatch Logs、CloudWatch Logs Insights ○ CloudWatch Alerm ● その他 ○ StepFunctions ○ SQS ○ etc… 基本的には、このようなサーバレスサービス を使ってアプリ開発を実施

Slide 11

Slide 11 text

私の普段使いのアーキテクチャ ● Backend ○ API Gateway + Lambda + DynamoDB ○ App Sync + Lambda + DynamoDB ○ ECS + RDS(Aurora) ○ Lambdaは、Node.jsランタイム ● Frontend ○ CloudFront + S3 ● Infrastructure as Code ○ AWS CDK (TypeScript) ● Monitering ○ CloudWatch Logs、CloudWatch Logs Insights ○ CloudWatch Alerm ● その他 ○ StepFunctions ○ SQS ○ etc… 基本的には、このようなサーバレスサービス を使ってアプリ開発を実施 アプリ開発に活かせそうなサービスの キャッチアップが参加の主な動機!!

Slide 12

Slide 12 text

1. 私のバックグラウンド 2. アプリ開発系アップデートの⼀覧 3. re:Invent 2024 アップデート紹介 4. “pre” re:Invent 2024 アップデートの紹介 ⽬次

Slide 13

Slide 13 text

サーバーレスアプリ開発で活⽤できそうなアップデート⼀覧 # 関連項目 アップデート 1 データベース Amazon DynamoDB グローバルテーブルの強力な一貫性 2 Amazon Aurora DSQLの一般公開(プレビュー) 3 コンテナ EKSハイブリッドノードの一般提供開始 4 EKS で Auto Mode が追加 5 生成AI Amazon Q がユニットテストを生成・適用(プレビュー) 6 Amazon Q がコードレビューを実行(プレビュー) 7 Amazon Q との GitLab 連携(プレビュー) 8 Amazon Q Developer が運用調査機能を追加 (プレビュー) 9 アプリ統合 Amazon EventBridge と AWS Step Functions が Private API との統合を発表

Slide 14

Slide 14 text

1. 私のバックグラウンド 2. アプリ開発系アップデートの⼀覧 3. re:Invent 2024 アップデート紹介 4. “pre” re:Invent 2024 アップデートの紹介 ⽬次

Slide 15

Slide 15 text

Amazon Aurora DSQL

Slide 16

Slide 16 text

今回のAmazon Aurora DSQLの アップデート印象...

Slide 17

Slide 17 text

アプリ開発現場でSQLのサーバレスDBが 使えるようなったやん、うれしい!!

Slide 18

Slide 18 text

Amazon Aurora DSQLとは ● サーバレスな分散SQLサービス ○ PostgreSQL互換 ● 事実上無限のスケーラビリティ ● ⾼可⽤性 ○ シングルリージョン構成99.99%、マ ルチリージョン構成で99.999% ● 強い整合性 ○ 楽観的同時性制御 (OCC) ● マルチリージョン対応 参考:https://aws.amazon.com/jp/blogs/news/introducing-amazon-aurora-dsql/

Slide 19

Slide 19 text

Amazon Aurora DSQLがなかった世界 〜 Lambda編 〜 ● 最⼤同時接続数対策として、RDSの前段にRDS Proxyを配置 ● RDSの起動にVPCの作成と管理が必要 ● RDS⾃体のメンテナンス必要(データベースエンジン、OSのバージョン アップ)

Slide 20

Slide 20 text

Amazon Aurora DSQLがある世界 〜 Lambda編 〜 ● 最⼤同時接続数対策として、DBの前段にRDS Proxyは不要 ● VPCの管理は不要(むしろパブリックエンドポイントしかない) ● DB⾃体のメンテナンス不要 ● DynamoDBのような⼿軽さと堅牢さを兼ね備えてSQLでクエリできる

Slide 21

Slide 21 text

公式のサンプルで触る⽅法 参考:https://docs.aws.amazon.com/aurora-dsql/latest/userguide/CHAP_tutorials-sample-code.html ● GitHub上にオープンソース が公開 ○ Benchbaseを使った負荷検証 ○ DSQLローダー ○ DSQLのコードサンプル

Slide 22

Slide 22 text

LambdaからDSQLへ接続する例 参考:https://dev.classmethod.jp/articles/reinvent2024-try-dsql-drizzle-lambda/

Slide 23

Slide 23 text

VPCレスでコンテナからDSQLにつなぐ例 参考:https://dev.classmethod.jp/articles/app-runner-aurora-dsql-multi-region/

Slide 24

Slide 24 text

1. 私のバックグラウンド 2. アプリ開発系アップデートの⼀覧 3. re:Invent 2024 アップデート紹介 4. “pre” re:Invent 2024 アップデートの紹介 ⽬次

Slide 25

Slide 25 text

調べ⽅ ● 英語版のWhat's newページを開く ● 開発系のフィルターを設定 ● 2024年11⽉15⽇〜2024年12⽉1⽇ サーバレス開発系のアップデートを、 私の独断と偏⾒でピックアップ

Slide 26

Slide 26 text

“pre” re:Invent2024 でアプリ開発に活きそうなアップデート⼀覧 # 関連項目 アップデート 1 データベース Amazon RDS for PostgreSQL がメジャーバージョン 17 をサポート 2 Amazon DynamoDB がオンデマンドスループットとグローバルテーブルの価格を値下げ 3 Amazon Aurora が Amazon RDS データベースプレビュー環境で PostgreSQL 17.0 をサポートするように なりました 4 Amazon Aurora Serverless v2 はゼロキャパシティへのスケーリングをサポート 5 Amazon RDS Blue/Green デプロイメントはストレージボリュームの縮小をサポートします 6 Amazon RDS ブルー/グリーン デプロイメント 切り替え前にグリーン ストレージが完全にパフォーマンスを 発揮 7 Amazon RDS Blue/Green デプロイメントは、RDS for PostgreSQL のマイナーバージョンアップグレードを サポートします。 8 Amazon RDS for PostgreSQL、MySQL、MariaDB が M8g および R8g データベースインスタンスをサ ポートするようになりました 9 Amazon RDS for SQL Server は 2024 年 11 月にマイナー バージョンをサポートします 10 Amazon Aurora が Graviton4 ベースの R8g データベースインスタンスのサポートを開始

Slide 27

Slide 27 text

11 コンテナ Amazon EKS が Kubernetes コントロールプレーンの監視を強化 12 オブザーバビリティが強化された Amazon CloudWatch Container Insights が Amazon ECS で利用可能 13 Amazon ECS でソフトウェアバージョンの一貫性を設定できるようになりました 14 Amazon EKS は EKS アドオンへの IAM 権限の提供を簡素化します 15 Amazon ECR がリポジトリの上限を 10 倍の 100,000 に増加することを発表 “pre” re:Invent2024 でアプリ開発に活きそうなアップデート⼀覧

Slide 28

Slide 28 text

“pre” re:Invent2024 でアプリ開発に活きそうなアップデート⼀覧 16 生成AI AWS App Studioが一般公開されました 17 AWS Amplify が Amazon Bedrock 向けのフルスタック AI キットをリリース 18 AWS マネジメントコンソールの Amazon Q Developer では、表示しているサービスをチャットのコンテキストと して使用するようになりました。 19 Amazon Q 開発者支援による AWS CloudFormation のトラブルシューティングの迅速化 20 Amazon CloudWatch Synthetics が Playwright ランタイムをサポートし、NodeJS でカナリアを作成できるよ うになりました 21 Amazon Q 開発者チャットカスタマイズが一般公開されました 22 Amazon Q Business がブラウザ拡張機能として利用可能に 23 AWS CodePipeline が新しいアクションとして ECR イメージの公開と AWS InspectorScan をサポートするよ うになりました 24 Amazon Q Developer が自然言語コスト分析を提供開始 25 Amazon Q 開発者は、コンソールのコンテキストに基づいて、よりパーソナライズされたチャット回答を提供で きるようになりました。 26 Amazon Q Java 変換がステップバイステップとライブラリのアップグレードを開始 27 Amazon Q アプリがデータ収集を導入 (プレビュー) 28 Amazon Q Developer が Java アップグレード変換 CLI (パブリック プレビュー) をリリース

Slide 29

Slide 29 text

“pre” re:Invent2024 でアプリ開発に活きそうなアップデート⼀覧 29 モニタリング CloudWatch RUM がパーセンタイル集計とウェブバイタルメトリクスによるトラブルシューティングの簡素化を サポート 30 Amazon CloudWatch アプリケーションシグナルがランタイムメトリクスのサポートを開始

Slide 30

Slide 30 text

“pre” re:Invent2024 でアプリ開発に活きそうなアップデート⼀覧 31 IaC AWS Step Functions の Infrastructure as Code テンプレート生成の発表 32 AWS CloudFormation フックがカスタム AWS Lambda 関数をサポートするようになりました 33 CloudFormation Guard ドメイン固有の言語を使用して AWS CloudFormation Hooks を作成 34 AWS CloudFormation フックにより、AWS Cloud Control API リソース構成の評価が可能に

Slide 31

Slide 31 text

“pre” re:Invent2024 でアプリ開発に活きそうなアップデート⼀覧 35 サーバレス Amazon SQS が FIFO キューのインフライト制限を 20K から 120K に増加 36 AWS Lambda が Node.js 22 のサポートを追加 37 AWS Step Functions は変数と JSONata 変換により開発者エクスペリエンスを簡素化します 38 AWS Lambda が Kafka イベントソースマッピング (ESM) のプロビジョニングモードを発表

Slide 32

Slide 32 text

サーバレス開発系の”pre” re:Inventの アップデートは⼤盛

Slide 33

Slide 33 text

オブザーバビリティが強化された Amazon CloudWatch Container Insights ● Amazon ECS の Container Insights に新しく可観測性を強化した機能が追加 ● 以下の設定画⾯でボタンひとつで設定可能(既存のECSもOK) 参考:https://aws.amazon.com/jp/about-aws/whats-new/2024/12/amazon-cloudwatch-container-insights-observability-ecs/

Slide 34

Slide 34 text

オブザーバビリティが強化された Amazon CloudWatch Container Insights ● 何が嬉しいか ○ クラスター、サービス、タスク、コンテナ レベルのECSを構成するリソースの調査が ⼀元的なCloudWatch画⾯で可能 ○ ドリルダウン/ドリルアップで連続的な調査 が可能に ○ ボトルネックの特定が⼀つの画⾯上ででき るように

Slide 35

Slide 35 text

オブザーバビリティが強化された Amazon CloudWatch Container Insightsがない世界 ● サービスイベントログでサービ スの正常性を確認 ● タスクのエラーの調査 ● CloudWatch Logsで関連するタ スクのログを調査 ● etc… それぞれ調査で利⽤する画⾯が違う ので運⽤負荷がかかる 参考 :https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/troubleshooting.html

Slide 36

Slide 36 text

オブザーバビリティが強化された Amazon CloudWatch Container Insightsがある世界 ● 問題が発⽣したら、クラスターの状態から異常があるものを探す

Slide 37

Slide 37 text

オブザーバビリティが強化された Amazon CloudWatch Container Insightsがある世界 ● クラスター/サービス/タスク/コンテナでパフォーマンスのモニタリング ● 異常がないか観測して異常があるメトリクスからトグルダウン

Slide 38

Slide 38 text

● 異常のあるコンテナを特定したら、特定のコンテナを選択してログを表⽰ オブザーバビリティが強化された Amazon CloudWatch Container Insightsがある世界

Slide 39

Slide 39 text

CloudWatchのメトリクス料⾦に気をつける 仮定 計算 本機能を利⽤した場合のContainer Insightsと利⽤しない場合ではもコ ストに差があるので注意 参考:https://aws.amazon.com/jp/cloudwatch/pricing/?nc1=h_ls

Slide 40

Slide 40 text

LambdaのColdStartを改善するSnapStartがPython/.NETで利⽤可能に ● 2024年11⽉18⽇より、Python 3.12以上と.NET 8以上のランタイ ムでSnapStartが利⽤可能に ● スナップショットを利⽤してコー ルドスタートのレイテンシを⼤幅 に改善 ● Node.jsでも今後アップデートある か期待 参考:https://dev.classmethod.jp/articles/snap-start-support-python-and-dotnet/

Slide 41

Slide 41 text

Step Functions で変数が利⽤可能に ● ステート間の値の取り回しが変数を使えること で簡易的に ● ステート間の値の渡しで毎回 InputPath/OutputPathなどの概念を思い出す 必要があった ● 注意 ○ Map/Parallelはその範囲内の変数のスコープ範囲 ○ 変数の割当は256KBまで ■ ⼤きなデータサイズは今まで通り、S3に⼀ 時ファイルを保存して取り回す必要があり そう ■ 参考 :https://dev.classmethod.jp/articles/the- operation-when-the-maximum-payload-si ze-limit-of-256kb-was-exceeded-in-aws-st ep-functions/ 参考:https://dev.classmethod.jp/articles/step-functions-variables/

Slide 42

Slide 42 text

● Amplify と Bedrock を連携したWebアプリケーションが 簡単に構築できるライブラリ ● 生成AIアプリのフロントエンドの開発にのみ注力したい、 とりあえずBedrockをためしてMVCでアプリをつくりたい みたいな用途にはまりそう ● 対応するAPI a. Conversation i. ストリーミングのマルチターン API(複数 のターンにまたがる自由形式の会話) b. Generation ● 単一同期リクエストのレスポンス用 API(テキストの生成など) Amplify AI kit 参考:https://dev.classmethod.jp/articles/amplify-ai-kit-service-launch/

Slide 43

Slide 43 text

Amplify AI Kit 参考 :https://aws.amazon.com/jp/blogs/mobile/buil d-fullstack-ai-apps-in-minutes-with-the-new-a mplify-ai-kit/ ● バックエンドの少ないコード量で、右図のようなアーキテクチャのリソースをセットアップ

Slide 44

Slide 44 text

● サーバーレス系のアップデートはre:Invent 2024本選よりも前 の “pre” re:Invent 2024のほうが多いのでチェックしよう! ● Aurora DSQLでサーバレスなSQLデータベースを今後つくれそ う! ● サーバレスの運用効率があがるようなアップデートも多数あ り! まとめ

Slide 45

Slide 45 text

To Be Continued… 参考:https://reinvent.awsevents.com/

Slide 46

Slide 46 text

No content