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

20210930_JAWS-UG朝会_AWS公式10分チュートリアルから始める アウトプット 〜AWS StepFunctions編〜

h-ashisan
September 30, 2021

20210930_JAWS-UG朝会_AWS公式10分チュートリアルから始める アウトプット 〜AWS StepFunctions編〜

2021年9月のJAWS-UG朝会で語りました

h-ashisan

September 30, 2021
Tweet

More Decks by h-ashisan

Other Decks in Technology

Transcript

  1. 1
    AWS公式10分チュートリアルから始める
    アウトプット
    〜AWS StepFunctions編〜

    View Slide

  2. 2
    あなたは誰?

    View Slide

  3. 3
    自己紹介
    ・名前
    - あしさん(@ashi_ssan)
    ・所属
    - クラスメソッド株式会社 AWS事業本部
    - コンサルティング部 AWSエンジニア
    ・略歴
    - 新卒→独立系Sier→現職(2021/09〜)
    ・好きなAWSサービス
    - CloudShell, Systems Manager
    ・JAWS-UG歴
    - CLI専門支部(2021/05〜)
    ・ブログ

    View Slide

  4. 4
    自己紹介

    View Slide

  5. 5
    今日話すこと
    ・アウトプットについて
    ・AWS公式チュートリアルについて
    ・AWS Step Functionsについて
    ・チュートリアルを実際にやってみた
    ・まとめ

    View Slide

  6. 6
    今日話さないこと
    ・やってみた手順の詳しい説明
    ・AWS Step Functionの詳細の説明
    - サービスについての体系的な説明
    - 利用料金について
    - 本番環境での具体的なユースケースについて
    など

    View Slide

  7. 7
    今日持って帰って欲しいこと①
    アウトプットしようぜ

    View Slide

  8. 8
    今日持って帰って欲しいこと②
    AWS公式チュートリアルはいいぞ

    View Slide

  9. 9
    今日持って帰って欲しいこと③
    AWS Step Functionsはいいぞ

    View Slide

  10. 10
    アウトプットについて

    View Slide

  11. 11
    アウトプットについて
    そもそもアウトプットって何?
    定義は?

    View Slide

  12. 12
    アウトプットについて
    アウトプットとは、学習や経験によって得た学びを、
    発言や活動に反映させることで、その有用性や効果も
    含まれます。
    - カオナビより引用

    View Slide

  13. 13
    アウトプットについて
    ハンズオン学習におけるアウトプットとは?

    View Slide

  14. 14
    アウトプットについて
    参考資料:
    CLIハンズオンガイド
    - ハンズオン学習におい
    て優先すべきこと

    View Slide

  15. 15
    アウトプットについて
    1. 「完了すること」を最優先すること。 (全体把握)
    ハンズオンにおいて最も大事なことは、「手順通り進めたら、想定通りの結果が得られた」こと
    を体感することです。 わからない点がたくさんあっても、とにかく一回最後まで進めてくださ
    い。 それによって、ハンズオン全体でどんなことをやっているのか、どんなアウトプットが得
    られるのかを把握することができます。(全体を俯瞰することができます。)
    - CLIハンズオンガイドより

    View Slide

  16. 16
    アウトプットについて
    2. 必ず復習すること。(インプット)
    1回完了させることで、手順の全体構造と具体的なアウトプットを確認できているので、あとは、
    ワンステップずつ復習することで、効率良く確実に知識を身につけることができます。 そのと
    きに、「全てを把握しよう」とするのではなく、「わかりやすい」ところから順次理解していく
    のが、持続しやすく、実務に活用しやすいのでおすすめです。
    - CLIハンズオンガイドより

    View Slide

  17. 17
    アウトプットについて
    3. 自分なりにカスタマイズしてオリジナル手順にして
    みること。 (アウトプット)
    2で知識が身についたとしても、まだテンプレートが扱える段階で、自動車免許で言うと仮免許が
    取れた段階です。 実際に路上に出るように、2までで得られた知識を基にオリジナル手順を作成
    してみましょう。
    自力で書いた手順通りにリソース構築ができるようになったら、仮免許は卒業でしょう。 多くの人
    の目に触れることで、手順書の品質や作成効率はどんどんあがっていきます。色々な人に見ても
    らうようにしましょう。
    - CLIハンズオンガイドより

    View Slide

  18. 18
    アウトプットについて
    1. 「完了すること」を最優先すること。 (全体把握)
    2. 必ず復習すること。(インプット)
    3. 自分なりにカスタマイズしてオリジナル手順にし
    てみること。 (アウトプット)
    → このフレームワークでハンズオン学習してみた

    View Slide

  19. 19
    AWS公式チュートリアル
    について

    View Slide

  20. 20
    AWS公式チュートリアルについて
    ・AWSが提供しているハンズオンチュートリアル
    ・コンテナ、データベース、サーバレスなどカテゴリ別に現在計50本
    以上のハンズオンが提供されている
    ・ 10分のコンテンツから3時間のものまで、コンテンツのボリューム
    は様々

    View Slide

  21. 21
    AWS公式チュートリアルについて
    AWS公式チュートリアルのトップページ

    View Slide

  22. 22
    AWS公式チュートリアルについて
    カテゴリによるフィルタリングや文字列検索が可能

    View Slide

  23. 23
    AWS公式チュートリアルについて
    ・今回選択したハンズオンチュートリアルは
    「サーバーレスアプリケーションでエラーに対処する」
    ・気になっていたサービスのAWS Step Functionsを触れられるハンズオ
    ンで一番勉強になりそうな内容のものをチョイス
    - 正常系、異常系の処理を学べば概要を把握できそうだなと判断

    View Slide

  24. 24
    AWS Step Functions
    について

    View Slide

  25. 25
    AWS Step Functionsについて
    ・AWS Step Functionsって何?
    公式ドキュメントより引用。
    > Step Functions は、サーバーレスオーケストレーションサービスで、
    AWS Lambda関数とその他AWSサービスを使用して、ビジネスクリ
    ティカルなアプリケーションを構築できます。
    > Step Functions のグラフィカルコンソールでは、アプリケーション
    のワークフローを一連のイベント駆動ステップとして確認できま
    す。

    View Slide

  26. 26
    AWS Step Functionsについて
    ざっくりまとめ
    ・様々なAWSサービスを組み合わせてイベント駆動ワーク
    フローをサーバレスに構築できるサービス
    ・GUIのコンソールからワークフローを視覚的に確認できる
    参考:AWS Step Functions をゼロからざっくり理解する

    View Slide

  27. 27
    なんでStep Functionsに興味を持ったの?

    View Slide

  28. 28
    AWS Step Functionsについて
    A. アップデートで使いやすくなったと知ったから
    参考: [アップデート]Step Functions Workflow Studioがリリースされて、
    ワークフロー作成が簡単になりました

    View Slide

  29. 29
    AWS Step Functionsについて
    ・アップデート前
    - Amazon States Language(ASL)というJSON形式の独自
    言語でのテンプレートの作成
    ↑ 慣れるための学習コスト要

    View Slide

  30. 30
    AWS Step Functionsについて
    ・アップデート後
    - Amazon States Language(ASL)というJSON形式の独自
    言語でのテンプレートの作成
    - WorkFlow StudioでのGUI構築 New!
    ↑ GUIで作成する選択肢が増えた!

    View Slide

  31. 31
    実際にやってみた

    View Slide

  32. 32
    実際にやってみた
    ・はじめに
    - 本セッションではやってみた概要をご紹介します
    - 詳細のやってみた手順はブログに上げてます
    AWS公式10分チュートリアルから始めるアウトプット〜AWS Step Functions編〜

    View Slide

  33. 33
    実際にやってみた
    ・やってみたの流れ
    1. 「完了すること」を最優先すること。 (全体把握)

    2. 必ず復習すること。(インプット)

    3. 自分なりにカスタマイズしてオリジナル手順にしてみること。
    (アウトプット)

    View Slide

  34. 34
    実際にやってみた
    ・やってみたの流れ
    1. 「完了すること」を最優先すること。 (全体把握)
    → 一通りハンズオンをやってみる
    2. 必ず復習すること。(インプット)
    → ハンズオンで実施した内容の確認
    3. 自分なりにカスタマイズしてオリジナル手順にしてみること。
    (アウトプット)
    → 改良版ハンズオン手順の実施

    View Slide

  35. 35
    実際にやってみた
    1. 一通りハンズオンをやってみる
    - Lambda関数作成
    - IAMロール作成
    - StepFunctionsステートマシン作成
    - ステートマシンのテスト

    View Slide

  36. 36
    実際にやってみた
    StepFunctionsステートマシン作成

    View Slide

  37. 37
    実際にやってみた
    StepFunctionsステートマシン作成

    View Slide

  38. 38
    実際にやってみた
    StepFunctionsステートマシン作成

    View Slide

  39. 39
    実際にやってみた
    StepFunctionsステートマシン作成

    View Slide

  40. 40
    実際にやってみた
    ステートマシンのテスト

    View Slide

  41. 41
    実際にやってみた
    ステートマシンのテスト

    View Slide

  42. 42
    実際にやってみた
    ステートマシンのテスト

    View Slide

  43. 43
    実際にやってみた
    ステートマシンのテスト

    View Slide

  44. 44
    実際にやってみた
    ステートマシンのテスト

    View Slide

  45. 45
    実際にやってみた
    2. ハンズオンで実施した内容を復習する
    - 使用したコードの確認(Lambda、StepFunctions)
    - StepFunctionsのStateについて学ぶ

    View Slide

  46. 46
    実際にやってみた
    使用したコードの確認(Lambda、StepFunctions)

    View Slide

  47. 47
    実際にやってみた
    ・StepFunctionsのStateについて学ぶ
    - Task
    - Invoke: Lambda Functionなど
    - Pass
    - 何もしない時や入力出力だけを変更したい時に使用
    - Wait
    -ステートマシンの続行を指定された時間遅延できる
    - Fail
    -強制的に異常終了させるときに使用

    View Slide

  48. 48
    実際にやってみた
    3. 改良版ハンズオン手順の実施
    - Lambda関数作成(既存の関数を使用)
    - IAMロール作成(既存のロールを使用)
    - ステートマシンの作成(WorkFlow Studio)
    - ステートマシンのテスト(AWS CLI)

    View Slide

  49. 49
    実際にやってみた
    ステートマシンの作成(WorkFlow Studio)

    View Slide

  50. 50
    実際にやってみた
    ステートマシンの作成(WorkFlow Studio)

    View Slide

  51. 51
    実際にやってみた
    ステートマシンの作成(WorkFlow Studio)

    View Slide

  52. 52
    実際にやってみた
    ステートマシンの作成(WorkFlow Studio)

    View Slide

  53. 53
    実際にやってみた
    ステートマシンの作成(WorkFlow Studio)

    View Slide

  54. 54
    実際にやってみた
    ステートマシンの作成(WorkFlow Studio)

    View Slide

  55. 55
    実際にやってみた
    ステートマシンの作成(WorkFlow Studio)

    View Slide

  56. 56
    実際にやってみた
    ・ステートマシンのテスト(AWS CLI)
    - AWS Cloud Shellから実行
    ### StatusCodeのみ実施するテストの内容によって変更する
    StatusCode=”200"
    ### ここから下は常に同じコードでOK
    StateMachineName="MyAPIStateMachine-WorkFlowStudio"
    InputJson=$(cat << EOF
    {"statuscode": "${StatusCode}"}
    EOF
    )
    StateMachineARN=$(aws stepfunctions list-state-machines --query "stateMachines[].[stateMachineArn]" ¥
    --output text |grep ${StateMachineName}) && echo ${StateMachineARN}
    StateExecutionARN=$(aws stepfunctions start-execution ¥
    --state-machine-arn ${StateMachineARN} --input "${InputJson}" ¥
    --query "executionArn" --output text) && echo ${StateExecutionARN}
    aws stepfunctions describe-execution --execution-arn ${StateExecutionARN}

    View Slide

  57. 57
    実際にやってみた
    {
    "executionArn": "arn:aws:states:ap-northeast-1:XXXXXXXXXX:execution:MyAPIStateMachine-
    WorkFlowStudio:19a8a1c29-a959-4afb-bdc3-c555b48e4deb",
    "stateMachineArn": "arn:aws:states:ap-northeast-1: XXXXXXXXXX :stateMachine:MyAPIStateMachine-
    WorkFlowStudio",
    "name": "19a8bc29-a959-4afb-bdc3-c1115b48e4deb",
    "status": "SUCCEEDED",
    "startDate": "2021-09-28T06:20:25.806000+00:00",
    "stopDate": "2021-09-28T06:20:26.385000+00:00",
    "input": "{¥"statuscode¥": ¥"200¥"}",
    "inputDetails": { "included": true },
    "output": "¥"200 OK¥"",
    "outputDetails": { "included": true }
    }

    View Slide

  58. 58
    以上、やってみたでした

    View Slide

  59. 59
    まとめ

    View Slide

  60. 60
    まとめ
    ・ 全体把握→インプット→アウトプットの流れでより
    効果的に学ぼう
    ・AWS公式チュートリアルはGoodな教材
    ・AWS Step FunctionsはWork Flow Studioにより
    もっと使いやすくなった!

    View Slide

  61. 61
    以上。
    ご静聴ありがとうございました。

    View Slide