このページの本文へ

JAWS-UG九州勉強会レポート 第8回

マルチどころじゃないクラウドの使いわけをJAWS-UG福岡で披露

オルターブース「マイソースファクトリー」の半分はAWSでできている?

2017年06月07日 07時00分更新

文● 重森大

  • この記事をはてなブックマークに追加
  • 本文印刷

JAWS-UG福岡で司会を担当している藤崎 優さんが勤めるオルターブースでは、しばらく前に「マイソースファクトリー」というサービスをローンチしている。このサービスを開発するにあたって実際に使ったAWSの機能群について、どんなメリットがあったのか、面倒くさかったのはどの部分だったのか、開発を担当した満園 祐人さんとともに語ってくれた。

オルターブースはAzureだけじゃなくAWSもフル活用

 藤崎さんが業務執行役員COOを務めるオルターブースは、福岡市に拠点を置くクラウドインテグレーター。先行してお送りした記事でもお伝えした通り、同日に開催されたAzureのイベントにも乗り込みつつ、藤崎さんはJAWS-UG福岡で司会を行なうという、いい意味で節操のない企業だ。いい意味で。普段から.NET系の開発環境を使うことが多く「Azureの企業でしょ」と言われるようだが、実はAWSもたっぷり活用しているとのこと。その開発実態を10分(公式発表)で語ったのが、「チラ見せ! マイソースファクトリーでのAWS活用」だ。10分とはとても思えない、具体的でたっぷりな内容だった。

オルターブースの藤崎さん(写真左)と、満園さん(写真右)

バックエンドはAzure、開発環境はVisualStudio、使用言語はC#

 というわけで、小見出しだけ見ると見事なマイクロソフト陣営。どこにAWSの入り込む余地があるのかというと、実はフロントエンド側はほとんどAWSで作られているとのことだ。

「アーキテクチャとしてはAPI中心に各機能を連携させることでサービスを提供しており、Azure、AWS以外にも幅広いクラウドサービスを組み合わせて開発しました。ミドルウェアを含めOSSを多用しており、ベンダーロックのないサービス構成になっています」(藤崎さん)

マルチクラウドというにもほどがある、というくらい数多くのクラウドサービスを使っている

 システム構成を見てもっとも特徴的と感じたのが、AWS側でユーザー権限の管理を処理しており、バックエンド側のプログラムで個別に認証処理を行わなくて済む仕様になっている点だ。ユーザー登録や認証には、Amazon Cognitoを使っている。

「Cognitoで得た認証情報を元に未登録ユーザー、一般ユーザー、管理ユーザーを判別します。IAMロールに設定したそれぞれの権限に基づいて、接続先APIを変えてAPI Gatewayを通してバックエンドのAPIを呼び出しています。バックエンドのプログラムでは権限コントロールをいっさい行なっていません」(満園さん)

 認証処理を一ヵ所に集中させ、個別のプログラムを認証処理から解放するメリットについては、筆者が語るまでもないだろう。各機能プログラムは求める機能だけを考えて開発できるうえに、正規ユーザーしかアクセスしない前提で開発できるのでセキュリティ上の懸念もない。

Cognito、API Gateway、Lambdaを組み合わせて認証機能を構築

 Cognitoで認証した結構に基づいてバックエンドのAPIを呼び出す際、API Gatewayだけではなく、Lambdaも使っている。

「バックエンドのAPIを直接API Gatewayから呼び出すこともできますが、細かいアクセス制御をするのが面倒くさかったため、それらの処理をLambdaに任せ、接続先APIのURLを読みだしています」(満園さん)

フロント側に配したAWSサービス群でユーザー認証機能を完結させている

 便利なだけではなく、悩まされた部分もあったようだ。Lambdaを使ったアクセス制御に関する情報が少なく、IAMロールとLambdaを併用しているのが現状だそうだ。うまく連携して認証機能は働いているというものの、アクセス制御の一元化はセキュリティ向上にも役立つため、なんとか統一したいところ。

 また初回アクセスユーザーに対してCognitoから認証メールを送るのだが、SendGridを使ったメール送信がうまく動作しなかったとのこと。これについてはSES(Simple Email Service)を使うことで回避した。また、認証メールに書かれたURLを24時間以内にクリックしてもらえなかった場合、未認証ユーザーとして情報が残ってしまうという問題も残っている。次回同じユーザーがアクセスして来た場合、未認証なのでログインすることができず、かといってメールアドレスは登録済みなので新たにサインアップすることもできない状態になるようだ。

「これについては解決策が見つからず、現在は運用でカバーしている状況です」(藤崎さん)

 運用面では、Lambdaから吐き出されるログインをCloudWatchを使って監視しているが、エラー発生時にどのログを参考にしたらいいのか開発に携わった満園さんにしかわからない部分があるなど、視認性に課題を残しているようだ。こちらについても、ログをわかりやすくして検索性を高めるなど、工夫したいと語っていた。

「このように、マイソースファクトリーはマルチクラウドで開発されています。オルターブースはAzureだけの会社じゃないと覚えて帰ってくれるとうれしいです」(藤崎さん)

 そう語るCOOの隣で、開発担当である満園さんはこう語っていた。

「ほとんどVisualStudioで開発してデプロイできるし、開発言語にもC#とJavaScriptが使えるのが便利でしたね」(満園さん)

 うーん……。やっぱりマイクロソフト色が強いような気がしますね(笑)。ちなみに、藤崎さん自身が「10分で語る!」と言ってたけど、実際のところは司会みずから予定時間をぶっちぎって、15分もしゃべってたよ!

カテゴリートップへ

この連載の記事