(レポート) AWSモバイル/IoTサービス徹底攻略!! 「DevOps開発環境のLambdaによる管理」#cmdevio
森永です。
11/21(土)に目黒のAWSJにて開催された「AWSモバイル/IoTサービス徹底攻略!!〜Developers.IO Meetup番外編〜」のレポートです!
イベント概要
本勉強会は、基本的な内容のBasic Track、応用的な内容のAdvanced Track、実際に試すことの出来るHands Onの3トラックに分けてAWSのモバイルサービスや、サーバーレスアーキテクチャ、IoTのお話をするというものです。
セッション内容
ソニー株式会社 高橋 恒樹さん
(スライドは公開され次第追加)
自己紹介
クラウド&サービスアプリ開発運用部門
サービス開発や部内のセキュリティ運用管理
ソニーのサービス・製品のサーバサイド開発・運用・データ分析をいつもはやっている
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で楽にするというのは個人的にかなり興味のある部分ですので、弊社業務でもガンガン使っていこうと思います。
やるぞー!!!