メニューを閉じる

テクノデジタルグループ

メニューを開く

2016.06.08

インフラ

AWS Summit 2016 – Lambdaの効果的な使い方の考察 –

初めまして。M・Yです。
普段の業務では、AWSを用いたインフラ設計・構築に携わっています。

タイトルの通り、AWS Summit 2016に行ってきました。お土産を載せておきます。来年こそ、事例大全集に弊社も掲載できるよう努力して参ります。

本稿では、AWS Summit 2016から感じたサーバレスアーキテクチャの中でも、注目が集まっている「Lambda」の効果的な使い方を考察していきたいと思います。
Lambdaを検討中の方へ、参考になれば幸いです。

まず、公演ごとの簡単なまとめを行います。

1.クラウドとマイクロサービスによる音声操作の新時代 - Amazon Echo & Alexa

2日目に行われた公演です。
Alexa Voice Service(AVS)の内部構成について、触れたいと思います。
AVSでは、Amazon Echo(他のデバイスでも良い)から、音声信号を受け取ります。
音声処理API、自然言語処理APIを介して、Skill(AIの部分)に入力データが渡されます。
このSkillを開発します。
Skillの処理後は、テキストを音声信号に変換するAPIを介してAmazon Echoに音声信号を返すとか、
API Gatewayを介して、スマートフォンなどのデバイスに命令を送ることができます。

音声処理API、自然言語処理API、変換APIは、EC2インスタンスにより構成されていました。
そして、Skillの部分がLambdaで構成されており、インフラを構築せずともSkillの開発が可能となっています。
Lambda Functionにパラメータを渡してやることで、機能単体で動作確認・検証も行えます。

 

2.【パネルディスカッション】サーバーレスの波はホンモノか? 最前線の開発者に聞くコードでサービスの全てを提供する方法

クラスメソッド様がまとめていますので、簡単に。
http://dev.classmethod.jp/cloud/aws/aws-summit-tokyo-2016-devcon-ha1620/
また、登壇された鈴木様があとがきを書いてくださっています。
http://suzuken.hatenablog.jp/entry/2016/06/02/184723

私のメモからピックアップすると、、、
try-errorを繰り返す必要があった。
すぐに検証できる環境が欲しかった。
Lambdaでやりたいことが明確だった。
サーバよりも人件費の方が高い。
言語は使いたいライブラリで選定した。
イベントはドライバを作成し、UTやCIを行っている。
複数サービスの組み合わせることが難しい。

システム構成では、Lambdaだけでなく、EC2インスタンスも登場していました。
というより、役割が明確であるが、検証が必要な箇所に絞ってLambdaを活用していました。
Alexa Voice Service(AVS)とLambdaの役割が似ています。

 

3.秒間数万のログをいい感じにするアーキテクチャ

スライドが公開されていますので、簡単に。
https://speakerdeck.com/kanny/miao-jian-shu-mo-falseroguwoiigan-zinisuruakitekutiya

cookpad様でも、
Kinesis StreamsからS3、Redshiftへデータを転送する処理、
ログを集計して、集計結果をDynamoDBへ格納する処理、
テストアプリ(EC2)へデータを転送する処理でLambdaを活用されています。
Kinesis Streamsと親和性が高い印象を受けました。(何でも親和性が高いかもしれませんが。)

ここでは、インスタンスの管理が不要、自動でスケールしてくれるというメリットでLambdaを採用されていました。あと、Lmabdaの役割が単純で、明確です。

 

4.タウンワークにおけるサーバレスアーキテクチャデザイン

私がまとめなくてもいい気がしますので、省略。
http://techblog.recruitjobs.net/development/aws_summit_townwork_serverless_architecture1

リアルタイム性が必要なシステムにおいて、ロジックの開発に集中できる環境がLambdaだったとお話しされていました。
また、システムの異常状態をSlackに通知したり、
スケジュール機能により、AWSの料金を毎朝Slackに通知したり、
と、Slackとの連携させ、運用面でLambdaを活用されているとのことでした。

 

まとめ

– 役割が単純で明確な場合において、Lambdaを用いれば設計・構築コストや管理コストの削減になる。

– 検証を繰り返す必要があるシステムを開発する場合、ロジック部分を切り分けてLambdaにすることによって効率的に検証・開発が行える。

– 今ままでcron+scriptでやってきた運用面のことをLambdaに任せる。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事