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

API Gatewayをswaggerでサクサク作ろう!

API Gatewayをswaggerでサクサク作ろう!

JAWS UG札幌(2020/2)で登壇した内容です。
API Gatewayをswaggerでサクサク作ろう!

Takayuki Fuwa

February 21, 2020
Tweet

More Decks by Takayuki Fuwa

Other Decks in Technology

Transcript

  1. なるほどわかった!
    API Gatewayをswaggerで
    サクサク作ろう!
    不破 崇行

    View full-size slide

  2. 自己紹介
    • 不破 崇行(ふわ たかゆき) / 31歳独身男性
    • 所属
    • エコモット株式会社(9:00〜18:00) / FASTIO開発チーム / 主任
    • 東雲研究所(19:00〜22:00) / 代表
    • コミュニティ
    • JAZUG札幌(きたあず) / Azureもくもく会札幌の宴会係
    • SORACOM UG 札幌 / などなど
    • 好きなAWSサービス
    • CloudWatch
    • 趣味
    • シメパフェ
    • Alexaいじり

    View full-size slide

  3. エコモットの概要
    (お昼の仕事)
    • 設立
    • 2007年2月19日
    • 所在地
    • 本社:札幌市
    • 拠点:東京 / 青森 / 仙台 / 北信越 / 東海 / 関西
    / 九州
    • 社員数
    • 108名(2019年4月1日現在、臨時従業員を含む)
    • スローガン
    • “あなたの「見える」を、みんなの安心に”

    View full-size slide

  4. 東雲研究所
    (夜の仕事)
    • 営業時間
    • 平日19:00〜22:00
    • 土曜 10:00〜22:00
    • 業務内容
    • テクニカルコンサルティング
    • WordPressプラグイン開発
    • サーバ構築・保守
    • その他オーダーメイド

    View full-size slide

  5. JAWS FESTA 2019サポーター

    View full-size slide

  6. Visual Studio Codeのリリースノートに
    名前が載る

    View full-size slide

  7. 今日伝えたい事
    API Gatewayすごい!!

    View full-size slide

  8. 今日伝えたい事
    Swagger楽しい!!

    View full-size slide

  9. API Gatewayをザックリと
    • 自分でWebサーバやロードバランサを立ち上げなくても
    APIサービスを構築出来るAWSのサービス
    • マイクロサービス向けAWSサービスの風雲児

    View full-size slide

  10. マネジメントコンソール

    View full-size slide

  11. API Gatewayの良いところ
    • マネジメントコンソール上でポチポチ手軽にAPIを定義していくことが出来る
    • CloudWatchとX-Rayとシームレスに連携出来る。
    • Lambdaの動きを把握するのにX-Ray超便利
    • 内部にCloudFrontを使用しているため、大量アクセスにも耐えられる
    • API Gatewayからのレスポンス生成にLambdaを使える
    • Lambdaで内部ロジックを実装し、API Gatewayで返すことが出来る
    • Websocketも使えるし、バイナリファイルも転送出来る

    View full-size slide

  12. API Gatewayのここがツライ!
    • APIの規模がどんどんデカくなってくると、GUIで一々操作するのがツライ
    • 本番環境と検証環境との「冪等性」を維持するのがツライ
    • というか無理
    • 1エンドポイント1メソッドごとにCORSの設定を全部するとか
    正気の沙汰じゃ無い
    これが1セット。これをPOST/GET/PUT/DELETEで4回。

    View full-size slide

  13. 出来る事ならAPIはコードで定義したい
    • 出来る事なら、CloudFormationやTerraformみたいなノリでJSONとか
    YAMLで定義しておきたい。
    • 出来る事なら、一撃でデプロイしたい!

    View full-size slide

  14. そこでSwagger(OpenAPI)ですよ!
    • YAML or JSON形式でRESTFul APIを記述できるフォーマット

    View full-size slide

  15. Swaggerとは
    • OpenAPIという規格に準拠した実装
    • YAML or JSONで記述する
    • AWSに限らず、Azureなど他のクラウドサービスでも採用されている

    View full-size slide

  16. Swaggerのどえらい所
    • コード化出来るので、検証環境・本番環境の冪等性を担保出来る
    • 「開発環境と本番環境で動きが違うぞ!?」というよくあるパターンを解決出来る
    • 今までWordやExcelで作ってきた「API仕様書」を自動生成してくれる

    View full-size slide

  17. Swagger Editor
    • ブラウザで動くSwaggerのエディタ
    • Dockerコンテナ版もあるよ
    • yaml上のコードエラーを一番正確にあぶり出せるツール

    View full-size slide

  18. VS Codeでも書ける
    • VSCode Extensionをインストールすると、VS Code上でもプレビューできる
    • Swagger Viewer
    • OpenAPI Editor

    View full-size slide

  19. 試し撃ちも出来る

    View full-size slide

  20. 定義書も作れる
    • さらばExcel方眼紙

    View full-size slide

  21. API Gatewayへぶち込む

    View full-size slide

  22. AWS限定の設定(Lambdaなど)も出来る
    OpenAPIの中にAWS専用の定義を入れられる。
    この場合は、コールされた後に発火するLambda関数を指定している

    View full-size slide

  23. まとめ
    • API Gatewayをサクサク扱いたいなら、Swaggerを使おう

    View full-size slide