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

ノーコード・ローコードで開発する効率的なサーバーレスアプリケーションの作り方

kawaji
October 07, 2023

 ノーコード・ローコードで開発する効率的なサーバーレスアプリケーションの作り方

kawaji

October 07, 2023
Tweet

More Decks by kawaji

Other Decks in Technology

Transcript

  1. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. ノーコード・ローコードで開発する 効率的なサーバーレスアプリケーション の作り⽅ 川路 義隆 アマゾン ウェブ サービス ジャパン合同会社 ソリューションアーキテクト
  2. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 川路 義隆(かわじ よしたか) アマゾン ウェブ サービス ジャパン合同会社 ソリューションアーキテクト 小売業のお客様向けの AWS 導入・アーキテクチャ支援 アジャイル・サーバーレス 好きな AWS サービス Amazon API Gateway, AWS Lambda, AWS Step Functions 自己紹介 2 AWS Lambda @kawaji_scratch AWS Step Functions Amazon API Gateway JAWS-UG歴13年ぐらい
  3. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 4 「サーバーレス」 or 「ノーコード・ローコード」 #jawsfesta2023 #jawsfesta2023_A 気になっているのは︖
  4. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 5 「つかれた」or「帰りたい」 こんなのダメですよ #jawsfesta2023 #jawsfesta2023_A
  5. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • ノーコード・ローコード開発とは • サーバーレスとは • モダンアプリケーション開発における課題 • AWS のサービスを利⽤した課題解決アプローチ • まとめ アジェンダ
  6. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • DX 現場によるアプリ整備の策として注⽬ • コード記述などの専⾨知識を要する作業をソフトウェアの部品の組み合わせ により極⼒省き、開発知⾒の不⾜している⼈材によるアプリケーション開発 ⼿法 ノーコード・ローコード開発とは
  7. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. サーバーレスとは サーバーが存在しない 魔法のアーキテクチャ
  8. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. サーバーレスとは サーバーが存在しない 魔法のアーキテクチャ サーバーを意識しなくてよい クラウドを活⽤したアーキテクチャ
  9. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. サーバーレスを選択するビジネス価値 • サーバー管理不要 • アプリケーションの開発に集中 • 需要に応じて⾃動でスケール • ⾼いスループット • ⾼い可⽤性とセキュリティ • 容易なグローバル展開 • 利⽤量に応じた課⾦ • 価値に対する⽀払い
  10. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. サーバーレスを選択するビジネス価値 • サーバー管理不要 • アプリケーションの開発に集中 アプリケーションの開発 = ソースコードの生産 ノーコード・ローコードを活用することで生産性は高くなる
  11. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 例︓ AWS Lambda の実⾏モデル shard AWS Lambda Amazon API Gateway Amazon DynamoDB Amazon Kinesis Amazon S3 同期 (push) ⾮同期 (event) ストリーム (poll-based) Lambda 関数 Lambda 関数 Lambda 関数 Amazon SNS
  12. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. モダンアプリケーション開発における課題 データベース キュー
  13. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. モダンアプリケーション開発における課題 独立した複数の処理から構成される複雑なビジネスワークフロー 様々な場所にある複数のコンポーネントの呼び出しが発生する分散システムにおいて • どのように次の処理を呼び出すか? プロトコル、同期/非同期、Pub/Sub, Webhook, etc. • フロー制御はどうやって行うか? 条件分岐、並列処理、イテレーション • 途中でエラーが起きた場合は? 例外処理、リトライ、ロールバック • 運用監視は? ログ、メトリクス、トレース やることがたくさんある
  14. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 中央の ”指揮者” がワークフロー全体を制御し、 コンポーネント間の呼び出しや結果の取り扱い について責任を持つ 全てのコンポーネントは独立して動作し、 イベントを介してのみインタラクションする 疎結合なアーキテクチャ イベント駆動のパラダイム https://medium.com/theburningmonk-com/choreography-vs-orchestration-in-the-land-of-serverless-8aaf26690889 オーケストレーション コレオグラフィー オーケストレーション or コレオグラフィー
  15. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 例外処理 (try/catch/finally) データに基づく分岐処理 失敗したタスクの リトライ A B C A ? 連続したタスクの実行 B A 複数タスクの並列実行 C B A タスクの同時実行 またはイテレーション B A C オーケストレーションはどう役立つか?
  16. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 1 つの関数に全て詰め込んだ場合 UltraSuperFuctinon サンプルワークフロー 1. ユーザーの画像アップロードを トリガーに関数を実行 2. 画像かどうかファイルタイプを確認 3. 画像であれば以降の処理に進む、 画像でなければエラーで終了する 4. 画像ファイルの保存 5. サムネイルの生成 6. 機械学習モデルによる物体検出 7. 結果をメタデータとして DB に保存
  17. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 様々な課題 UltraSuperFuctinon コードが長く見通しが悪い 開発の生産性が落ちる テストがしづらい リソース/コスト効率が悪い 複雑なエラーハンドリング
  18. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 様々な課題 UltraSuperFuctinon コードが長く見通しが悪い 開発の生産性が落ちる テストがしづらい リソース/コスト効率が悪い 複雑なエラーハンドリング
  19. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 複数の Lambda 関数に分けるパターン UltraSuperFuctinon
  20. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 複数の Lambda 関数に分けるパターン UltraSuperFuctinon SaveImageFunction
  21. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 複数の Lambda 関数に分けるパターン UltraSuperFuctinon SaveImageFunction CreateThumbnail Function
  22. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 複数の Lambda 関数に分けるパターン UltraSuperFuctinon SaveImageFunction CreateThumbnail Function DetectObject Function
  23. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 複数の Lambda 関数に分けるパターン 1 つのことだけを行う関数 リソース効率 コスト効率 管理性 テストのしやすさ SaveImageFunction CreateThumbnail Function DetectObject Function UltraSuperFuctinon
  24. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 複数の Lambda 関数に分けるパターン 誰がこの関数を呼び出す? フロー制御は? エラーハンドリングは? オーケストレーターが必要 SaveImageFunction CreateThumbnail Function DetectObject Function
  25. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 他の管理コンポーネントの導入 データベースを使った ステート管理 追加のコード、コスト 運用管理タスクの発生に… SaveImageFunction CreateThumbnail Function DetectObject Function AWS Lambda Amazon DynamoDB Amazon SQS キューを使ったフロー管理
  26. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. サーバーレスを採用する目的 + 利用費の 適正化 作業量の 削減 + 時間の 短縮 付加価値を生まない作業から開発者を解放し、イノベーションに集中したい
  27. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 例外処理 (try/catch/finally) データに基づく分岐処理 失敗したタスクの リトライ A B C A ? 連続したタスクの実行 B A 複数タスクの並列実行 C B A タスクの同時実行 またはイテレーション B A C コードを実装ではなく、ノーコード・ローコード なアプローチで解決し生産性を向上させたい オーケストレーションはどう役立つか?
  28. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 課題を改めて確認 独立した複数の処理から構成される複雑なビジネスワークフロー 様々な場所にある複数のコンポーネントの呼び出しが発生する分散システムにおいて • どのように次の処理を呼び出すか? プロトコル、同期/非同期、Pub/Sub, Webhook, etc. • フロー制御はどうやって行うか? 条件分岐、並列処理、イテレーション • 途中でエラーが起きた場合は? 例外処理、リトライ、ロールバック • 運用監視は? ログ、メトリクス、トレース
  29. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 課題を改めて確認 独立した複数の処理から構成される複雑なビジネスワークフロー 様々な場所にある複数のコンポーネントの呼び出しが発生する分散システムにおいて • どのように次の処理を呼び出すか? プロトコル、同期/非同期、Pub/Sub, Webhook, etc. • フロー制御はどうやって行うか? 条件分岐、並列処理、イテレーション • 途中でエラーが起きた場合は? 例外処理、リトライ、ロールバック • 運用監視は? ログ、メトリクス、トレース AWS Step Functions によるアプローチ
  30. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 31 AWS Step Functions とは︖
  31. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS によって提供されるサーバーレスのワークフローサービス ローコードで多くの AWS サービスとの統合が可能 AWS Step Functions によるワークフローは • ステートマシンを用いて構築する • ステートマシンは JSON ベースの Amazon States Language (ASL) で定義する • ビジュアルエディタ Workflow Studio による直感的な操作をサポート • マイクロサービス、機械学習、ETLパイプラインなど幅広いユースケースをサポート AWS Step Functions とは?
  32. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ステートマシンの定義 { "Comment": "An example of the Amazon States Language using a choice state.", "StartAt": "FirstState", "States": { "FirstState": { "Type": "Task”, "Resource": "arn:aws:lambda:us-east- 1:123456789012:function:FUNCTION_NAME", "Next": "ChoiceState” }, "ChoiceState": { "Type" : "Choice", "Choices": [ { "Variable": "$.foo", "NumericEquals": 1, "Next": "FirstMatchState” }, { "Variable": "$.foo", "NumericEquals": 2, "Next": "SecondMatchState” } ], . . . } } Amazon States Language (ASL)
  33. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ステートマシンの定義 Workflow Studio
  34. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS SDK 統合 並列実行 ポーリング (Activity) オンプレミス 人による承認作業 コールバック (.WaitForTaskToken) if status = A if status = B if status = C 条件分岐 複雑な呼び出し/フロー制御をマネージドで管理 AWS Lambda AWS Lambda AWS Lambda AWS Lambda Amazon DynamoDB Amazon S3 Amazon SNS
  35. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Start 名前の検証 住所の検証 申請を承認 新規口座を作成 申請を却下 エラーと記録する レビューを待つ レビューが必要? レビューで承認された? End 不正なデータの場合 Yes Yes No No サンプル 銀行のアプリケーション 新規口座開設の申請があった際に 内容の確認と承認を行うワークフロー 要件 o 名前と住所のバリデーションを行う o 一定の条件に応じて人間による レビューを行う o レビューが不要な申請は自動承認 o 承認されたら口座開設の処理を行う
  36. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Start 名前の検証 住所の検証 申請を承認 新規口座を作成 申請を却下 エラーと記録する レビューを待つ レビューが必要? レビューで承認された? End 不正なデータの場合 Yes Yes No No サンプル 銀行のアプリケーション 新規口座開設の申請があった際に 内容の確認と承認を行うワークフロー 要件 o 名前と住所のバリデーションを行う o 一定の条件に応じて人間による レビューを行う o レビューが不要な申請は自動承認 o 承認されたら口座開設の処理を行う
  37. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. タスクの呼び出し • 多くの AWS サービス とネイティブに統合 • AWS SDK 統合 • オンプレミス上の アプリケーション • 同期/非同期 • コールバック (Wait for Task Token) • ポーリング (Activity) フロー制御 • Task • Choice • Wait • Parallel • Map • Pass • Success • Fail エラーハンドリング • タイムアウト • try/catch • リトライ 運用 • コンソールから視覚的 に実行履歴を確認 • CloudWatch Logs 統合 • X-Ray 統合 AWS Step Functions によるオーケストレーション
  38. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Choice 処理の分岐 Parallel 並列実行 Pass 入力を次の出力にパススルー Wait 指定された時間待機 Success 成功で実行を終了 Fail 失敗で実行を終了 Map 配列要素の反復処理 Task 処理の実行 States の種類
  39. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. HTTP レスポンスを受け取ったら次の状態に進む 非同期ジョブの完了は待たない Request-response タスクトークンを発行してサービスを呼び出す トークンがペイロードとともに返ってくるまで待機する Wait for callback ジョブが完了するのを待機する Run a Job レスポンスのリクエスト ジョブの実行 コールバックの待機 (.sync) (.waitForTaskToken) サービス統合パターン
  40. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. コールバックパターン • 人による手作業の承認を求めるユースケース • 身分証明証と顔写真を目視で突き合わせる • 外部システムによる非同期で実行される処理結果を待機したい • 銀行口座開設処理が完了するのを待機する Amazon EC2 ・ AWS Fargate などを起動させた状態で待機すると従量課金対象となる
  41. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Callback task Next task オンプレミスの アプリケーション AWS Lambda Amazon ECS Amazon SNS Amazon SQS Amazon API Gateway SendTaskSuccess SendTaskFailure トークン .waitForTaskToken 人による作業 AWS Step Functions Amazon EventBridge キュー Start End AWS Fargate 処理の完了後 コールバックパターン
  42. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 入出力データの変換 • 次のタスクへ処理結果結果を渡したい • 注文情報から消費税を計算し、注文確定処理を呼び出す 最初に渡された入力情報を加工して次の処理へ渡したい { “item”: “S-001” “price”: 100, “tax”: 0.08 } { “item”: “S-001” “tax_included_price”: 108, } 計算
  43. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. StartExecution Task state { “item”: “S-001” “price”: 100, “tax”: 0.08 } State Input { “item”: “S-001” “tax_included_price”: 108, } 実行結果 元の入力値 変換 { “result”: “108 } Next state State Output State Input 入出力データの変換 AWS Lambda
  44. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon API Gateway Amazon EventBridge AWS CodePipeline AWS IoT Core AWS サービス ネストされた ワークフローの実行 API • StartExecution • StartSyncExecution コンソール 実行の開始方法 (トリガー) AWS Step Functions AWS Step Functions AWS Step Functions
  45. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 課題を改めて確認(再掲) 独立した複数の処理から構成される複雑なビジネスワークフロー 様々な場所にある複数のコンポーネントの呼び出しが発生する分散システムにおいて • どのように次の処理を呼び出すか? プロトコル、同期/非同期、Pub/Sub, Webhook, etc. • フロー制御はどうやって行うか? 条件分岐、並列処理、イテレーション • 途中でエラーが起きた場合は? 例外処理、リトライ、ロールバック • 運用監視は? ログ、メトリクス、トレース
  46. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 47 ノーコード・ローコード戦略
  47. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 基本方針 48 • コードを記述することなく実現できないか? • 既存のコードを削減できないか?
  48. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 基本方針 • コードを記述することなく実現できないか? • 既存のコードを削減できないか? 49 ビルディングブロック リファクタリング
  49. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Send Message via EventBridge Pipes 50 DynamoDB にドメインイベントを保存してから、 EventBridge にイベントを送信する Original Lambda Application EventBridge DynamoDB Lambda Function Table Event Custom event bus Integration ・トポロジーが環境変数に隠れている(DynamoDB テーブル名, Event Bus 名など) Rollback どうする? ・複数サービスへの通信が、同じトランザクションスコープではない
  50. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Send Message via EventBridge Pipes 51 Stream Pipes Original Lambda Application EventBridge Integration DynamoDB Lambda Function Table Event Custom event bus Refactored EventBridge Lambda Application EventBridge DynamoDB Lambda Function Table Event Custom event bus Integration
  51. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Send Message via EventBridge Pipes 52 ・ビジネスロジックの明確化 Event Bridge への送信ロジックがアプリケーションコードから排除される ・トポロジーの明確化 イベントの送信先は Lambda Function の環境変数で指定せず ⾃動化コード(AWS CDK, CloudFormation など)に委譲される ・トランザクションの整合性保証 Lambda のエラーハンドリングやロールバック実装を簡略化 ・DynamoDB Streams による dedupe 同じ Item を put しても DDB Strems は最初の変更のみ Capture する
  52. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. delete.js “Nano Lambda” 53 Amazon DynamoDB Amazon API Gateway Client /create /update /delete import { DynamoDB } from "aws-sdk"; const dynamodb = new DynamoDB(); export const handler = async (event: any) => { const params = { TableName: "serverless-days-tokyo-2023", Key: { id: { S: event.id }, }, }; try { const data = await dynamodb.getItem(params).promise(); return { body: JSON.stringify(data) }; } catch (err) { return { error: err }; } }; update.js import { DynamoDB } from "aws-sdk"; const dynamodb = new DynamoDB(); export const handler = async (event: any) => { const params = { TableName: "serverless-days-tokyo-2023", Key: { id: { S: event.id }, }, }; try { const data = await dynamodb.getItem(params).promise(); return { body: JSON.stringify(data) }; } catch (err) { return { error: err }; } }; create.js import { DynamoDB } from "aws-sdk"; const dynamodb = new DynamoDB(); export const handler = async (event: any) => { const params = { TableName: "serverless-days-tokyo-2023", Key: { id: { S: event.id }, name: { S: event.name }, }, }; try { const data = await dynamodb.putItem(params).promise(); return { body: JSON.stringify(data) }; } catch (err) { return { error: err }; } };
  53. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. API Gateway to Step Functions 54 AWS Step Functions Express Workflow を REST API に活⽤する start What’s method? End Choice state DynamoDB GET DynamoDB PUT DynamoDB POST DynamoDB DELETE AWS Step Functions Express workflow Amazon API Gateway Client sync ・ワークフローとロジックの可視化 ・Lambda ランタイムの削減 ・コスト効率の向上 Express workflow は 同期的なレスポンスが可能
  54. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Lambda Destinations “DestinationConfig”: { “onSuccess”:{ “Destination”: “arn” }, “onFailure”: { “Destination”: “arn” } } Amazon SNS Amazon SQS Amazon EventBridge AWS Lambda Lambda 関数 成功 エラー 非同期に実行されるイベント駆動型アーキテクチャパターンで有用 ソースコードによる分岐ではなく設定で繋ぐ 非同期に実行された Lambda の処理結果に応じて次の処理を呼び出す
  55. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EventBridge Event Bus Event Source の内容によって後続処理を呼び分ける Event source Event source Event source Amazon EventBridge Event bus AWS Lambda AWS Lambda AWS Lambda Rule Rule Rule { "source": [ "custom.myATMapp" ], "detail-type": [ "transaction" ], "detail": { "location": [ { "prefix": "NY-NYC-" } ] } } Lambda の実装から条件分岐を切り出しシンプルかつ単一責務の実装を実現
  56. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EventBridge Scheduler スケジューリングされた実行の管理が容易 実行タイミングを判断する実装が不要 1. Rate-based 指定の期間内で繰り返し定期実行 2. Cron-based cron 式による複雑な定期実行 rate(5 minutes) rate(12 hours) rate(1 days) * 秒レベルの実行は未サポート * 分 / 時間 / 日 のみ選択可能 cron(0 8 * * * *) cron(15 10 ? * 6L 2022-2023) * 各種ワイルドカードをサポート * UTC または指定のタイムゾーン 3. One-time 指定されタイミングで 1 回だけ実行 at(2022-11-20T13:00:00) * 有効な日付および時間を指定 * UTC または指定のタイムゾーン * 秒は指定しても 0 に切り捨てられる
  57. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EventBridge Scheduler 例:サブスクリプション解約処理 Amazon EventBridge Scheduler イベント 解約日に設定された スケジュールが発火 ユーザーがサブスクリプションを解約 サブスクリプションの削除 ステータスの変更など スケジュールを作成 ターゲットを 呼び出し CreateSchedule API AWS Lambda AWS Lambda Amazon DynamoDB 実行タイミングを判断する実装が不要
  58. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Serverlesspresso 59 AWS Workshop 🚀 サーバーレスで構築されたイベント駆動型のコーヒー注⽂アプリ
  59. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Serverlesspresso Order Manager workflow 60 Order Manager API Mobile Order App Barista App AWS Workshop 🚀 オーダー管理アプリを Step Functions で実装しよう
  60. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 61 まとめ
  61. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ビルディングブロックで作る 62 コードでなんでも実装ではなく、AWS サービスの組み合わせを検討
  62. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. 多種多様なサービス 63
  63. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. まとめ 64 • AWS サービスを繋げて⼀つの形を作るアプローチとして AWS Step Functions が⼀つの選択肢になる • ノーコード・ローコードなアプローチはビルディングブロックが基本
  64. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 65 番外編
  65. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. でも、なんだかんだコード書かないといけないんでしょ 66
  66. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon CodeWhisperer 開発者の生産性向上 AWS API 向けに 最適化 および Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell scripting, SQL, and Scala および CLion, GoLand, WebStorm, Rider, PhpStorm, RubyMine, and DataGrip
  67. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. CodeWhisperer の利用による生産性の向上 57% 27% プレビュー期間中に Amazon が実施した生産性テストによると、CodeWhisperer を利用した参加者は 利用していない参加者と比べてタスクを完了させる確率が 27 % 上昇し、完了速度も 57 % 高速化。
  68. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ビルディングブロック難しい やりたいことにどんな姿が良いか提案する サーバーレスな解決アプローチ欲しい 69
  69. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 70 AWS 活用についての相談ができます 会社勤めの方は AWS 担当 SA へ相談も可能なケースも ノーコードな解決
  70. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWSサポート とは AWSのエンジニアが お客様を技術的に支援する AWSサービス の1つ (お客様はビジネスニーズに合わせた最適なサポートプラン選択が可能) 日本語(※1)で 24時間365日(※2)で • AWSご利用中に発生した課題の解決の 支援が欲しい • AWSを利用して課題解決する方法を提 案して欲しい • 休日や自社の営業時間外でも、AWSの プロフェッショナルのアドバイスが欲し い時がある • 必要な時いつでも、AWSに関して相談 できる窓口が欲しい AWSサポート お客様 (※1) 英語対応をご希望の場合は、サポートセンターのケース起票(後述)時に「お問い合わせ言語」として「English」を指定することで 英語対応エンジニアから英語にて回答 (※2) サポートレベルにより、対応時間が異なる (24時間365日の対応は「ビジネス」サポートプラン以上のご加入が必要)
  71. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. いきなり AWS に相談じゃなくて もっと同じ視点、立場の人からも話を聞きたい 72
  72. © 2022, Amazon Web Services, Inc. or its Affiliates. 最⼤規模のコミュニティ

    AWS は世界中で何百万ものアクティブなお客様によって⽀えられています JAWS-UG は AWS が提供するクラウドコンピューティングを 利⽤する⼈々の集まり(コミュニティ)です ⼀⼈ではできない学びや交流を⽬的として ボランティアによる勉強会の開催や交流イベントなどが⾏われています AWS User Group – Japan (JAWS-UG) エンドユーザー企業を対象としたクローズドな場として設⽴された AWS をお使いの企業のコミュニティです ⾮公開を前提とした場で AWS のクラウド活⽤における課題や取り組みに関するさま ざまなディスカッションが進んでいます Enterprise-JAWS
  73. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 75 そして今我々はどこにいるのか︖
  74. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 77 懇親会でお話しましょう︕︕
  75. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Thank you!