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

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

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

4cc0672dbe913b6e8aa687a81b3e02ab?s=128

Takayuki Fuwa

February 21, 2020
Tweet

Transcript

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

  2. 自己紹介 • 不破 崇行(ふわ たかゆき) / 31歳独身男性 • 所属 •

    エコモット株式会社(9:00〜18:00) / FASTIO開発チーム / 主任 • 東雲研究所(19:00〜22:00) / 代表 • コミュニティ • JAZUG札幌(きたあず) / Azureもくもく会札幌の宴会係 • SORACOM UG 札幌 / などなど • 好きなAWSサービス • CloudWatch • 趣味 • シメパフェ • Alexaいじり
  3. エコモットの概要 (お昼の仕事) • 設立 • 2007年2月19日 • 所在地 • 本社:札幌市

    • 拠点:東京 / 青森 / 仙台 / 北信越 / 東海 / 関西 / 九州 • 社員数 • 108名(2019年4月1日現在、臨時従業員を含む) • スローガン • “あなたの「見える」を、みんなの安心に”
  4. 東雲研究所 (夜の仕事) • 営業時間 • 平日19:00〜22:00 • 土曜 10:00〜22:00 •

    業務内容 • テクニカルコンサルティング • WordPressプラグイン開発 • サーバ構築・保守 • その他オーダーメイド
  5. JAWS FESTA 2019サポーター

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

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

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

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

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

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

    • API Gatewayからのレスポンス生成にLambdaを使える • Lambdaで内部ロジックを実装し、API Gatewayで返すことが出来る • Websocketも使えるし、バイナリファイルも転送出来る
  12. API Gatewayのここがツライ! • APIの規模がどんどんデカくなってくると、GUIで一々操作するのがツライ • 本番環境と検証環境との「冪等性」を維持するのがツライ • というか無理 • 1エンドポイント1メソッドごとにCORSの設定を全部するとか

    正気の沙汰じゃ無い これが1セット。これをPOST/GET/PUT/DELETEで4回。
  13. 出来る事ならAPIはコードで定義したい • 出来る事なら、CloudFormationやTerraformみたいなノリでJSONとか YAMLで定義しておきたい。 • 出来る事なら、一撃でデプロイしたい!

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

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

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

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

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

    OpenAPI Editor
  19. 試し撃ちも出来る

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

  21. API Gatewayへぶち込む

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

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