Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
エンジニアと気軽に繋がれるプラットフォーム「ハッカー飯」で行った セキュリティ・モニタ...
Search
NobuakiKikuchi
May 10, 2022
Technology
0
830
エンジニアと気軽に繋がれるプラットフォーム「ハッカー飯」で行った セキュリティ・モニタリングに関する取り組みについて
スタートアップ事例祭り 〜監視・モニタリング・セキュリティ編〜
https://aws-startup-community.connpass.com/event/241721/
NobuakiKikuchi
May 10, 2022
Tweet
Share
More Decks by NobuakiKikuchi
See All by NobuakiKikuchi
ハッカー飯に New Relic を導入して実践した3つのこと
nobuakikikuchi
0
720
失敗を経験したあなたへ〜建設的なインシデントの振り返りを行うために実践するべきこと〜
nobuakikikuchi
0
700
約1万台のサーバー運用を行うMSPの舞台裏
nobuakikikuchi
0
490
Dockerをざっくり知る
nobuakikikuchi
0
720
Other Decks in Technology
See All in Technology
ISUCON、今年も参加してみた / ISUCON, I challenged it again this year.
dero1to
0
110
[JAWS-UG新潟#20] re:Invent2024 -CloudOperationsアップデートについて-
shintaro_fukatsu
0
130
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
200
10年もののバグを退治した話
n_seki
0
110
ネットワーク可視化の世界
likr
7
5.1k
React Routerで実現する型安全なSPAルーティング
sansantech
PRO
2
340
「完全に理解したTalk」完全に理解した
segavvy
1
210
Qiita埋め込み用スライド
naoki_0531
0
5.4k
20241218_マルチアカウント環境におけるIAM_Access_Analyzerによる権限管理.pdf
nrinetcom
PRO
3
120
スケールし続ける事業とサービスを支える組織とアーキテクチャの生き残り戦略 / The survival strategy for Money Forward’s engineering.
moneyforward
0
120
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
200
メンタル面でもつよつよエンジニアになる/登壇資料(井田 献一朗)
hacobu
0
150
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Code Review Best Practice
trishagee
65
17k
Designing for humans not robots
tammielis
250
25k
BBQ
matthewcrist
85
9.4k
Documentation Writing (for coders)
carmenintech
67
4.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
A Tale of Four Properties
chriscoyier
157
23k
Adopting Sorbet at Scale
ufuk
74
9.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Transcript
エンジニアと気軽に繋がれるプラットフォーム「ハッカー飯」で行った セキュリティ・モニタリングに関する取り組みについて 菊池 宣明
自己紹介 菊池 宣明 • 主に SRE 関係の仕事を担当 • 今年からハッカー飯の開発メンバーとしてジョイン 経歴
• 科学系の大学院を卒業→ CIer(新卒) → 独立 • エンジニア5年生 趣味 • ゲーム(スマブラ、Fortnite) 好きな AWS サービス • AWS サポート @kikulabo
ハッカー飯とは? 技術や知識でアイデアを形にする人々(=ハッカー)が、 ご飯を囲むような気軽さで、語り合い、教え合い、繋がれるオンラインプラットフォーム
• 会社概要 ◦ 会社名: 株式会社スタークロス ◦ 代表取締役: 西田宗太郎 • ハッカー飯の特徴
◦ 話したいことをもとにエンジニアと1 on 1マッチング ◦ 複数人とエンジニアと簡易的なイベントを行う、食事会 ◦ 興味のあることをもとに集まるコミュニティ機能 • サービス開発の背景 ◦ アイデアを形にするエンジニアが周りにいない ◦ 他の企業に勤めてるエンジニアの生の声が知りたい ◦ 技術雑談をして新しい発見をしたい などなど、エンジニアと気軽に話せる環境が周りにあまりないといった課題を解決するため ハッカー飯とは?
ハッカー飯の特徴
ハッカー飯の特徴
ハッカー飯の特徴
ハッカー飯の特徴
ハッカー飯の特徴
ハッカー飯の運営・開発について • 運営に関して ◦ メンバー全員それぞれ本業がある中、副業でハッカー飯に携わっている • 開発スタイル ◦ 毎週土曜日に Discord
のボイスチャンネルに入室し各々開発を進めていく ◦ 1時間開発して10分間休憩(スマブラ)をするというサイクルで行っている ◦ 夜に定例を行いそれぞれのタスクの確認や今後の方針について話し合う • 収益化に関して ◦ 現状収益化がまだ出来ていないのでコストを抑えた構成となっている ◦ 今後法人版のハッカー飯を作り、企業の中のエンジニアと気軽に繋がれるようなシステムを構築する予定
本日お話しする内容 • セキュリティ ◦ Lightsail を EC2 へ移行した話 ◦ IAM
ユーザの管理 • モニタリング ◦ New Relic 導入の話
本日お話しする内容 • セキュリティ ◦ Lightsail を EC2 へ移行した話 ◦ IAM
ユーザの管理 • モニタリング ◦ New Relic 導入の話
ハッカー飯のインフラ構成の概要(初期)
ハッカー飯のインフラ構成の概要(初期)
Lightsail とは? https://aws.amazon.com/jp/lightsail/
Lightsail の選定した3つの理由 • 理由①: コスト管理を行いやすいから ◦ 定額で使用できるため予算を立てやすい ◦ $3.5 のプランを使用すると
EC2 の一番安いインスタンスタイプを選択して1ヶ月稼働した金額よりも安くなる
• 理由②: 環境の構築を簡単に素早く出来るから ◦ 数クリックで環境を構築できるのは当時の開発メンバーにとって都合が良かった Lightsail の選定した3つの理由
Lightsail の選定した3つの理由 • 理由③: EC2 への移行も可能 ◦ Lightsail 上で取得したスナップショットを簡単に EC2
へエクスポートを行える
Lightsail を使っていて困ったこと • Lightsail に IAM ロールを使用できない ◦ EC2 のように必要な権限を付与した
IAM ロールを作成してアタッチするといったことが出来ない ◦ IAM ユーザを作成しアクセスキーをインスタンス内部に格納する必要がある • スケールアップが簡単に出来ない ◦ EC2 のようにインスタンスを停止しスケールアップして起動という操作が Lightsail では行えない ▪ Lightsail の場合スケールアップするにはスナップショットから作り直す必要がある ◦ 今後サービスが広く認知されアクセス数が増えた際に困りそう
Lightsail から EC2 へ移行 • アクセスキー/シークレットキーがハードコーディングされており誰でも見れる状態になっていた • 今後開発メンバーが増えてきた際にセキュリティ上リスクなると判断し、 IAM ロールを使用できる
EC2 へ移行 ◦ 移行の流れ 1. Lightsail を EC2 へエクスポート 2. 適切な権限に絞った IAM ロールを EC2 にアタッチ 3. 使用していたアクセスキーを無効化しテストを実施 4. 問題ないことを確認出来次第アクセスキーを削除
IAM ユーザの管理 • AWS コンソールへのログイン等がこれまで Root ユーザで行われていた • アクセスキーの使用を無くしたタイミングで IAM
ユーザ管理の見直しを実施 • ハッカー飯では簡単にセットアップできてユーザ管理を効率化出来る AWS Single Sign-On を採用
• AWS SSO を使用することでユーザー/グループの管理および認証を行える ◦ ポータルサイトにログイン後、所属しているグループに付与されている権限のみ使用を制限を出来る AWS Single Sign-On(SSO) について
本日お話しする内容 • セキュリティ ◦ Lightsail を EC2 へ移行した話 ◦ IAM
ユーザの管理 • モニタリング ◦ New Relic 導入の話
監視導入の背景 ① ② ③ ④ .NET 5 から .NET 6
へ バージョンを上げるぞ! ハッカー飯運営
監視導入の背景 ① ② ③ ④ .NET 5 から .NET 6
へ バージョンを上げるぞ! ハッカー飯運営 インフラ側の必要な作業を行わずに作業を終了
監視導入の背景 ① ② ③ ④ .NET 5 から .NET 6
へ バージョンを上げるぞ! ハッカー飯にログイン出来ない人が発生 ハッカー飯運営 インフラ側の必要な作業を行わずに作業を終了
ユーザが連絡することで運営側が障害を認知 監視導入の背景 ① ② ③ ④ .NET 5 から .NET
6 へ バージョンを上げるぞ! インフラ側の必要な作業を行わずに作業を終了 ハッカー飯にログイン出来ない人が発生 ハッカー飯運営
• 反省点 ◦ 必要な操作が本番環境で実施されていなかった ▪ 改善点: 手順のレビュー制度の導入や Ansible 化を実施 ◦
ハッカー飯が正常稼働しているかどうかをそもそも運営サイドが認知できていない ▪ 改善点: モニタリングツールの導入 • よりユーザ体験を向上させるためにモニタリングツールの導入を優先的に実施 障害内容の振り返り
• CloudWatch と SaaS 製のモニタリングツール ◦ どちらも出来ることは大方一緒(のはず)で、得意分野がそれぞれ異なる。 ◦ CloudWatch ▪
AWS リソースを手早くモニタリングすることが出来る ◦ SaaS 監視ツール ▪ マルチアカウント/クラウドの管理が得意 • 将来的にマルチアカウント/クラウド化しても大丈夫なようにハッカー飯では SaaS 監視ツールを採用 モニタリングツールの選定
New Relic について • ハッカー飯では New Relic という SaaS 製の監視ツールを導入
◦ 選定理由: 1ユーザであれば全ての機能を期間制限なく無料利用枠で使用できるため ▪ ※月間100GBまでのデータ容量であれば無料(他にも制限は存在します) • New Relic の主な機能 ◦ Telemetry Data Platform ▪ テレメトリデータを収集・格納する場所。チャートやダッシュボードを作成することも出来る。 ◦ Full Stack Observability ▪ 収集したテレメトリーデータを分析・可視化することが出来る機能。 ◦ Alert and Applied Intelligence ▪ 閾値ベースのアラート設定や、異常値の検出やインシデントの予測等を行う機能。
• ハッカー飯では New Relic という SaaS 製の監視ツールを導入 ◦ 選定理由: 1ユーザであれば全ての機能を期間制限なく無料利用枠で使用できるため
▪ ※月間100GBまでのデータ容量であれば無料 • New Relic の主な機能 ◦ Telemetry Data Platform ▪ テレメトリデータを収集・格納する場所。チャートやダッシュボードを作成することも出来る。 ◦ Full Stack Observability ▪ 収集したテレメトリーデータを分析・可視化することが出来る機能。 ◦ Alert and Applied Intelligence ▪ 閾値ベースのアラート設定や、異常値の検出やインシデントの予測等を行う機能。 New Relic について メトリクス、イベント※、ログ、トレースのことを指す ※New Relic Agent が送信するデータ
Telemetry Data Platform について • Agent をインストールすることでテレメトリーデータを Telemetry Data Platform
に送信することが出来る • テレメトリーデータを基にダッシュボードを作成することも可能
• New Relic APM ◦ アプリケーションのパフォーマンスの計測を行える機能 Full Stack Observability について
Webリクエストの処理に費やす平均時間
Full Stack Observability について • New Relic APM ◦ アプリケーションのパフォーマンスの計測を行える機能
1分間に処理するリクエストの数
Full Stack Observability について • New Relic APM ◦ アプリケーションのパフォーマンスの計測を行える機能
• Apdex Score について補足 ◦ ユーザ満足度を定量的に表したもの ◦ レスポンスタイムの閾値を T とした時、リクエストを以下の3つのレベルに分類
▪ <満足> レベルのリクエスト: レスポンスタイム ≦ T ▪ <許容可能> レベルのリクエスト: T < レスポンスタイム ≦ 4T ▪ <不満足> レベルのリクエスト: 4T < レスポンスタイム ◦ リクエストを分類後、下記の計算式を用いて Apdex Score を算出 ▪ 0~1 の値を取り、0が最悪のスコア、1が最高のスコアとなる Full Stack Observability について
Full Stack Observability について • New Relic Infrastructure ◦ CPU、メモリ、ディスク
IO やネットワークトラフィックを観測することも出来る
Full Stack Observability について • New Relic Synthetics ◦ システムに対して外部から稼働状況を確認する機能(外形監視)
Alert and Applied Intelligence について • New Relic Alert ◦
アラートの設定および通知先(Email、Slack、PagerDuty 等)を設定する機能
New Relic 使って実践していること • ユーザに影響が出そうなものをアラートとして設定 ◦ 外型監視、エラー発生率、レスポンスタイム等 • 1週間に一度メトリクス全体を一通り確認 ◦
アラートが発生していなくとも異常が発生していないかを確認するため ▪ 確認ポイント • エラーが起きていないか • レスポンスタイムに異常が起きていないか • インフラのリソース使用状況に問題が起きていないか ◦ 定期的にメトリクスを確認することで上記のような異常がアラートして検知される前に出来るだけ対処する
• セキュリティ ◦ Lightsail を EC2 へ移行した話 ▪ アクセスキーを廃止し IAM
ロールに置き換えることでキーが漏洩する可能性を最小限にした ◦ IAM ユーザの管理 ▪ Root ユーザでの運用をやめ、AWS SSO を使用したユーザ管理を行うようにした • モニタリング ◦ New Relic 導入の話 ▪ サービスが正常稼働していることを運営メンバーが把握できるようにアラートを設定 ▪ 定期的なパフォーマンスの観測会を行うことでユーザ体験の向上を目指す まとめ