Getting Started

2019/10/4

AWS Lambdaとは?

どうも、こんにちは!JellyWareです。

Getting Started!! Riiiver tutorialの第3弾となります。

このシリーズは、Riiiverやプログラミングを学び、初心者の方でもEco-Drive Riiiverを活用したオリジナルアプリを理解して作れるようになることを目指します。

第三弾では、Riiiverの仕組みをさらに説明していきたいと思います。
どうやらAmazon Web ServiceのLambdaを利用しているみたいなのですが、なんじゃらほいって感じですよね。

Lambdaも含めて解説していきたいと思いますので、コーヒー片手に肩の力を抜いて読み進めて頂ければと思います。


目次


Riiiverの仕組みを少し解明

まず先に全体像をお見せします。これらの関係性など1つずつ解説していきます。

まずは一番左の『iiidea』ですが、もう大丈夫ですよね。『iiidea』=『T』+『S』+『A』を表しています。

このようにスマートフォンなどの中だけで完結させることも可能ですが、Riiiverでは外部のサービスと連携することもできます。

外部のサービスと連携させる時に登場するのが『Riiiver Proxy Server』です。『Riiiver』が所有するサーバーで、みなさんが作成した『S Piece』を保管したり外部のサービスと繋げたりしてくれます。
(『Proxy』は『代理人』という意味で、『みんなの代理サーバー』ということなのでしょうか)

さらに、『AWS Lambda』と呼ばれるAmazon社のサービスとも連携しています。この『Lambda』を経由して、『S Piece』を実行したり外部サービスと連携することができます。

Riiiver Proxy Server

代行人のRiiiverのサーバー。
わざわざ自ら用意する必要がないのでとても便利。ここに『S Piece』をアップロードする。

AWS Lambda

Amazon社のサービスの1つ。
Riiiverにも組み込まれていて、『Riiiver Proxy Server』内の『S Piece』を実行している。

さてそれでは、AWS Lambdaも図に追加しましょう。

外部のサービスと連携する場合、基本的にこの流れとなります。『AWS Lambda』を介して、他のサービスと連携していきます。

では、その『AWS Lambda』とはどのようなサービスなのかみていきましょう。


AWS Lambda とは?

『Amazon Web Service』の1つで、世界的に有名な企業『Amazon』が提供しているサービスです。

『Amazon』といえば、オンラインショッピングサイトが一番有名かと思われますが、実はそれ以外にもクラウドサービスの提供をしていたりします。沢山の便利なサービスがあり、他にどんなサービスがあるのか調べてみるのも面白いと思います。

調べていると、そのうちの1つに、『Lambda』というサービスがあることに気づくと思います。

難しいと思いますが、まずは公式AWSの説明を見ていきましょう。

Lambda を使用すれば、実質どのようなタイプのアプリケーションやバックエンドサービスでも管理を必要とせずに実行できます。コードさえアップロードすれば、高可用性を実現しながらコードを実行およびスケーリングするために必要なことは、すべて Lambda により行われます。コードは、他の AWS サービスから自動的にトリガーされるよう設定することも、ウェブまたはモバイルアプリから直接呼び出すよう設定することもできます。

よくわからない横文字が多くて難しいと思いますので、優しく言い換えてみます。

従来であれば、アプリやサービスを構築するには『プログラミングコード(やりたいこと)』だけではなく『プログラミングコードが動く環境』や『サーバー』、さらに『サーバーの環境』が必要でした。しかし、Lambdaを利用することで後者3つが不要となりユーザーは『やりたいこと』となる『プログラミングコード』を用意するだけでよくなります。また、実行するタイミングはAWSの他のサービスとも連携することが可能で様々なことが実現できます。

図にすると次のようなイメージです。

夢のようなサービスですね!

例えば、Lambdaを使用すると次のようなサービスができるようです。

『Amazon S3』というのは、『Drop box』や『Google Drive』のストレージサービスだと思ってもらえれば大丈夫です。

ここでは、『Lambda』が『画像のリサイズ』という役割を担っていますが
例えば、『画像認識で画像が動物かどうかを判定する』などに切り替えることもできます。
(ただし、どういう役割とするかなどについては、自分で作り上げる必要があります)

『Lambda』のところがちょうど『S Piece』の役割に似ていて、『iiidea』みたいですね。

『Riiiver』もそうですが、ユーザーがブロック単位で物事を考えることができ、直感的な操作でサービスやアイデアを作成できるのはとても楽です。


『Lambda』は、単体で何か具体的なことができるわけではないですが、その他のサービスと連携することで色んなサービスやアプリを作成することがしやすいのが最大の特徴と言えます。

まとめます。

Lambdaとは

具体的に何かを作ったりするサービスではなく、他サービスと連携がしやすく、自分でプログラミングのソースコードを用意すれば自由にカスタマイズするために使用するサービスのこと。
Lambdaを利用することで、既存のサービスを拡張したり、他アプリと連携したりすることがしやすくなる。


以上が、Riiiverの全体的な仕組みとなります。
『Riiiver Proxy Server』と『Lambda』が特に難しかったと思いますが、実際に触れてみるとイメージがつきやすいと思いますので
今回で完全に理解しきれていなくても大丈夫です。

この流れさえ頭に入っていれば問題ないです。

ご覧くださいましてありがとうございました。