Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第117回 雲勉【オンライン】実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WAF の基本

第117回 雲勉【オンライン】実際の課題から学ぶ:C1WS のメモリ不足の解消と AWS WAF の基本

iret.kumoben

October 18, 2023
Tweet

More Decks by iret.kumoben

Other Decks in Technology

Transcript

  1. 0.講師自己紹介 2 ▪ 日下 憧 (くさか しょう) • クラウドインテグレーション事業部 セキュリティセクション

    東京第一 G C1WSの初期構築・運用、WafCharmの販売代行などを行っています。 • 2022年1月入社 (アイレット歴1年10ヶ月) • 応援している野球チームが暗黒期を迎えそうで複雑な心境です。
  2. アジェンダ 3 0. 自己紹介 1. C1WSについて 2. C1WSのメモリ不足イベントについて 3. メモリとは

    4. メモリの断片化(フラグメンテーション)について 5. 断片化の解消方法について 6. おわりに
  3. C1WSについて 7 ▪ 概要 Trend Micro Cloud One – Workload

    Security (以降C1WS)は サーバ保護に必要な複数のセキュリティ機能を提供する クラウド型総合 サーバセキュリティサービスです。 Agentをサーバにインストールすることで、脆弱性対策や多層防御を提供されます。 ▪ Deepsecurity との違い DeepSecurityは自前でサーバを用意しDeepSecurityManagerをインストール・構築します。 DeepSecurity as a Service(現C1WS)は、DeepSecurityのSaaS版であり トレンドマイクロ社が管理しているManagerを利用して、ブラウザ上から利用することが 可能です。
  4. C1WSについて 8 Agentをインストールしたサーバに下記機能を提供します。 • 不正プログラム対策 • IPS/IDS(侵入防御) • ファイアウォール •

    変更監視 • セキュリティログ監視 • etc… Trend Micro C1WSのユーザー(アイレット) Amazon EC2 お客様AWS環境 ▪ 構成イメージ Amazon EC2 ▪ 提供機能
  5. メモリについて 18 ▪ メモリとは メモリとは、データを記録する部品のことです。 基本的にRAM(Random Access Memory)のことを指します。 ストレージなどから読み出したデータを一時的に記録しておく場所です。 よくPCの部品を説明するときに

    メモリは「作業する机」と表現されることが多いです。 つまり、メモリが大きければ大きいほど、作業スペースが大きいことから 同時に行える作業の数が増えたり、処理の負担が大きい動作でも行えるようになります。
  6. メモリについて 19 ▪ CPUとは PCのシステムの中心となって処理を行う部品のことです。 Central Processing Unit(セントラル プロセッシング ユニット)」の略称で

    計算能力やデータの操作、電子部品の制御などを行います。 よくPCの部品を説明するときに CPUは「人間の脳みそ」と表現されることが多いです。 CPUの性能が高いほど動作は快適で重い処理もこなせるようになります。
  7. 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 ~]$
  8. メモリの断片化(フラグメンテーション)について 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
  9. メモリの断片化(フラグメンテーション)について 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 ~]$ 断片化していない場合
  10. 断片化の解消方法について 27 ▪ 断片化を解消する方法 1. OS を再起動する 2. compact_memory への書き込み

    ※OS を再起動しない場合 3. 何もしない ※(キャッシュクリアをする ※OS を再起動しない場合) 断片化を解消する方法は以下になります。
  11. 断片化の解消方法について 28 ▪ compact_memory への書き込みでの解消方法 /proc/sys/vm/compact_memory に以下を書き込むことで断片化が解消されます。 上記を書き込むことで、すべてのZONEが圧縮されて 可能な限りの連続する空きページフレームが利用可能になります。 ※この機能は

    CONFIG_COMPACTION が有効化されていることが前提ですが kernel version 2.6.29 にて有効化されておりますことから 有効化されていることが普通という考えで問題ないです。 # echo 1 > /proc/sys/vm/compact_memory
  12. 断片化の解消方法について 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
  13. メモリ不足の解消方法(補足) 31 ▪ キャッシュクリアの実施による解消 # echo 3 > /proc/sys/vm/drop_caches C1WSのメモリ不足イベントでは

    上記のコマンドでOSキャッシュをクリアすることで解消した事例がございます。 要するに、/proc/sys/vm/drop_cachesというファイルに数値を設定するだけです。 ※cronで実施するケースが多いです。