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
第117回 雲勉【オンライン】実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WA...
Search
iret.kumoben
October 18, 2023
Technology
750
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第117回 雲勉【オンライン】実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WAF の基本
下記、勉強会での資料です。
https://youtu.be/owYyj2X3ao4
iret.kumoben
October 18, 2023
More Decks by iret.kumoben
See All by iret.kumoben
第182回 雲勉 【Gemini 3.0 Pro】AI ベンチマーク徹底比較!他モデルに比べ優れている点まとめ
iret
0
110
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
96
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
120
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
160
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
130
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
130
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
120
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
160
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
190
Other Decks in Technology
See All in Technology
『モデル + ハーネス』で読み解く AIエージェント入門
oracle4engineer
PRO
2
160
VPCセキュリティ対応の最新事情
nagisa53
1
260
SRENEXT_2026_Chairs__Talks_in_Tamachi.sre.pdf
srenext
1
140
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
360
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.5k
生成AI×AWS CDK×AWS FISで"振り返れる"ミニGameDayをつくろう
yoshimi0227
2
530
「顧客の声を聞かなければ何も始まらない」 ── 顧客の声から生まれた『AI返信補助機能』の開発プロセス / AICon2026_shikata_imai
rakus_dev
1
270
テックカンファレンス三大ステークホルダーの文化人類学 ─ 違いを認め合う関係性作り
bash0c7
1
160
”AIを使う” から ”AIに任せる” へ ─ 開発プロセスを再設計してAIを組織標準にするまで
cyberagentdevelopers
PRO
1
140
AIが当たり前の組織で エンジニアはどう育つか
nishihira
1
970
20260720_クラウド女子会×PyLadiesTokyoコラボ Amazon Bedrock ハンズオン用資料
yuuka51
1
110
Network Firewallやっていき!
news_it_enj
0
260
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
3
450
The untapped power of vector embeddings
frankvandijk
2
1.8k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
KATA
mclloyd
PRO
35
15k
Six Lessons from altMBA
skipperchong
29
4.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Designing Powerful Visuals for Engaging Learning
tmiket
1
460
Music & Morning Musume
bryan
47
7.3k
Building AI with AI
inesmontani
PRO
1
1.1k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
57k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Transcript
アイレット株式会社 CI事業部_Sセクション 日下 憧 実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WAF の基本 第117回
雲勉【オンライン】 C1WS のメモリから学ぶメモリ断⽚化の解消について
0.講師自己紹介 2 ▪ 日下 憧 (くさか しょう) • クラウドインテグレーション事業部 セキュリティセクション
東京第一 G C1WSの初期構築・運用、WafCharmの販売代行などを行っています。 • 2022年1月入社 (アイレット歴1年10ヶ月) • 応援している野球チームが暗黒期を迎えそうで複雑な心境です。
アジェンダ 3 0. 自己紹介 1. C1WSについて 2. C1WSのメモリ不足イベントについて 3. メモリとは
4. メモリの断片化(フラグメンテーション)について 5. 断片化の解消方法について 6. おわりに
本日のゴール 4 メモリの断片化とその解消方法について理解しよう!
今回お話しないこと 5 • 詳細な設定や機能について • 事例以外の固有の製品について
CONFIDENTIAL 1.C1WSについて
C1WSについて 7 ▪ 概要 Trend Micro Cloud One – Workload
Security (以降C1WS)は サーバ保護に必要な複数のセキュリティ機能を提供する クラウド型総合 サーバセキュリティサービスです。 Agentをサーバにインストールすることで、脆弱性対策や多層防御を提供されます。 ▪ Deepsecurity との違い DeepSecurityは自前でサーバを用意しDeepSecurityManagerをインストール・構築します。 DeepSecurity as a Service(現C1WS)は、DeepSecurityのSaaS版であり トレンドマイクロ社が管理しているManagerを利用して、ブラウザ上から利用することが 可能です。
C1WSについて 8 Agentをインストールしたサーバに下記機能を提供します。 • 不正プログラム対策 • IPS/IDS(侵入防御) • ファイアウォール •
変更監視 • セキュリティログ監視 • etc… Trend Micro C1WSのユーザー(アイレット) Amazon EC2 お客様AWS環境 ▪ 構成イメージ Amazon EC2 ▪ 提供機能
C1WSについて 9 ▪ 侵入防御機能について 保護対象はL3〜L6(一部L7まで対応が可能) アプリケーション・ソフトウェアまたはOSの既知の脆弱性対する攻撃からコンピュータを保護します。 侵入防御ルールを割り当て、通信がそのルールに合致するかを確認します。 例) XSS、SQLiを保護するルール・Apacheや各種OSのバージョン対するルール など
処理:検出モードの場合 – 検知イベントが作成され、その通信は遮断されません。 →誤検知が生じやすいルールや仮運用期間などに利用。 防御モードの場合 – 検出イベントが作成され、その通信は遮断される。 9
CONFIDENTIAL 2.C1WSのメモリ不足イベントについて
C1WSのメモリ不足イベントについて 11 ▪ 概要 侵入防御機能のイベントとして記録される「メモリ不足 (Out of Memory)」イベントは C1WSのネットワークエンジンが必要としている 連続したカーネルメモリを確保できない場合に記録されます。
つまり C1WSの侵入防御機能で検知に必要とされるメモリの確保に失敗した状態であり サーバ自体のメモリが十分に空いていても事象が発生します。
C1WSのメモリ不足イベントについて 12 ▪ イベントが発生したらどうなるのか? 侵入防御機能を有効にしているAgentでは検知した通信を ひとつずつ割り当てられているルールに該当するかどうかを確認しています。 イベントが発生したら その通信が割り当てられているルールに該当するかの確認をやめます。 検知した通信を全て遮断してしまうことから、正常な通信も遮断することがあります。
C1WSのメモリ不足イベントについて 13 ▪ 実際の検知したイベント その1 メモリ不足が発生したことで、発生中の通信は全て遮断されています。
C1WSのメモリ不足イベントについて 14 ▪ 実際の検知したイベント その2 メモリ不足イベントの詳細 他のルールの詳細
C1WSのメモリ不足イベントについて 15 ▪ 考えられる原因 前提として、サーバ全体のメモリが十分な空き容量があるにも関わらず 当イベントが多発している場合、以下の要因が想定されます。 ・メモリが断片化している ・特定の通信を監視する侵入防御ルールの数が多すぎる ・通信量が多く、C1WSが侵入防御機能に必要なカーネルメモリの慢性的な不足 今回は3つのケースのうち「メモリが断片化している」場合についてお話します。
C1WSのメモリ不足イベントについて 16 ▪ メモリが断片化していない場合の解消方法 ・不要な侵入防御ルールの割り当て解除 監視する侵入防御ルールの数が多すぎることが原因の場合、 割り当てられている侵入防御ルールを減らすことで解消することがあります。 ※ただし、具体的なルール数は不明確であり サーバの用途やスペックによってルール数が多くても事象が発生しないことがあります。 ・サーバのスペック自体をあげる
カーネルメモリは物理メモリ量に応じて割り当てられますので、 サーバのスペックを上げて物理メモリの増やすという方法です。
CONFIDENTIAL 3.メモリについて
メモリについて 18 ▪ メモリとは メモリとは、データを記録する部品のことです。 基本的にRAM(Random Access Memory)のことを指します。 ストレージなどから読み出したデータを一時的に記録しておく場所です。 よくPCの部品を説明するときに
メモリは「作業する机」と表現されることが多いです。 つまり、メモリが大きければ大きいほど、作業スペースが大きいことから 同時に行える作業の数が増えたり、処理の負担が大きい動作でも行えるようになります。
メモリについて 19 ▪ CPUとは PCのシステムの中心となって処理を行う部品のことです。 Central Processing Unit(セントラル プロセッシング ユニット)」の略称で
計算能力やデータの操作、電子部品の制御などを行います。 よくPCの部品を説明するときに CPUは「人間の脳みそ」と表現されることが多いです。 CPUの性能が高いほど動作は快適で重い処理もこなせるようになります。
メモリについて 20 ▪ ストレージとは SSDやHDDといったストレージは、データを長期間にわたって保管しておく場所です。 よくPCの部品を説明するときに ストレージは「収納BOX」と表現されることが多いです。 ストレージはメモリと比べると、データにアクセスするのに時間がかかるため、 データの一時的な保管場所としてはメモリが使用されます。
Mem:メインメモリのサイメインメモリのサイズ total:総容量 used:使用量 free:空き容量 shared:共有メモリの使用量 buff/cache :カーネルバッファとキャッシュ available: 空き容量の free
に加えて、buff/cache のうちすぐに解放できる領域 Swap:スワップ領域のメモリサイズ メモリについて 21 ▪ メモリの使用量について(Linuxの場合) ・各項目について [ec2-user@ip-172-31-11-74 ~]$ free -m total used free shared buff/cache available Mem: 952 580 134 0 237 234 Swap: 0 0 0 [ec2-user@ip-172-31-11-74 ~]$
CONFIDENTIAL 4.メモリの断片化(フラグメンテーション)について
メモリの断片化(フラグメンテーション)について 23 ▪ メモリの断片化とは メモリの断⽚化とは、空きメモリが⼗分あるにも関わらず メモリ確保に失敗する状態のことです。 メモリの空き領域はあるはずが、 虫食いのような状態で小さな領域が飛び飛びになっていることで 実際には使用できない状態になってしまったことのことです。
メモリの断片化(フラグメンテーション)について 24 空き100GB 初期化状態 空き90GB Aで10GB 製品Aで10GB使用 空き70GB Aで10GB Bで30GB
製品Bで30GB使用 空き40GB Aで10GB Bで30GB 製品Cで20GB使用 Cで20GB 空き10GB 空き40GB Bで30GB 製品Aの10GB解放 Cで20GB 空き10GB 空き20GB Bで30GB 製品Dの20GB使用 Cで20GB Dで20GB 空き10GB 空き20GB 空き20GB Bで30GB 製品Cの20GB解放 Dで20GB ▪ 断片化が起こる流れ 空き10GB 空き20GB 空き20GB Bで30GB 製品Eの30GB使用するも・・・ Dで20GB Eで30GB
メモリの断片化(フラグメンテーション)について 25 ▪ 断片化の状態とは [ec2-user@hogehoge ~]$ cat /proc/buddyinfo Node 0,
zone DMA 1 0 0 1 2 1 1 0 1 1 3 Node 0, zone DMA32 15084 14214 10944 503 3 0 0 0 0 0 0 Node 0, zone Normal 20306 15297 1615 233 48 4 1 0 0 0 0 [ec2-user@hogehoge ~]$ 断片化の状態は proc/buddyinfo から確認することができます。 値が左に偏ると断片化しています 断片化している場合 [ec2-user@hogehoge ~]$ cat /proc/buddyinfo Node 0, zone DMA 1 0 0 1 2 1 1 0 1 1 3 Node 0, zone DMA32 3 3080 7928 4671 1924 1166 934 972 921 16 7 Node 0, zone Normal 1442 319 1544 3775 2591 2051 1531 1336 1248 0 0 [ec2-user@hogehoge ~]$ 断片化していない場合
CONFIDENTIAL 5.断片化の解消方法について
断片化の解消方法について 27 ▪ 断片化を解消する方法 1. OS を再起動する 2. compact_memory への書き込み
※OS を再起動しない場合 3. 何もしない ※(キャッシュクリアをする ※OS を再起動しない場合) 断片化を解消する方法は以下になります。
断片化の解消方法について 28 ▪ compact_memory への書き込みでの解消方法 /proc/sys/vm/compact_memory に以下を書き込むことで断片化が解消されます。 上記を書き込むことで、すべてのZONEが圧縮されて 可能な限りの連続する空きページフレームが利用可能になります。 ※この機能は
CONFIG_COMPACTION が有効化されていることが前提ですが kernel version 2.6.29 にて有効化されておりますことから 有効化されていることが普通という考えで問題ないです。 # echo 1 > /proc/sys/vm/compact_memory
断片化の解消方法について 29 ▪ 実例紹介 コマンドを直打ちするのではなく、cronによる設定を実施しました! 【cronでコマンドを実施した理由】 • メモリ不足の事象が長らく続いていたこと • 事例がなく1回のコマンド実施で効果があるか不明であったため
0 22 * * * echo 1 > /proc/sys/vm/compact_memory
断片化の解消方法について 30 ▪ 実施結果 実施前 無事断片化が解消し、メモリ不足のイベントも発生しなくなりました! [root@*** ~]# cat /proc/buddyinfo
Node 0, zone DMA 1 0 0 1 2 1 1 0 1 1 3 Node 0, zone DMA32 10173 23877 18123 10419 6440 3538 1565 346 29 0 0 Node 0, zone Normal 24112 64261 47521 21348 8110 3465 1137 132 3 1 0 実施後 [root@*** ~]# cat /proc/buddyinfo Node 0, zone DMA 1 0 0 1 2 1 1 0 1 1 3 Node 0, zone DMA32 215 1230 1491 1642 1130 699 493 357 270 227 249 Node 0, zone Normal 4261 4524 3835 3335 3002 1535 918 460 261 314 367
メモリ不足の解消方法(補足) 31 ▪ キャッシュクリアの実施による解消 # echo 3 > /proc/sys/vm/drop_caches C1WSのメモリ不足イベントでは
上記のコマンドでOSキャッシュをクリアすることで解消した事例がございます。 要するに、/proc/sys/vm/drop_cachesというファイルに数値を設定するだけです。 ※cronで実施するケースが多いです。
まとめ 32 • C1WSのメモリ不足イベントはすべての通信を遮断する • メモリの断片化は、メモリの割り当てと解放の繰り返しで発生しやすい • メモリの断片化は、compact_memory への書き込みで解消される
おわりに 33 ご清聴いただきありがとうございました!