238 Views
May 29, 23
スライド概要
2018/10/23(火)に開催された GCPUG Kansai Summitで、
プログラマー萬代がセッション登壇したときの発表資料です。
日本・中国・カナダを拠点に、AWS や GCP・Azure などのマルチクラウドに対応した、クラウド / サーバーの構築・移行、24時間365日の運用保守 / 監視、負荷テスト、Webシステム開発、サーバーサイド / API 開発 など、クラウド / サーバーに特化したサービスをご提供いたします。 ● コーポレートサイト https://beyondjapan.com ● YouTube https://www.youtube.com/c/beyomaruch ● X(Twitter) https://twitter.com/beyondjapaninfo ● Instagram https://www.instagram.com/beyondjapan_24365
GCPだから出来た 自動Web監視システムのインフラ構築(仮)
自己紹介 名前:萬代陽一 普段はゲームAPIとか作ったりする仕事をしています VisualStudioCodeおじさん
こういうサービスをリリースしました
どんなシステムか ウェブサイトを監視するサービス 登録カンタン
どんなシステムか ウェブサイトを監視するサービス 登録カンタン 会員登録 → URL登録 → 監視開始
どんなシステムか ウェブサイトを監視するサービス 簡単な割に色々する
どんなシステムか ウェブサイトを監視するサービス 簡単な割に色々する レスポンスタイム監視 スナップショット比較 レスポンスコード監視 HTML比較 ドメイン有効期限監視 SSL証明書有効期限監視 リンク切れ監視 マルウェア監視 ソーシャルエンジニアリング監視
GCPを選んだ理由 Cloud Datastore を使いたかった 各種監視データなど細かいデータの蓄積に最適 Cloud Storage の値段が安い 監視対象のスナップショットを撮りまくるシステムなので Cloud Pub/Sub を使ってスケーラブルな感じに いざという時は数の暴力で乗り切る Cloud Architect の勉強がてら → 無事合格!
構成図 Cloud Datastore Cloud Storage Cloud Pub/Sub Cloud Load Balancing Cloud Functions Compute Engine Cloud SQL Monitoring Error Reporting Logging
Google Compute Engine 言わずと知れたVM環境 起動が速い 仕組み上、GCE を起点としたシステムになっている
サーバーレス化できなかった 監視処理は GCE で実行 監視元の IPアドレス問題 1回の監視の実行時間が監視先によってまちまち 画面のスナップショットを撮影する仕組みが環境を選ぶ
Cloud Datastore 監視データの主な置き場所 約300サイト程度の詳細な監視データ 15分に1回の頻度(フリープラン) 1分に1回の頻度(有料プラン)
Cloud Datastore 監視データの主な置き場所
Cloud Datastore の設計で悩む日々 祖先クエリ、エンティティ、種類、インデックス……。 ソートできない → インデックスの再作成 → インデックスのエクササイズ SQL 脳なので、うまくできてるかは謎。 ただし、データはちゃんと入っているし出せているのでOKとしたい トランザクションは試せなかったので試したい
Cloud Storage ここにも監視データ スナップショットデータ HTMLデータ
Cloud Storage ここにも監視データ スナップショットデータ HTMLデータ 毎日取得 × 約60日分 サイトの縦の大きさに依存するファイルサイズ → サイズが読めない
Cloud Storage ここにも監視データ スナップショットデータ HTMLデータ 毎日取得 × 約60日分 サイトの縦の大きさに依存するファイルサイズ → サイズが読めない 自動削除ができるので運用は楽
Cloud Pub/Sub 監視処理のタスクキューを積み上げる どんどん捌く、の繰り返し
Cloud Pub/Sub 監視処理のタスクキューを積み上げる どんどん捌く、の繰り返し 特にリンク切れ監視は、監視対象のサイトからのリンク先を全て確認するので 1件ずつ個別処理できるように全件 Pub/Sub に登録している
Cloud Pub/Sub 監視処理のタスクキューを積み上げる どんどん捌く、の繰り返し 特にリンク切れ監視は、監視対象のサイトからのリンク先を全て確認するので 1件ずつ個別処理できるように全件 Pub/Sub に登録している データも一緒にPubするとSubした時に便利
Cloud Pub/Sub は便利だが 順序指定がしたくなる時もある メッセージキューが見たくなる時もある これももう少しうまく使いたい
余談:プリエンプティブインスタンスを使い倒す GCE のプリエンプティブインスタンスで監視処理ができないか 課題 起動し続けることはできない(最大24時間) 起動した瞬間に落とされることも 結論 ミッションクリティカルな処理には不向き (ドキュメントに書いてある)
まとめ Appmill というサービスを GCP 上で作りました。 よく言われてますが、データ分析をするなら、出だしから GCP にすると連携が取りやす くていいと思います。 GPC最高!
Thank you and have fun GUPUG Kansai!