技術ブログ株式会社エーピーコミュニケーションズの技術ブログです。エーピーコミュニケーションズの技術ブログです。>始めに先進サービス開発事業部の山岡です。弊社製品の一つにファイアーウォールのポリシーテストを自動化するNEEDLEWORKがあります。詳細はリンクを見て頂くとして、簡単に言えばCSVに試験シナリオ(プロトコルやSrc/Dstアドレス等々)を定義しそれを実行することができるアプライアンスです。1試験あたりにかかる時間はPass試験の場合で1つ50msほど(Drop試験の場合は1秒程度)です。人間が試験する場合は熟練したエンジニアであっても1項目あたり数分はかかることでしょう。これにより今まで時間的制約で抜粋せざるを得なかった試験を網羅することができ、工数の短縮だけでなく品質の担保にも役立ちます。それでは究極の品質を目指して全通信パターンの試験を行った場合にどれほどの時間がかかるのでしょうか?とても気になって夜しか眠れなくなってしまったので計算してみました。(691京9112兆2986億1527万5520)通りとなりました。36510970180585.069883ざっくり110億年ほどかかってしまいました。納期が110億年後ではどんなに高品質であっても受注は難しいでしょう。これはPass試験であることが大前提です。普通のファイアーウォールで全数試験をすると殆どがDropになるでしょうから、実際にはこの数十倍かかると思われます。天文学的スケールですね。現実的な時間内で全数試験を行うには?少なくとも現状のNEEDLEWORKは逐次実行で試験を行うため、並列実行するためには複数台のNEEDLEWORKと分割した試験シナリオが必要になります。それでは何台のNEEDLEWORKがあれば現実的な時間で収まるのでしょうか?ここでは24時間以内に終わることを目標とします。244004115913550.50734兆41億1591万3551台のNEEDLEWORKがあれば24時間以内に終わらせることができそうです。試験対象のファイアーウォールがそのトラフィックに耐えられるかどうか、ポート数をどうやって確保するか、大量の機材を設置するスペースや必要電力等は考慮されていません。4兆台のNEEDLEWORKを購入するために必要な資金を概算してみたところ、日本の一般会計予算が10万年分くらいは必要になりそうです。試験シナリオファイルの容量これだけ多数のパターンだと試験シナリオとなるCSVファイルの容量も無視できません。仮に1行1バイトだったとしても6.9ZB(ゼタバイト:エクサバイトの1,000倍)という極めて膨大な量になってしまいます。実際には数十~数百文字は書くでしょうから更にそれが膨れ上がります。いえばAWSのS3は容量無制限なので少なくともサービス仕様上は問題無く格納できるはずです。