Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

サーバレス構成の運用・監視と自社製Data○ogもどきの話 公開用

248 views

Published on

MasterCloud #6 にて発表させて頂いた内容となります
https://mastercloud.connpass.com/event/67023/presentation/

Published in: Devices & Hardware
  • Be the first to comment

  • Be the first to like this

サーバレス構成の運用・監視と自社製Data○ogもどきの話 公開用

  1. 1. あなたの側で、あなた以上に考える。 サーバレス構成の運用・監視と 自社製Data○ogもどきの話 1
  2. 2. あなたの側で、あなた以上に考える。Agenda 1. 自己紹介/会社紹介 1. クラウド利用の過去から現在 2. サーバレスアーキテクチャの運用・開発実例 1. 重たいバッチ処理のサーバレス化 2. 秒間1,000アクセスを捌くサーバレスアーキテクチャ 3. 自社製Data○ogもどきの話 3. サーバレスアーキテクチャの運用(監視) 1. Amazon CloudWatch アラーム 2. サービス監視のLambda活用 4. まとめ 2
  3. 3. あなたの側で、あなた以上に考える。自己紹介 前職では特定業種向けのASPサービスの企画・開発・運用までを担当 数名でサーバ構築・運用・監視 / PHPプログラム開発・保守を実施 サービス提供企業数が年間100社程スケール → 負荷が増大する中でインフラ 設計・保守業務の重要性や楽しさを経験し、現在の会社では様々な角度から お客様のサーバ構築・運用業務にまつわる下記を担当しています。 - 自社システム開発、業務効率化、自動化 最近 - サーバレスアーキテクチャ含むAWSインフラ設計・構築・PoC・IoT - Infrastructure as Code請負い、開発会社様へのCI/CD環境提供 株式会社スカイアーチネットワークス 技術本部開発課 神津 崇士 (こうづ たかし) tktk19 http://kouzu.info
  4. 4. あなたの側で、あなた以上に考える。アンケート •商用サービスでコンテナ利用されている方 •商用サービスでサーバレス構成を利用されている方 •開発者の方 •インフラエンジニア・運用をお仕事にされている方 4
  5. 5. あなたの側で、あなた以上に考える。 ウェブサービスに最適な クラウドインテグレーター ↑コンサルティングから設計、開発、運用・保守・管理を一括で行う スカイアーチ実績
  6. 6. あなたの側で、あなた以上に考える。 $ alias skyarch= ‘echo “サバカン屋”’ 別名は…
  7. 7. あなたの側で、あなた以上に考える。クラウドでサービス構築 過去から現在 7 4年前 AWSをクラウド基盤として採用する企業が少しづつ出始める EC2(サーバ)のみで作成された物が大半 3年前 AWSをクラウド基盤として採用する企業が多く出始める ELB(ロードバランサ)、EC2、RDS(PaaSのDBサービス) で作成された物が大半 AWS顧客数の増加に伴いInfrastructure AS Codeを急ピッチで進める 2年前 AWSをクラウド基盤として採用する企業が90%程 S3でのイメージホスティングやAutoscale機能の活用 Elastic Beanstalk等 アプリケーションデプロイのみで インフラ自動構築・運用サービス利用が出て来る 2013 2014 2015 2016 2017 弊社お客様 - AWS利用企業数
  8. 8. あなたの側で、あなた以上に考える。ここ2年間の変化 8 1年前 IoTやBigDataをキーワードにPoCのお手伝いを行う機会を頂く APIGateway、Redshift、DynamoDB及びAPI開発案件のお引き合いを頂く SQSやElasticacheの利用事例も増える 今年 サーバレスをキーワードにした開発案件のお引き合いを多数頂き、受注→納品 弊社ではAPIGateway、Cognito、DynamoDB等々を利用したバックエンド部開発 サーバレス案件や、ECSを利用した運用にも携わることが出来ました。 → これまでAWSをサーバ中心で利用していた方々が サーバレスを実践・採用し始めている!
  9. 9. あなたの側で、あなた以上に考える。Agenda 1. 自己紹介/会社紹介 1. クラウド利用の過去から現在 2. サーバレスアーキテクチャの運用・開発実例 1. 重たいバッチ処理のサーバレス化 2. 秒間1,000アクセスを捌くサーバレスアーキテクチャ 3. 自社製Data○ogもどきの話 3. サーバレスアーキテクチャの運用(監視) 1. Amazon CloudWatch アラーム 2. サービス監視のLambda活用 4. まとめ 9
  10. 10. あなたの側で、あなた以上に考える。重たいバッチ処理 10 目的 : 超短納期である程度スケーラブルで安価な長時間バッチ実行環境構築 Webサーバ (CMS) バッチサーバ バッチ処理が予想以上に重たい! m4.4xlarge インスタンスで2種類のJob 2分程の物と、2時間程掛かる物 • バッチの並列実行を行いたい • 変換処理は即時実行させたい • バッチサーバはなるべく電源入れずコスト抑 えたい • バッチサーバでジョブキュー実装が難しい • 諸々事情があり1週間でなんとかしたい 当初構成 両方共常時稼働
  11. 11. あなたの側で、あなた以上に考える。1日目 ~ 6日目まで 11 AMIから生成 バッチ処理データ スクリプト AWS Data Pipeline 実際のインスタンス生成→バッチ→終了までOK DataPipelineで行けそう! Data PipelineのGUI難しい! ShellCommandActivity? このリソースへこの設定値もたせられ る? → 出来ない! 複数パラメータ渡しどう実装する? → 出来た! 等々有りましたがなんとか S3バケット上のスクリプトを指定して AMIから生成したサーバ上で動作す るように Web/APサーババッチサーバ
  12. 12. あなたの側で、あなた以上に考える。7日目 12 終わりが見えた途端幻になってしまう痛恨のミス Web service limit exceeded: Exceeded number of concurrent executions. 連結テストを行い、ジョブを連続で呼んだ所 Data Pipelineの On Demand 実行 (API経由での即時呼び出し) の並列動作に失敗 スケジュール実行であれば可能な模様だが今回の要求に合致せず ※本来の利用用途に合致すればコードレスで色々実行出来る便利なサービスです
  13. 13. あなたの側で、あなた以上に考える。8日目 延長戦 13 ① バッチサーバ生成 Userdata にてパラメータ 等引き渡し ② 最新のバッチをS3より取得 Inputデータ取得 ③ バッチ実行 ④ S3へ結果・ログをアップロード ⑤ 自身をTerminate バッチ処理データ スクリプト Web/APサーバ バッチサーバ AWS Lambda Instance disposer instance_id job_id Instance_status job_status i-0ebf9373931c69312 20171030 Terminated Finished i-0ebf9373931c69312 20171031 Running Running AWS CLI 最高!! 定期実行Lambdaで バッチ終了済み or 長時間残留サーバの削除
  14. 14. あなたの側で、あなた以上に考える。 サーバレス化実施にあたり 注意点 開発にあたり 1. 使い所がフィットするか確認を慎重に(スケジュール・進め方) 2. 実際に試してみないと制約等分からない事が多い → PoCフェイズを挟む 普段からサーバレスアーキテクチャの最新情報を追っておく事で コードレスで行けるようなサービスを利用して行けるように 14
  15. 15. あなたの側で、あなた以上に考える。Agenda 1. 自己紹介/会社紹介 1. クラウド利用の過去から現在 2. サーバレスアーキテクチャの運用・開発実例 1. 重たいバッチ処理のサーバレス化 2. 秒間1,000アクセスを捌くサーバレスアーキテクチャ 3. 自社製Data○ogもどきの話 3. サーバレスアーキテクチャの運用(監視) 1. Amazon CloudWatch アラーム 2. サービス監視のLambda活用 4. まとめ 15
  16. 16. あなたの側で、あなた以上に考える。 16 サーバレスアーキテクチャ例 最大で1,000リクエスト/秒が予想される 一方で普段のリクエスト数は少ない リクエスト受け後の処理の遅延はある程度許容 安く済ませたい API Gateway リクエスト送信元 → 後続をどのように作るか
  17. 17. あなたの側で、あなた以上に考える。 17 サーバレスアーキテクチャ例 Lambda1API Gateway SQS Lambda2 DynamoDB リクエスト送信元 リクエストをキューイング する事で疎結合を保ち時間差で捌く! 後続処理
  18. 18. あなたの側で、あなた以上に考える。Agenda 1. 自己紹介/会社紹介 1. クラウド利用の過去から現在 2. サーバレスアーキテクチャの運用・開発実例 1. 重たいバッチ処理のサーバレス化 2. 秒間1,000アクセスを捌くサーバレスアーキテクチャ 3. 自社製Data○ogもどきの話 3. サーバレスアーキテクチャの運用(監視) 1. Amazon CloudWatch アラーム 2. サービス監視のLambda活用 4. まとめ 18
  19. 19. あなたの側で、あなた以上に考える。サーバ状態取得システム改善 実施の背景 提案型のシステム・サーバ運用を加速する
  20. 20. あなたの側で、あなた以上に考える。 サーバ情報/1h パッケージバージョン プロセス情報 etc… 旧サーバ状態 取得・確認ツール ︙ 1,000台以上 データ取り込み時間が伸び 取得頻度・情報を増やすのは もう限界… メール取り込み時間の増大 DB検索クエリの実行時間長 脆弱性対象確認 クラッキング等検知 過去プロセス確認 目的 : 増え続けるデータを取りこぼしなく利用するための基盤構築
  21. 21. あなたの側で、あなた以上に考える。新サーバ状態 取得・確認ツール ︙ 1,000台以上 サーバ情報/10min パッケージバージョン(詳細) プロセス情報(詳細) 通信状況 サーバ構成情報/1day etc… これまでの10倍以上の情報処理 スケーラブルで信頼性が高いシステムをスモールスタート ②見える化③機械学習→提案 将来的に実施したい! 2014年度から 全台Chefによるサーバ構築 提案型のシステム・サーバ運用を加速するために、鮮度の高い情報取得→提案自動化(したい!) Amazon DynamoDB Amazon Redshift AWS Lambda Data Pipeline BIツール Amazon Machine Learning ①データ蓄積 Amazon S3 暗号化してPOST 監視/モニタリングは Zabbixで実施
  22. 22. あなたの側で、あなた以上に考える。新サーバ状態 取得・確認ツール
  23. 23. あなたの側で、あなた以上に考える。新サーバ状態 取得・確認ツール あ!サーバ再起動後にMySQLが起動していない!
  24. 24. あなたの側で、あなた以上に考える。BIツール画面
  25. 25. あなたの側で、あなた以上に考える。Agenda 1. 自己紹介/会社紹介 1. クラウド利用の過去から現在 2. サーバレスアーキテクチャの運用・開発実例 1. 重たいバッチ処理のサーバレス化 2. 秒間1,000アクセスを捌くサーバレスアーキテクチャ 3. 自社製Data○ogもどきの話 3. サーバレスアーキテクチャの運用(監視) 1. Amazon CloudWatch アラーム 2. サービス監視のLambda活用 4. まとめ 25
  26. 26. あなたの側で、あなた以上に考える。運用で確認しておくとても重要な部分 26
  27. 27. あなたの側で、あなた以上に考える。運用で確認しておくとても重要な部分 27 ログ詳細
  28. 28. あなたの側で、あなた以上に考える。Cloudwatch Alarm運用について 28
  29. 29. あなたの側で、あなた以上に考える。Amazon CloudWatchアラームからのメール 29 Cloudwatch alarmにて発報されたメール
  30. 30. あなたの側で、あなた以上に考える。Amazon CloudWatchアラーム 30 CloudWatch Slack Alarm SNS Lambda こんな構成で1プロジェクト専属 であれば問題ありませんが
  31. 31. あなたの側で、あなた以上に考える。Amazon CloudWatchアラーム 31 AWS AccountID等の条件で 振り分け IFTTT的なサービスで受信したメールを対応者が分かりやすい物に 整形してから送信
  32. 32. あなたの側で、あなた以上に考える。Amazon CloudWatchアラーム 32 対応者が安心してアラート対応開始
  33. 33. あなたの側で、あなた以上に考える。Agenda 1. 自己紹介/会社紹介 1. クラウド利用の過去から現在 2. サーバレスアーキテクチャの運用・開発実例 1. 重たいバッチ処理のサーバレス化 2. 秒間1,000アクセスを捌くサーバレスアーキテクチャ 3. 自社製Data○ogもどきの話 3. サーバレスアーキテクチャの運用(監視) 1. Amazon CloudWatch アラーム 2. サービス監視のLambda活用 4. まとめ 33
  34. 34. あなたの側で、あなた以上に考える。サーバレス環境の監視 サーバレスの場合 34 サーバレスの場合のサービス監視例 AWS Lambda Amazon DynamoDB AWS Lambda Amazon API Gateway 監視用 APIリクエストの 定期実行 AWS Lambda 処理の中心部分 Amazon CloudWatch スカイアーチ 過去データ蓄積 Zabbix Sender 後続処理 ログ Lambda失敗回数 4XX/5XX回数 実行時間 等々 チェックポイント① 監視用APIリクエストが 到達したか AWS Step Functions OR AWS Lambda サービス監視も サーバレスで実施
  35. 35. あなたの側で、あなた以上に考える。サーバレス環境の監視 サーバレスの場合 実例 (簡略図) 35 Lambda S3 AWS WAF Amazon API Gateway Amazon CloudFront WAF機能(IPアドレス制限) を利用するためCloudFrontを利用 定期実行Lambdaにて サンプルリクエストを実施しレスポンを確認(サービス監視) Lambda Amazon CloudWatchalarm Amazon SNS ・・・ リクエスト
  36. 36. あなたの側で、あなた以上に考える。サーバレス環境の監視 サーバレスの場合 実例 36 リクエスト結果が正常な場合 返却値として 1が返る
  37. 37. あなたの側で、あなた以上に考える。Agenda 1. 自己紹介/会社紹介 1. クラウド利用の過去から現在 2. サーバレスアーキテクチャの運用・開発実例 1. 重たいバッチ処理のサーバレス化 2. 秒間1,000アクセスを捌くサーバレスアーキテクチャ 3. 自社製Data○ogもどきの話 3. サーバレスアーキテクチャの運用(監視) 1. Amazon CloudWatch アラーム 2. サービス監視のLambda活用 4. まとめ 37
  38. 38. あなたの側で、あなた以上に考える。 サーバレス化実施にあたり まとめ 運用にあたり 1. サービスを運用できる・易いやすい体制を整える 2. サービス監視、状態把握のための可視化 アラートが上がった・問題が起きてしまったがどこで何が起きているのか分から ない → 切り分けを行い状況判断が行えるように、可視化し改善を行えるように 3. アラートが上がった時の対処法を考慮しておく事 38
  39. 39. あなたの側で、あなた以上に考える。 サーバレス化実施にあたり まとめ 落とし穴 1. 基本的に一度動き出したサーバレスシステムへの手出しは難しい → CI/CD等無停止デプロイ等を考慮しておく必要があるか検討 2. 高負荷時の動作確認をしておく事 ロードテストを必ず実施し、想定通り適切にスケールするかを確認 設定・Limit次第でLambda利用 = スケールできない事も (stream処理等) 3. DynamoDB絡みの案件は設計が命+キャパシティ管理がとても重要 万能に見えるDynamoDBですが、癖が多いです 39
  40. 40. ご清聴ありがとうございました。

×