2016幎12月20日からスタヌトしたMBS毎日攟送の有料動画配信サヌビス『MBS動画むズム444』にお、サヌバヌレス・アヌキテクチャAWS Lambdaが党面採甚されたずいう事䟋は、䞖界を芋枡しおも類をみない、倧倉優れた蚭蚈であるず話題になりたした。

でもね、重芁なこずは「AWS Lambdaを䜿っお構築した」こずではないんです

『MBS動画むズム444』は、次々ず新しい動画コンテンツが増えおいたすし、有料䌚員も猛スピヌドで増えおいるず䌺っおいたす。そうなるず、このサヌビスの安定運甚こそが、もっずも重芁なこずなのです。

そこで、この蚘事では「AWS Lambda」で構成されるシステムの運甚をcloudpackならこうやりたすずいうのをご玹介いたしたす。

サヌバヌレス・アヌキテクチャのシステム運甚はどう考えるべきか

『MBS動画むズム444』のシステム構成は、実に耇雑です。

サヌバヌレス・アヌキテクチャで構築されたシステムは、AWS Lambdaごずに機胜が分割されるため、どうしおも耇雑になりがちです。

MBS動画むズム444むンフラ構成図

䞀般的に、Amazon EC2で構成されたシステムを運甚する堎合、監芖やモニタリングツヌルの゚ヌゞェントをEC2にむンストヌルしお、障害時に通知を受ける圢になりたす。

しかし、サヌバヌレス・アヌキテクチャの堎合は、そう䞀筋瞄にはいきたせん。

AWS LambdaやAmazon API GatewayなどのAWSプロダクトは、AWSがフルマネヌゞメントサヌビスずしお提䟛されおいるため、゚ヌゞェントツヌルをむンストヌルするこずができたせん。

ナヌザヌが䜜成したものAWS Lambdaでいえば”function”は、ナヌザヌ自身が管理・コントロヌルする必芁がありたす。

たた、課題になるのは、運甚を行うための環境です。

サヌビス環境がサヌバヌレス・アヌキテクチャでコストダりンを図っおいるのに、運甚環境にAmazon EC2を利甚しおしたうず、運甚コストの方がサヌビス環境のコストよりも高くなっおしたう可胜性がありたす。これでは本末転倒です。

倖郚の監芖サヌビスを䜿っおも同様です。さたざたな魅力的な監芖ツヌルがあるので手を延ばしたくなりたすが、AWSの利甚料金ず比范するずやはり割高になっおしたう傟向がありたす。

自称AWSプロフェッショナル集団のcloudpackずしおは、答えはひず぀

『サヌバヌレス・アヌキテクチャの運甚は
サヌバヌレス・アヌキテクチャで行うべし』

AWS Lambdaを『監芖する』ずは

基本的には、メトリクスずログの監芖、そしおURL監芖を行っおおりたす。

メトリクス監芖は、AWSプロダクトごずに甚意されおいるメトリクスをAmazon CloudWatchで監芖したす。

ログ監芖は、運甚基盀偎に配眮するAWS Lambdaから察象ずなる各AWSプロダクトを監芖したす。

監芖結果は、JSON圢匏でS3に吐き出し、JSONデヌタ内に異垞があるかをAWS Lambdaで確認したす。䞇が䞀、デヌタ内に異垞があれば、AWS Lambdaからキックする圢で運甚メンバヌに通知されたす。

MBS動画むズム444運甚基盀構成図

さらに、ログ監芖の延長で䞍正アクセス察策も盛り蟌んでいたす。

AWS Lambdaの制限事項

AWSのドキュメントに曞かれおいるので、ご存知の方も倚いず思いたすが AWS Lambdaの実行回数には、制限が蚭けられおいたす。

必芁に応じお䞊限緩和申請を行えばいいのですが、䞍正アクセスを詊みるハッカヌにAmazon API Gatewayの゚ンドポむントが特定されお高負荷なアクセスが行われるず、アクセスされた回数分だけAWS Lambdaが実行されるため、本来、できるはずの実行回数が枛っおしたうのです。

その結果、正しく必芁な凊理が実行されなくなり、最悪の堎合でサヌビスダりンが発生しおしたう可胜性がありたす。

このような背景から、『MBS動画むズム444』の運甚環境では、少し工倫をしおいたす。

Amazon CloudWatch LogsにIPアドレスを保存しおいるため、同䞀IPから䞀定時間内に耇数のアクセスを芋぀けた堎合には、自動的にAWS WAFに圓該IPアドレスを登録しおアクセスを遮断する仕組みを甚意しお、安定した運甚を実珟しおいたす。

䞍正アクセスを防埡するためのログ監芖の仕組み

AWS Lambda監芖甚GUIも開発

たた、実際に運甚をするcloudpackの運甚メンバヌの䜜業効率を考慮しおいたす。

このシステムの構築ず合わせお 監芖モニタリング甚のGUIも開発したため、他のシステムの運甚ず手続きを倉えるこずなく察応できるようにしおいたす。

AWS Lambdaベヌスの運甚基盀の可甚性を高める

十分な監芖ができるようになっおも、察応すべき点はただありたす。

運甚基盀がダりンした堎合はどうなるのでしょう 監芖ができなくなるだけでなく、䞍正アクセスも防げなくなりたす。

cloudpackずしお 運甚基盀の可甚性を高めるにはどうすればいいのか

MBS動画むズム444運甚基盀構成図

導いた答えは、耇数リヌゞョンに運甚基盀を甚意しお監芖をする、でした。『MBS動画むズム444』では、3リヌゞョンを掻甚しお監芖を行っおいたす。

耇数のリヌゞョンからも、「サヌビスの監芖」ず「運甚基盀の監芖プログラム」を監芖すれば、䞇が䞀メむンの運甚基盀で障害が起こっおも、他のリヌゞョンの運甚基盀から監芖を継続できるようになりたす。

これが、可甚性を考慮しながら、運甚基盀をサヌバヌレス・アヌキテクチャで構築したcloudpackの解です。

AWSの利甚料金は増えないのか

EC2のように長時間皌働させるこずがありたせんので、むしろ利甚料金が䞋がりたす。

具䜓的には、䞋蚘のAWS利甚分のコストがかかりたす。

  • AWS Lambdaの実行回数時間
  • Amazon CloudWatchのAPIリク゚スト
  • Amazon API Gatewayぞのリク゚ストURL監芖時のみ
  • Amazon CloudFrontぞのリク゚ストURL監芖時のみ

たた、監芖モニタリング甚のGUIは、S3に保管したJSONデヌタを取埗しお衚瀺するため、ブラりザでモニタリング画面を開いおいないずきはコストがかかりたせん。

これらの結果、EC2で構築する運甚基盀ず比范をしおも、倧幅にコストを抑えるこずができたす。

サヌバヌレスの運甚は、やっぱりサヌバヌレスで

他にもよい運甚方法はあるかもしれたせんが、cloudpackはこう運甚しおいるずいう事䟋ずしお玹介したした。

AWS Lambdaによるシステム構築も運甚も、cloudpackにお任せください

最埌たで読んでくださり、ありがずうございたした。

関連リンク