(レポート) AWSモバイル/IoTサービス徹底攻略!! 「DevOps開発環境のLambdaによる管理」#cmdevio

2015.11.21

森永です。
11/21(土)に目黒のAWSJにて開催された「AWSモバイル/IoTサービス徹底攻略!!〜Developers.IO Meetup番外編〜」のレポートです!

イベント概要

本勉強会は、基本的な内容のBasic Track、応用的な内容のAdvanced Track、実際に試すことの出来るHands Onの3トラックに分けてAWSのモバイルサービスや、サーバーレスアーキテクチャ、IoTのお話をするというものです。

セッション内容

IMGP2044

ソニー株式会社 高橋 恒樹さん

(スライドは公開され次第追加)

自己紹介

クラウド&サービスアプリ開発運用部門
サービス開発や部内のセキュリティ運用管理

ソニーのサービス・製品のサーバサイド開発・運用・データ分析をいつもはやっている

DevOps環境

サービス・環境毎にAWSアカウントを作成している
チームごとに利用言語も環境もツールもバラバラ

Trusted Advisor
CloudTrail
Inspector

などAWSのサービスで大抵は対応可能
ELBの証明書管理などはまだできない

従来は

管理を手作業でやったりcron作ったり面倒
まだサーバの管理で消耗してるの?

Lambdaでやろうよ

活用事例

  • GitHubのアカウント管理
  • SSL証明書、IAMアカウント期限チェック
  • 稼働率Dashboard

開発環境はNode.js
当初Node.jsしか対応してなかった&情報量が多い

GitHubのアカウント管理

プライベートでGitHub使うことが増えてきた
社員は別業務のリポジトリも閲覧可能
社内アドレスでアカウントを利用するルール
→ルールに当てはまらなければ弾きたい

GitHub管理コマンドをつくった
ユーザの追加・削除時に正規ユーザかの確認をLambdaで実行

流れ
利用者が自分のユーザを事前登録する(S3にアップロード)
→ 登録されたユーザが正しいか事後確認する(S3の内容と突き合わせ)

Lambdaで良い点
  • サーバサイドで確認可能かつメンテナンスフリー
  • アカウント登録後は利用頻度が下がるからコストが削減できる
  • ユーザ数が増えてもスケール出来る
Lambdaで微妙な点

API GatewayにアクセスできるIPを制限できない
Cognitoで認証することでなんとかした

SSL証明書期限切れ、IAMアカウントの削除漏れ防止

IAMのAPIで証明書期限やIAMの使用状況を確認する
期限切れだったらSlackに通知する

Lambdaで良い点

週次、日次のスクリプトを超低コストで実行
スケジューリングがLambda単体で可能
コマンドを使った処理も呼び出し可能
Slack APIイイね!

Lambdaで微妙な点

パラメータを含められない
VPC内のサーバアクセスが出来ない

ELBの稼働率Dashboard

複数のアカウントのELBの稼働状況を確認出来るようにする。
各アカウントごとにデータをCloudWatchで取得し、まとめるアカウントのLambdaで取得する。
取得されたデータはDynamoDBに

データ表示はAPI Gatewayを使って、エクセルマクロで取ってきて表示
結構アクロバティック

Lambdaで良い点

インスタンスレスでメンテナンスしなくていい

まとめ

  • メンテナンス不要
    • 運用ツールの運用が不要
  • コスト削減
    • 定期実行や業務時間内のみ使うものにはバッチシ
  • スケーラブル
  • API GatewayのIP制限できるようにして欲しい
  • 各イベントのパラメータ設定不可(環境変数みたいなもの欲しい)
  • VPC内へアクセス不可

以下の様なシステムの場合は是非Lambdaのご検討を!!!

  • 定期的、短時間の処理
  • 通知系
  • 実行頻度が低い

さいごに

運用をLambdaで楽にするというのは個人的にかなり興味のある部分ですので、弊社業務でもガンガン使っていこうと思います。
やるぞー!!!