このページの本文へ

JAWS-UG中部・北陸勉強会レポート第11回

地元密着型メディアのログ取得サービスで得たLambdaの経験談

しずおかオンラインの榊原さん、VPC内のLambdaの苦労を語る

2016年10月07日 07時00分更新

文● 重森大 編集●大谷イビサ

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

しずおかオンラインは多数の情報サイトや出版物を手がけているが、いずれも地元静岡に根ざしたものばかり。そのシステム面を支えている管理・事業推進部 ITソリューション課で、榊原 継太さんは主にバックエンドシステムを担当している。現場で実際に使うログ取得サービスを構築した経験から得た知見を、JAWS-UG東海道 in 浜松の勉強会で披露してくれた。

アクセス解析用のサブネットをVPC内に作成してLambdaを使う

 今回ログ管理の対象となったサイトはEC2やRDSを使って構築されており、アクセスログは容量や日数によってfluentdを使ってJSON形式でS3にアップロード・保管されている。このログを解析し、その結果をRDSに格納するというのが、ログ管理システム構築の目的だ。基本的な考え方としては、EC2からログが書き出されるタイミングでLambdaをキックし、S3にアップロードされたログ情報を取得、解析するというもの。

 一見難しくないように思えるが、アクセスログ解析用のシステムを外部にさらすのを避けるため、VPC(Virtual Private Cloud)内で使ったことで、難易度の高い作業になった。

「アクセスログ解析用に新しくVPC内にサブネットを作り、その中にLambdaを設置しました。LambdaからはNAT Gatewayを経由してS3にアクセスする仕様にしましたが、NAT Gatewayの作成方法や設置場所で悩まされました」(榊原さん)

しずおかオンライン 榊原 継太さん

 そもそもNAT Gatewayを作成するメニューの場所がわかりづらかったと、榊原さんは語る。NAT GatewayはVPCサービスの一機能としてラインナップされているため、VPCサービスから作成や設定を行なわなければならない。やっと見つけてNAT Gatewayを作成したものの、今度は設置場所の選択を間違えてしまい、想定通りに動かなかったとのこと。

「最初はLambdaと同じサブネット内にNAT Gatewayを作成したのですが、そのNAT Gatewayからはサブネットの中しか参照できず、S3にアクセスできませんでした。外に出られる場所にNAT Gatewayを設置しなければならないとわかり、別のサブネットにNAT Gatewayを作成しなおしたところ、ようやくS3にアクセスできるようになりました」(榊原さん)

外部と通信できるサブネットにNAT Gatewayを作成する必要があった

 またこのとき、Lambdaを設置するサブネットのルーティング送信先を0.0.0.0/0に設定することも忘れないように、と榊原さんは注意を促した。

Advanced Settingsを使用してLambdaの詳細な設定を行なう

 Lambdaをサブネット内に作成するためには、Advanced Settingsを使うのだが、これも設定画面の場所がわかりづらかったようだ。デフォルトでは非表示になっており、Advanced Settingsのリンクをクリックすることで設定項目を表示させる必要がある。

「Advanced Settingsの画面で、メモリ使用量やタイムアウトなどの設定ができます。VPCやサブネットの設定も同じく画面にあるので、Lambdaを設置する場所もここで設定します。VPC内にサブネットがひとつしかないと警告が表示されますが、動作には問題ありません」(榊原さん)

サブネット内にLambdaを作成する場合はAdvanced Settingsから

 試行錯誤の末にこれらの設定を行ないながら構築したログ解析システムだがそれでも2日程度で構築できたというからLambdaの使いやすさがわかるというものだ。しかも100万件/320万秒までは無料で使えるので、現状はほぼ無料枠で収まっているという。とはいえ便利な側面ばかりでもない。榊原さんはLambdaを使う際の制約事項として、使用言語が限られることや、設定した時間を過ぎるとタイムアウトで処理が強制的に終了してしまうことを挙げている。

「Lambdaの方はほぼ無料枠で収まるのですが、NAT Gatewayの利用料が30ドルほどかかっています。現在は監視しているファンクションがひとつだけなので、もしかしたらEC2のマイクロインスタンスを使って同様のシステムを構築した方が安く運用できるかもしれません。しかし今後は監視対象を他のファンクションにも拡大していく予定なので、監視するファンクションが増えてくればLambdaとNAT Gatewayを使ったシステムの方が低コストになる見込みです」(榊原さん)

 こうした経験談を語ってくれた榊原さんは最後に、「1日か2日でこの程度のシステムを組むことができるので、調べるだけで終わらず手を動かしてみましょう」と会場の参加者に呼びかけてプレゼンテーションを終えた。

10月22日(土)、「JAWS Festa 東海道 2016」が開催!

 

10月22日、AWSのユーザーグループであるJAWS-UGが主催する大型コミュニティイベントであるJAWS Festaが今年は名古屋工業大学で開催される。今年のテーマは「クラウド・IoTの最前線、みんなで学べば怖くない!〜一緒に熱くなれる仲間を見つけよう〜」ということで、学ぶだけのセミナー形式勉強会にならない多彩な企画が用意されているという。

詳細はこちら


カテゴリートップへ

この連載の記事