1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Amazon API Gateway - create API

Last updated at Posted at 2016-10-14

GYAOのtsです。
我々のチームは、オールパブリッククラウドで、Microservice Architectureを採用した次期バックエンドを設計中です。

#必要性
よく言われることだが、コードは書いた分だけバグの可能性が上がるので、極力実績のあるOSS、数多のクラウドベンダーによって提供されるIaaS、PaaS、SaaSを使用して自前のコーディングを最小限にとどめたい。また、車輪の再発明もしたくない。その方針で設計、プロトタイピングをしているが、
今のところ、MicroserviceをRESTまたは、メッセージングで繋いでいく方向で検討中。

拡張性、メンテナンス性やモバイルやアプリ(MBaaS)のこと等も考えると、どうしてもGatewayが必要になってくると思う。
認証を一手に引き受けてくれるところも嬉しい。
以前のプロジェクト(よくある ちゃぶ台返しをくらって実現できなかったが)では

あたりをGKEで展開すればと考えていたが
Amazon API Gatewayを使ったことがなかったので、チーム全員で使ってみながら考えてみた。

とりあえず使ってみる

とりあえずブリッジ的なAPIを作ってみる。
色々確認、モニタリングしながら使ってみたいので、ブリッジ先はmockbin
モックAPIをGUIで作成して、モニタリングできる。
以前、ブリッジwebサービスを作ったときに使いました。
久々に使ったけどこれ便利だなぁ。

create API

Screenshot 2016-10-10 at 18.15.52.png
こちらの Amazon API Gatewayから

Screenshot 2016-10-11 at 00.24.07.png
リソース、メソッドの作成。

Screenshot 2016-10-11 at 00.25.28.png
なかなか直感的。この図だけで説明がいらない。
直感的かどうかは、個人的にかなり重要視するポイントです。

Screenshot 2016-10-11 at 00.26.30.png
「メソッドリクエスト」のパラメータセクション。
とりあえずfooというパラメータを定義してみる。
(キャッシュや、パラメータをバインドする必要があるときに使います。)

Screenshot 2016-10-11 at 00.28.23.png
「統合リクエスト」のパラメータセクション。
上で定義したfooが定義されているので、それをbarに変えてみる。

Gatewayにfoo=abcでリクエストすると、mockbinにはbar=abcでリクエストされる。

Screenshot 2016-10-11 at 00.28.39.png

Screenshot 2016-10-11 at 00.28.59.png
あとはDeployのみ。以上。

#所感
直感的で、使いやすい。
ただし、認証がかなり直感的ではない。幾つかあり、我々はIAM( Identity and Access Management )認証を使っていくのだが、、、、後々書きます。
認証部分はメンテナンスしていく上でわりと使用頻度が高いので、より直感的に簡単にしたい。(もちろん強固に)

もっと直感的なGatewayないかなと思っていたところ、Googleの営業の方より、Apigeeを教えてもらう。
これぞ求めていたものかも。。。
いじっているので、感想は後ほどシェアします。
シェアはこちらです。
それでは。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?