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
720
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
89
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
110
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
150
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
120
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
120
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
110
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
150
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
180
Other Decks in Technology
See All in Technology
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
4.3k
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
0
160
元・セキュリティ学習経験0大学生による業務紹介 / An Introduction to the Job by a Former College Student with Zero Security Training Experience
nttcom
0
920
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
120
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
490
UIパーツの設計を「型」から読み解く 〜TSKaigiのセッションから得た学び〜
yud0uhu
0
100
螺旋型キャリアの生存戦略 / kinoko-conf2026
rakus_dev
1
1.2k
Agile and AI Redmine Japan 2026
hiranabe
4
500
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
190
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
300
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
7.7k
AWS Summit 2026で見えたSIerにとっての Amazon Quickの位置づけ
maf_0521
0
110
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Evolving SEO for Evolving Search Engines
ryanjones
0
230
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
150
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
210
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Thoughts on Productivity
jonyablonski
76
5.2k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
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 ご清聴いただきありがとうございました!