Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #r...

サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk

Yoshiyuki Nakano

December 12, 2024
Tweet

More Decks by Yoshiyuki Nakano

Other Decks in Technology

Transcript

  1. • 部署 ◦ 産業⽀援グループ リテールアプリ共創部 • 職務 ◦ ソフトウェアエンジニア •

    業務 ◦ LINEミニアプリの開発‧保守 • 名前 ◦ 中野 ヨシユキ(@engin_yo) • 所属 ◦ 福岡オフィス • 趣味 ◦ ランニング(福岡オフィスメンバーでフルマラソン出場予定!) ◦ ⾃作キーボード ⾃⼰紹介
  2. 私の普段使いのアーキテクチャ • 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… 基本的には、このようなサーバレスサービス を使ってアプリ開発を実施
  3. 私の普段使いのアーキテクチャ • 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… 基本的には、このようなサーバレスサービス を使ってアプリ開発を実施 アプリ開発に活かせそうなサービスの キャッチアップが参加の主な動機!!
  4. サーバーレスアプリ開発で活⽤できそうなアップデート⼀覧 # 関連項目 アップデート 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 との統合を発表
  5. Amazon Aurora DSQLとは • サーバレスな分散SQLサービス ◦ PostgreSQL互換 • 事実上無限のスケーラビリティ •

    ⾼可⽤性 ◦ シングルリージョン構成99.99%、マ ルチリージョン構成で99.999% • 強い整合性 ◦ 楽観的同時性制御 (OCC) • マルチリージョン対応 参考:https://aws.amazon.com/jp/blogs/news/introducing-amazon-aurora-dsql/
  6. Amazon Aurora DSQLがなかった世界 〜 Lambda編 〜 • 最⼤同時接続数対策として、RDSの前段にRDS Proxyを配置 •

    RDSの起動にVPCの作成と管理が必要 • RDS⾃体のメンテナンス必要(データベースエンジン、OSのバージョン アップ)
  7. Amazon Aurora DSQLがある世界 〜 Lambda編 〜 • 最⼤同時接続数対策として、DBの前段にRDS Proxyは不要 •

    VPCの管理は不要(むしろパブリックエンドポイントしかない) • DB⾃体のメンテナンス不要 • DynamoDBのような⼿軽さと堅牢さを兼ね備えてSQLでクエリできる
  8. “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 データベースインスタンスのサポートを開始
  9. 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 でアプリ開発に活きそうなアップデート⼀覧
  10. “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 (パブリック プレビュー) をリリース
  11. “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 リソース構成の評価が可能に
  12. “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) のプロビジョニングモードを発表
  13. オブザーバビリティが強化された 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/
  14. オブザーバビリティが強化された Amazon CloudWatch Container Insights • 何が嬉しいか ◦ クラスター、サービス、タスク、コンテナ レベルのECSを構成するリソースの調査が

    ⼀元的なCloudWatch画⾯で可能 ◦ ドリルダウン/ドリルアップで連続的な調査 が可能に ◦ ボトルネックの特定が⼀つの画⾯上ででき るように
  15. オブザーバビリティが強化された Amazon CloudWatch Container Insightsがない世界 • サービスイベントログでサービ スの正常性を確認 • タスクのエラーの調査

    • CloudWatch Logsで関連するタ スクのログを調査 • etc… それぞれ調査で利⽤する画⾯が違う ので運⽤負荷がかかる 参考 :https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/troubleshooting.html
  16. 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/
  17. • 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/