サーバーレスって言葉は、どうも分かりにくい

職場の方に教えてもらい、五反田で開催のプログラミング関連のイベントに行ってきました、どうも、ボクです。

jawsdays2019.jaws-ug.jp

⇧  キャンセル待ちで、繰り上がって参加することができました。来場者数が1900人超えということで満員御礼だったそうです。

どんな内容かと言いますと、 

qiita.com

⇧  早速、まとめてくださってる方がおられるようです。

AWSの話が多かったですかね。

個人的には、株式会社ソラコムの片山 暁雄さん(愛称:ヤマン)のセッションで、「[あのボタン] SORACOM LTE-M ボタン powered by AWSの活用100連発」の話が面白かったです。

www.slideshare.net

⇧  「もつ千」は、ヤマンさんがよく行く居酒屋だそうです。 


SORACOM LTE-M Button powered by AWS

⇧  「SORACOM LTE-M Button」については、1500回押し切った後は、課金制になるそうです。「ボタン = 欲望」という名言も生まれてましたかね。「欲望という名の電車」ならぬ、「欲望という名のボタン」ですかね。

そんでは、イベントを通じて学習したことを、自分なりにまとめていきたいと思います。レッツ、トライ~。 

 

サーバーレスとは?

自分も最初はむちゃくちゃ勘違いしてたのですが、 サーバはあるんだけど、必要なときにだけ起動しますよって話らしい、「サーバーレス」って言葉から、サーバが無いって連想しちゃうでしょうにね...分かりにくいわ~。

www.sbbit.jp

d.nekoruri.jp

⇧  上記サイト様が詳しいですかね。

んで、じゃあ、サーバを起動したいんだけどってなった場合に、AWSとかだと、AWS Lambdaってやつが外部からイベントを受け取って、キックする(サーバを起動させる)ってことみたいです。

で、Lambdaには、あらかじめ、サーバで実行させたい処理をプログラミングしておくと。Lambdaによって起動されたサーバは、Lambdaでプログラミングされてた処理を実行した後は、停止されるってことみたいです。

qiita.com

⇧  上記サイト様が詳しいです。

コンテナ環境もサーバレス化、データベース環境もサーバレス化が導入されているようです。ただし、使い道は、よくよく吟味すべし!ということみたいですね。

サーバレスのイメージ図

f:id:ts0818:20190224135244p:plain

⇧  ブラウザなどから、イベント(JSONなど)が発生して、サーバに用意しておいた関数が処理され、

f:id:ts0818:20190224135511p:plain

⇧  停止していたサーバを起動し、API(何かしらのプログラミング)を実行させ、

f:id:ts0818:20190224140042p:plain

APIの実行結果を、関数が受け取り、

f:id:ts0818:20190224140329p:plain

⇧  ブラウザに結果を返却。サーバ(サーバレス)は起動停止。

ってことになるみたいです。

この「関数」にあたる部分が、各クラウドでは呼び名がまちまちではありますが、AWSでは、「AWS Lambda」、GCPだと、「Google Cloud Functions」、Azureだと「Azure Functions」ってことになるみたいですね。

必要なときにだけサーバを稼働すれば、コスト削減できるでしょう、ということみたいですね。

「関数」を配置したサーバは常に稼働している必要がありそうですが...。

 

エッジコンピューティングとは?

ブレインズテクノロジー株式会社 CPOの榎並 利晃さんのセッション「[IoT] エッジコンピューティングと機械学習の効果と考慮点」で、エッジコンピューティングと機械学習の関係とかが分かりました~、なんとなくではありますが。

異常検知の分野で、

www.brains-tech.co.jp

⇧  Impulse って製品を生み出したそうですが、エッジコンピューティングを導入することで、機械学習によるデータ処理のボトルネックを解消できたそうです。

現場ではリアルタイム性が、常に求められていると。

AWS IoT Greengrass」って技術の紹介もされてましたかね。

 

エッジコンピューティングについては、

www.sbbit.jp

⇧  上記サイト様が詳しいです。

エッジコンピューティングとは、サーバを分散配置していこうってことみたいです。そうすることで、クラウド上のサーバの帯域を圧迫するのを防ぎ、リアルタイム処理の障壁となる状況を改善していこうってことみたいです。

tagomoris.hatenablog.com

⇧  ネットワークの遅延については、上記サイト様が詳しいです。

 

www.soumu.go.jp

⇧ 2016年の情報だけども、総務省の情報通信白書の「図表2-2-3-6 エッジコンピューティングのコンセプト」が分かりやすいかと。

 

www.sbbit.jp

⇧  で、「エッジコンピューティング」には、まだまだ課題があり、一番の問題は、IoTとかでも上がる「消費電力」の問題らしいです。

組み込み系なんかのシステムでは、限られた電力で、いかに処理をこなすかが、重要であると。たしかに、「SORACOM LTE-M Button」なんかも、通信の速度は遅いらしいのですが、消費電力は低くできると仰ってましたかね。通信の速度と消費電力は、トレードオフな関係なんですかね。

そして、セキュリティの問題などもあるらしいです。

 

AWSのセキュリティ脆弱性とは?

AWSは、堅牢なセキュリティが売りですが、使用者の使い方次第で、セキュリティホールが生まれるのだと。

三井物産セキュアディレクション株式会社の洲崎 俊さん、一ノ瀬 太樹さん、株式会社ラックの北原 憲さんのセッション「[Security] PenTesterが知っている危ないAWS環境の共通点 ~攻撃者視点よりお届けする狙われやすいAWSの穴~」で紹介されてました。

www.slideshare.net

⇧  セッションの中のデモで、「pacu」っていうPythonAPIを使ってましたかね。

github.com

 ⇧  「pacu: AWS penetration testing toolkit」っていう、AWS専用のテストツールらしいです。

「Penetration Test」は、Wikipediaさんによりますと、

penetration test, colloquially known as a pen test, is an authorized simulated cyber attack on a computer system, performed to evaluate the security of the system.The test is performed to identify both weaknesses (also referred to as vulnerabilities), including the potential for unauthorized parties to gain access to the system's features and data, as well as strengths, enabling a full risk assessment to be completed.

Penetration test - Wikipedia

「攻撃者の視点」でテストを行うことらしいです。

セキュリティに特化したテストですかね。

 

「[Security] PenTesterが知っている危ないAWS環境の共通点 ~攻撃者視点よりお届けする狙われやすいAWSの穴~」でも、SSRF(Server Side Request Forgery)の話が出てくるのですが、

blog.tokumaru.org

⇧  Webセキュリティの権威である徳丸さんが、 詳しく記載してくれています。

 

という感じで、AWSについては、知らないことだらけということが分かって、勉強しなければいけないことが多すぎて、疲れたという話...いろんなことが知れて面白かったけども。

 

今回はこのへんで。