TECH PLAY

NTTドコモビゞネス

NTTドコモビゞネス の技術ブログ

å…š622ä»¶

こんにちは、むノベヌションセンタヌの加藀です。普段はコンピュヌタビゞョンの技術開発やAI/機械孊習ML: Machine Learningシステムの怜蚌に取り組んでいたす。䞀方で、兌務で生成AIチヌムに参加し、倧芏暡蚀語モデルLLM: Large Language Modelに関する技術の調査を行なっおいたす。 この蚘事では、日本語のコヌド生成のデヌタセットが無い条件䞋で、進化的モデルマヌゞを掻甚するこずで日本語ず゜ヌスコヌド生成に特化した倧芏暡蚀語モデル(LLM)を合成した詊みに぀いお玹介したす。 目次 目次 モデルマヌゞずは 進化的モデルマヌゞずは 利甚したモデル 日本語LLM コヌド生成特化 MergeKitによる実隓 利甚モデル マヌゞ甚デヌタセット JSQuAD CoNaLa 評䟡甚デヌタセット JCommonsenseQA HumanEval JHumanEval 実隓結果 考察 JHumanEvalの回答に必芁な日本語胜力 CodeLlamaのマヌゞ困難性 たずめ モデルマヌゞずは 孊習枈みモデルの重みを組み合わせるこずで、元のモデルの持぀胜力を組み合わせたり粟床を向䞊させたりできる手法です。䟋えばベヌスモデルの重み に察し、さたざたなハむパヌパラメヌタでファむンチュヌニングした耇数の掟生モデルの重み があるずき、これらを平均した はmodel soupず呌ばれ元の掟生モデルよりも性胜が良くなり、か぀入力の倉化にも頑健になるず蚀われおいたす 1 。 䞀方で、ベヌスずなるLLMの重み に察し数孊の問題デヌタでファむンチュヌニングした掟生モデル ず、゜ヌスコヌド生成のためのデヌタセットでファむンチュヌニングした掟生モデル があったずしたす。このずき、掟生モデルの重みずベヌスモデルの重みの差分 はtask vectorず呌ばれ、ファむンチュヌニングによっお埗られた新しい胜力の重みず芋なすこずができ、これの和を取るこずで数孊ずプログラミング䞡方に匷い新たなLLMの重み を䜜るこずができたす。このような差分を線型結合するテクニックはtask arithmetic 2 ず呌ばれ、足すだけでなく匕くこずで特定の性質䟋えば攻撃性などを取り陀くずいう操䜜も可胜ずされおいたす。 これらの手法は耇数のモデルの出力を合成するアンサンブル手法ずは違い、モデルのサむズが倉化しないので掚論速床が元のモデルから倉化しないずいう利点がありたす。非線圢操䜜を倚量に含んでいるモデルの重みを単玔に足し匕きする操䜜は盎芳的に機胜しなさそうですが、実隓的にはうたくいく 3 ようで蚀語モデルや画像生成などさたざたな分野でいろいろなマヌゞモデルが䜜成されおいたす。 たた、重みの合成方法に぀いおも単玔な線圢補間にずどたらないさたざたな手法が提案されおいたす。今回の蚘事では、task vectorからランダムにパラメヌタを0にしお残りのパラメヌタをスケヌリングするDARE 4 ずいう手法ず、マヌゞするパラメヌタの笊号ができるだけ䞀臎するようにいく぀かのパラメヌタを0にするTIES 5 ずいう手法を組み合わせたものを利甚したす。いずれの手法も、それぞれのtask vectorには胜力の発珟に実際に寄䞎するパラメヌタは少数であるずいう仮定をおき、そのようなパラメヌタがもう䞀方のtask vectorに乱されないように工倫をするずいうアプロヌチによっお、より性胜の良いマヌゞモデルの䜜成を可胜にしおいたす。 進化的モデルマヌゞずは モデルのパラメヌタを合成する際の重み付け係数やDAREなどにおける非れロの密床などは、マヌゞ埌の粟床を巊右する重芁なハむパヌパラメヌタです。このハむパヌパラメヌタを探玢するために進化的アルゎリズムを掻甚したのがSakana AIの提案した進化的モデルマヌゞです 6 。この手法は指定されたデヌタセットの評䟡指暙を最適化するようなパラメヌタを繰り返し探玢するもので、デヌタセット党䜓に察する評䟡を䜕床も実行する必芁がある䞀方で募配を必芁ずしないずいう利点がありたす。Sakana AIが提案した手法はDAREずTIESを䜵甚したマヌゞ手法ずCMA-ESず呌ばれる進化的アルゎリズムを組み合わせたもので、モデルマヌゞの際に広く䜿われおいるラむブラリであるmergekit 7 にも実装されおいたす。この蚘事では、mergekitに実装された進化的モデルマヌゞを甚いお、日本語LLMモデルずコヌド生成モデルを合成しおみたした。 利甚したモデル マヌゞに利甚したモデルを玹介したす。モデルマヌゞの制玄䞊、党おのモデルは同じベヌスモデルから掟生しおいる必芁があるため、今回はMeta瀟の基盀モデルであるLlama2 (70億パラメヌタ)をベヌスずした掟生モデルを合成したした。利甚モデルの掟生関係は以䞋の図に瀺しおいたす。 日本語LLM 日本語を理解できるLLMずしお今回は ELYZA Japanese Llama Instruct 7B を利甚したした。Llama2をベヌスに玄180億トヌクンの日本語デヌタセットで远加事前孊習したモデルであり 8 、日本語に察する高い凊理胜力が期埅できたす。 コヌド生成特化 マヌゞ甚のモデルずしお、倧郚分を゜ヌスコヌドが占める蚈5000億トヌクンのデヌタセットで远加孊習し質問応答甚にファむンチュヌニングした CodeLlama Instruct ず、゜ヌスコヌドに関する質問応答デヌタセットである Evolved CodeAlpaca を甚いおLlama2をファむンチュヌニングした Llama-2-7b-evolcodealpaca の2぀を甚意したした。 たた、比范察象ずしおCodeLlama Instructに日本語デヌタセットを远加事前孊習させた ELYZA Japanese CodeLlama Instruct 7B を甚意し、マヌゞモデルがどれくらいこの远加事前孊習モデルに匹敵するかを調査したした。 MergeKitによる実隓 利甚モデル mergekitに実装された進化的モデルマヌゞを甚いお、以䞋の組み合わせでモデルマヌゞを行いたした。 ELYZA Japanese Llama Instruct 7B + CodeLlama Instruct ELYZA Japanese Llama Instruct 7B + Llama-2-7b-evolcodealpaca マヌゞモデルず元モデルずの関係は次の図のようになりたす。 マヌゞ甚デヌタセット ハむパヌパラメヌタ探玢の際の評䟡甚デヌタセットは以䞋の2぀を利甚したした。 JSQuAD 日本語向けの蚀語理解ベンチマヌクJGLUE 9 の䞀郚であり、質問応答デヌタセットSQuADの日本語版です。日本語の文章読解胜力を評䟡するために䜿甚したした。回答は文章生成で行いたすが、正しい圢匏で答えさせるために2぀の䟋題をプロンプトに加えおいたす。この工倫によっお、LLMに「はい、お答えしたす。」のような無意味な回答をしないように誘導できたす。 指暙は exact_match を䜿いたした。これはLLMの出力が想定回答ず完党䞀臎した堎合に正解ずみなすものです。 プロンプトず想定回答の䟋 入力 以䞋は、タスクを説明する指瀺ず、文脈のある入力の組み合わせです。芁求を適切に満たす応答を曞きなさい。 ### 指瀺: 䞎えられた文脈から、質問に察する答えを抜き出しおください。 ### 入力: {䟋題1} ### 応答: {回答1} ### 指瀺: 䞎えられた文脈から、質問に察する答えを抜き出しおください。 ### 入力: {䟋題2} ### 応答: {回答2} ### 指瀺: 䞎えられた文脈から、質問に察する答えを抜き出しおください。 ### 入力: 文脈梅雚぀ゆ、ばいうは、北海道ず小笠原諞島を陀く日本、朝鮮半島南郚、䞭囜の南郚から長江流域にかけおの沿海郚、および台湟など、東アゞアの広範囲においおみられる特有の気象珟象で、5月から7月にかけお来る曇りや雚の倚い期間のこず。雚季の䞀皮である。 質問日本で梅雚がないのは北海道ずどこか。 ### 応答: 出力 小笠原諞島 CoNaLa CoNaLa 10 はStack Overflowから収集されたプログラミング蚀語のデヌタセットであり、質問文ず短いPythonプログラムのペアからできおいたす。゜ヌスコヌド生成の胜力を評䟡するためにこれを利甚したした。こちらも2぀の䟋題をプロンプトに加えおいたす。 指暙はBLEU 11 が䜿われたす。 プロンプトず想定回答の䟋 入力 Answer the following instructions in one line of Python code: Instruction: {䟋題1} Solution: {回答1} Instruction: {䟋題2} Solution: {回答2} Instruction: send a signal `signal.SIGUSR1` to the current process Solution: 出力 os.kill(os.getpid(), signal.SIGUSR1) 評䟡甚デヌタセット マヌゞ埌のモデルの性胜を枬るために、䞊蚘のデヌタセットに加えお、以䞋の日本語デヌタセットずプログラミング蚀語デヌタセットを利甚したした。 JCommonsenseQA JSQuADず同様に日本語向けの蚀語理解ベンチマヌクJGLUEの䞀郚であり、垞識を問うタスクCommonsenseQAの日本語版です。日本語の文章読解胜力を評䟡するためにJSQuADず共に䜿甚したした。3぀の䟋題をプロンプトに加え、遞択匏で答えさせおいたす。指暙は accuracy を䜿いたした。 入出力䟋 入力 以䞋は、タスクを説明する指瀺ず、文脈のある入力の組み合わせです。芁求を適切に満たす応答を曞きなさい。 ### 指瀺: 䞎えられた遞択肢の䞭から、最適な答えを遞んでください。出力は以䞋から遞択しおください {遞択リスト1} ### 入力: {䟋題1} ### 応答: {回答1} ### 指瀺: 䞎えられた遞択肢の䞭から、最適な答えを遞んでください。出力は以䞋から遞択しおください {遞択リスト2} ### 入力: {䟋題2} ### 応答: {回答2} ### 指瀺: 䞎えられた遞択肢の䞭から、最適な答えを遞んでください。出力は以䞋から遞択しおください {遞択リスト3} ### 入力: {䟋題3} ### 応答: {回答3} ### 指瀺: 䞎えられた遞択肢の䞭から、最適な答えを遞んでください。出力は以䞋から遞択しおください - 掲瀺板 - パ゜コン - マザヌボヌド - ハヌドディスク - たな板 ### 入力: 電子機噚で䜿甚される最も䞻芁な電子回路基板の事をなんず蚀う ### 応答: 出力 マザヌボヌド HumanEval HumanEval 12 は関数名ずそのドキュメント説明文から内郚のPython実装を生成させるデヌタセットです。䞀般的な文曞生成の評䟡手法ずは異なり、実際に実装を動䜜させおテストが通るかどうかで生成結果を評䟡しおいたす。倉数名が正解ず異なっおいおもプログラムが正しければ正解ずみなされるため、より実甚に向いた評䟡指暙ずいえたす。たた、人手で䜜成されたため、少量ながら高品質なデヌタであるこずも特城です。 指暙は pass@k が䜿われ、LLMが 個の答えを生成し1぀でも合っおいれば正解ずみなしたす。 入出力䟋 入力 from typing import List def has_close_elements (numbers: List[ float ], threshold: float ) -> bool : """ Check if in given list of numbers, are any two numbers closer to each other than given threshold. >>> has_close_elements([ 1.0 , 2.0 , 3.0 ], 0.5 ) False >>> has_close_elements([ 1.0 , 2.8 , 3.0 , 4.0 , 5.0 , 2.0 ], 0.3 ) True """ 出力 for idx, elem in enumerate (numbers): for idx2, elem2 in enumerate (numbers): if idx != idx2: distance = abs (elem - elem2) if distance < threshold: return True return False テスト def check (candidate): assert candidate([ 1.0 , 2.0 , 3.9 , 4.0 , 5.0 , 2.2 ], 0.3 ) == True assert candidate([ 1.0 , 2.0 , 3.9 , 4.0 , 5.0 , 2.2 ], 0.05 ) == False assert candidate([ 1.0 , 2.0 , 5.9 , 4.0 , 5.0 ], 0.95 ) == True assert candidate([ 1.0 , 2.0 , 5.9 , 4.0 , 5.0 ], 0.8 ) == False assert candidate([ 1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 2.0 ], 0.1 ) == True assert candidate([ 1.1 , 2.2 , 3.1 , 4.1 , 5.1 ], 1.0 ) == True assert candidate([ 1.1 , 2.2 , 3.1 , 4.1 , 5.1 ], 0.5 ) == False JHumanEval JHumanEval 13 はHumanEvalのドキュメント郚分を日本語化したもので、日本語を理解しか぀゜ヌスコヌドを生成する胜力を枬るこずができたす。 入力䟋 from typing import List def has_close_elements (numbers: List[ float ], threshold: float ) -> bool : """リストnumbersの䞭に、䞎えられたthresholdより近い぀の数倀が存圚するか刀定する >>> has_close_elements([ 1.0 , 2.0 , 3.0 ], 0.5 ) False >>> has_close_elements([ 1.0 , 2.8 , 3.0 , 4.0 , 5.0 , 2.0 ], 0.3 ) True """ 実隓結果 マヌゞ前、マヌゞ埌、比范甚モデルそれぞれの評䟡結果は次のようになりたした。 model JSQuAD (2shot, exact match) JCommonsenseQA (3shot) CoNaLa (2shot, bleu) HumanEval (pass@1) JHumanEval (pass@1) (J) ELYZA Japanese Llama Instruct 0.6673 0.7194 0.2743 0.1280 0.0976 (C1) CodeLlama Instruct 0.6855 0.6452 0.3582 0.3293 0.2744 (C2) Llama-2-7b-evolcodealpaca 0.6171 0.58 0.2435 0.3354 0.2683 --- --- --- --- --- --- ELYZA Japanese CodeLlama Instruct 0.6828 0.7373 0.3358 0.3232 0.2378 --- --- --- --- --- --- J + C1 0.3165 0.5505 0.2236 0.0732 0.0610 J + C2 0.6517 0.7051 0.2412 0.3415 0.2134 䜜成した2぀のマヌゞモデルのうち、Llama-2-7b-evolcodealpacaを甚いた方(J + C2)は日本語胜力(JSQuAD,JCommonsenseQA)を保ったたたコヌド生成の性胜を元の日本語LLMから向䞊させるこずができ、远加事前孊習を行なったELYZA Japanese CodeLlama Instructずほが同等のHumanEval, JHumanEval性胜を持たせるこずができたした。 考察 JHumanEvalの回答に必芁な日本語胜力 結果を芋るず、JHumanEvalの性胜はJSQuADやJCommonsenseQAよりもHumanEvalの性胜に盞関しおいるようです。関数ドキュメント皋床の文章量ではあたり読解胜力や垞識を必芁ずしなくおもうたくコヌド生成ができるようです。HumanEvalでは網矅できないような、長く耇雑な仕様文曞からのコヌド生成胜力を枬る必芁がありそうです。 CodeLlamaのマヌゞ困難性 日本語LLMずCodeLLamaをマヌゞするずJ + C1党おの性胜が倧きく劣化しおしたいたした。DAREの論文でも挙げられおいる通りCodeLlamaは远加孊習量が倚く、ベヌスモデルからパラメヌタが倧きくずれおいるためか䞊手くマヌゞできないようです。この問題は進化的アルゎリズムによるハむパヌパラメヌタ探玢でも解決が難しそうだずいうこずがわかりたした。 たずめ 進化的モデルマヌゞを利甚しお日本語LLMずコヌド生成LLMを合成し、䞡方の胜力を獲埗できるか実隓したした。結果ずしお、日本語のタスクずコヌド生成のタスクの䞡方で性胜の良いモデルは䜜成できたものの、日本語から゜ヌスコヌドを生成するずいうタスクは蚭蚈が難しそうなこず、ベヌスラむンからの差分が倧きな掟生モデルはハむパラ探玢を掻甚しおもマヌゞ困難であるこずがわかりたした。 Model soups: averaging weights of multiple fine-tuned models improves accuracy without increasing inference time. https://arxiv.org/abs/2203.05482 ↩ Editing Models with Task Arithmetic. https://arxiv.org/abs/2212.04089 ↩ モデルマヌゞの理論的な背景に぀いお研究しおいる論文に次のようなものがありたす。 Task Arithmetic in the Tangent Space: Improved Editing of Pre-Trained Models. https://arxiv.org/abs/2305.12827 ↩ Language Models are Super Mario: Absorbing Abilities from Homologous Models as a Free Lunch. https://arxiv.org/abs/2311.03099 ↩ TIES-Merging: Resolving Interference When Merging Models. https://arxiv.org/abs/2306.01708 ↩ https://sakana.ai/evolutionary-model-merge-jp/ ↩ https://github.com/arcee-ai/mergekit ↩ https://note.com/elyza/n/na405acaca130 ↩ https://techblog.yahoo.co.jp/entry/2022122030379907/ ↩ https://conala-corpus.github.io ↩ https://huggingface.co/spaces/evaluate-metric/bleu ↩ Evaluating Large Language Models Trained on Code. https://arxiv.org/abs/2107.03374v2 ↩ https://huggingface.co/datasets/kogi-jwu/jhumaneval ↩
はじめに こんにちは、むノベヌションセンタヌの真厎です。 6月にDatabricksの幎次カンファレンス Data+AI Summit 2024 が開催され、 AI/BI Genie ずいうDatabricks䞊のデヌタを自然蚀語で怜玢・分析・可芖化できる機胜が発衚されたした。 本蚘事では、AI/BI Genieに぀いお機胜の抂芁、及び実際に䜿甚した流れを解説したす。 Databricksずは Databricksはデヌタりェアハりスずデヌタレむクの䞡方の匷みを兌ね備えたデヌタずAIのためのオヌプンな統合プラットフォヌム「 デヌタ・むンテリゞェンス・プラットフォヌム 」を提䟛しおいたす。 AI/BI Genieずは AI/BI Genieずは、Databricks䞊の構造化デヌタに察しお自然蚀語を甚いお怜玢、分析、可芖化を行うこずができる機胜です。 Databricksでナヌザヌが特定のデヌタにアクセスしお分析したい堎合、埓来はPythonなどのプログラミング蚀語やSQLを甚いおデヌタを抜出する必芁がありたした。 しかし、AI/BI Genieの登堎により自然蚀語を甚いお察話的にデヌタを抜出しお分析できるようになりたした。 AI/BI Genieの構成芁玠 ここでは、AI/BI Genieの構成芁玠であるGenieスペヌス、及びGenieチャットの抂芁に぀いお解説したす。 Databricksのコン゜ヌル䞊で、AI/BI GenieはGenie>Genieスペヌス>Genieチャットずいう構造になっおいたす。 Genie、Genieスペヌス、Genieチャットの圹割は以䞋のようになっおいたす。 Genie Genieスペヌスを管理する画面 Genieスペヌス チャットのたずたり Databricksの蚈算リ゜ヌスであるクラスタヌ蚭定やテヌブル蚭定も管理できる チャット Genieず䌚話するためのむンタヌフェヌス 䌚話の履歎はGenieスペヌス内のチャットごずに管理される Genieスペヌスでは以䞋の蚭定を管理できたす。 Title スペヌスの名前 Description スペヌスの説明 Default warehouse スペヌスで䜿甚するクラスタヌ Tables スペヌスで怜玢・分析・可芖化の察象ずするテヌブル Sample Question チャットUI䞊で、質問可胜な内容の䟋を衚瀺する AI/BI Genieの蚭定方法に぀いおは 公匏ドキュメント を参照しおください。 Genieず䌚話しおみる ここでは、AI/BI Genieに察しお実際に自然蚀語でデヌタの取埗を䟝頌しお意図したデヌタを適切に取埗できるか、実際にAI/BI Genieを䜿甚しお確認したす。 やりたいこず Databricks内のデヌタから、誰がどのくらいDatabricksにアクセスしおいるかに぀いお、該圓のデヌタを持぀テヌブルを怜玢・集蚈・可芖化する。 アプロヌチ システムテヌブル( system.access.audit  ) は監査ログに関するテヌブルずしお蚭蚈されおおり、ナヌザヌアクセスに関するむベントを蚘録しおいたす。 そのため、今回のアクセス解析はこのテヌブルを集蚈するこずで実珟可胜です。 そこで以降では、AI/BI Genieがシステムテヌブル( system.access.audit )を䜿甚しお正しく集蚈・可芖化できるかを確認したす。 ※本蚘事で扱う システムテヌブル は、事前に有効化しおおく必芁がありたす。 Genieスペヌスの䜜成 たず、 Genieスペヌスの蚭定項目 を蚭定し、Genieスペヌスを䜜成したす。 AI/BI Genieはナヌザヌの質問に察しおTablesで遞んだテヌブルを基に情報を怜玢するので、事前に該圓しそうなテヌブルを怜玢察象に入れおおきたす。 今回はシステムによる自動䜜成のログテヌブルを怜玢察象にしたいので system.access 配䞋のテヌブルにチェックを入れたす。 デヌタ怜玢 続いお、Genieスペヌスが䜜成できるず自動でチャットUIに遷移するのでこの画面で䌚話を始めたす。AI/BI Genieに問い合わせをするには画面䞋郚のチャットボックスに質問文を入力したす。 たず、目的のデヌタの集蚈が行えるテヌブルがあるかを自然蚀語で問い合わせたす。 system.access.audit  テヌブルからアクセス回数を集蚈できるずいうこずなので、 system.access.audit  テヌブルのデヌタがどういったものか尋ねたす。 AI/BI Genieによるず、 system.access.audit  テヌブルはDatabricks ワヌクスペヌス内でのナヌザヌ行動に関する監査ログであるずいうこずであり、公匏ドキュメントのテヌブル定矩ず合臎するため正しい分析蚭蚈ができおいるこずが分かりたした。 デヌタ集蚈 これたでず同様に自然蚀語でAI/BI Genieにナヌザヌごずのログの集蚈を䟝頌をするず、AI/BI Genieが生成したSQL文が実行され、集蚈結果がむンタヌフェヌスに衚瀺されたす。 なお、AI/BI Genieが実行したSQL文はAI/BI Genieの回答に添付されおいたす。 デヌタ可芖化 最埌に、AI/BI Genieに䞊蚘のカりント結果を円グラフで可芖化しおもらいたした。 AI/BI Genieに関するTips グラフの可芖化にはVega-Liteが利甚可胜 AI/BI Genieが可芖化に䜿うツヌルは Vega-Lite がデフォルトずなっおいたすが、matplotlibやseabornなど別のラむブラリも䜿えるかを確認しおみたす。 AI/BI Genieにpythonのseabornラむブラリを甚いた可芖化を䟝頌したしたが、AI/BI GenieからはVega-Liteを甚いた可芖化のみ可胜ず返っおきたした。 実際にAI/BI Genieが可芖化したデヌタを芋るず党おのグラフがVega-Liteが察応するjson圢匏で描画されおいたす。 円グラフ描画時の泚意点 AI/BI Genieが生成した円グラフは、デフォルトでは件数順に゜ヌトされたせん。 そのため、AI/BI Genieが理解できるように゜ヌトを指瀺する必芁がありたす。 以䞋では未゜ヌトの円グラフず゜ヌトされた円グラフの䜜成方法をそれぞれ芋おいきたす。 デフォルトの円グラフ未゜ヌト たず、AI/BI Genieに詳现を指定せず円グラフを描いおもらうず、件数順の゜ヌトなどはされないたた円グラフが可芖化されたす。 ゜ヌトされた円グラフ 件数順の゜ヌトができおいない旚を指摘するず、AI/BI Genieがコヌドの問題点をセルフレビュヌし、新たな円グラフの䜜成コヌドを提案したす。 ここでAI/BI Genieに察しお再床可芖化を䟝頌するず、AI/BI Genieにより゜ヌトされた円グラフが可芖化されたす。 AI/BI Genieぞの可芖化の䟝頌方法を工倫するこずで、゜ヌトされた円グラフを䜜成できたした。 なお、棒グラフや折れ線グラフに぀いおは特に質問の仕方を工倫せずずも件数゜ヌトができたす。 たずめ 本蚘事では以䞋の2点に぀いお解説をしたした。 AI/BI Genieの抂芁 AI/BI Genieを甚いたデヌタ怜玢・集蚈・可芖化 AI/BI GenieはDatabricks䞊のデヌタを自然蚀語で怜玢・分析・可芖化できるDatabricksのサヌビスです。AI/BI Genieの登堎によりDatabricksでのデヌタ掻甚がプログラミングを䜿えないビゞネス珟堎レベルたで浞透するこずが予想されたす。
本蚘事では6月に開催された DATA+AI Summit 2024 でGeneral Availabilityが発衚された Databricks のDeltaLake Universal Formatの機胜を䜿っおクロスプラットフォヌムでの分析を実珟する方法に぀いお玹介したす。 DeltaLake Universal FormatはDeltaLakeに保存されたデヌタをApache Icebergなどの異なるフォヌマットで読み出すこずができるようにする機胜です。本蚘事では実際にDatabricks䞊でDeltaLake Universal Formatの機胜を有効にしたテヌブルを䜜成し、 Amazon Athena からApache Iceberg圢匏でク゚リを発行するサンプルを甚いお、機胜の䜿い方ず本機胜のメリットに぀いお解説したす。 目次 目次 はじめに デヌタレむクずOpen Table Format (OTF) Databricks DeltaLake Universal Format DeltaLake Universal Formatを利甚したクロスプラットフォヌムでの分析 DeltaLake Universal Format察応テヌブルの䜜成 DeltaLake Universal Format(Iceberg互換) Tableの確認 Amazon Athenaの蚭定 Amazon Athenaからのク゚リの発行 たずめ 参考文献 はじめに こんにちは、NTTコミュニケヌションズの露厎です。 本蚘事では6月に開催された DATA+AI Summit 2024 でGeneral Availabilityが発衚された Databricks のDeltaLake Universal Formatの機胜を䜿っおクロスプラットフォヌムでの分析を実珟する方法に぀いお玹介したす。 デヌタレむクずOpen Table Format (OTF) DeltaLake Universal Formatを解説するにあたり、前提ずなるデヌタレむクずOpen Table Formatに぀いお説明したす。 デヌタレむクは構造化デヌタ、非構造化デヌタを扱うこずのできる䞀元的なリポゞトリです。デヌタレむクでは未加工か぀倚様なデヌタを栌玍するため、デヌタを分析するためにはデヌタベヌスやデヌタりェアハりスのような構造化されたデヌタずしお取り扱う必芁がありたす。 Open Table Format (OTF) はこうしたデヌタレむク䞊に構造化されたテヌブル圢匏を衚珟するためのフォヌマットであり、ACIDトランザクションなどデヌタベヌスで取り扱う操䜜をデヌタレむク䞊のデヌタに察しお実珟したす。 DeltaLake や Apache Iceberg 、 Apache Hudi は、OTFを提䟛するOSSの゜フトりェアです。SparkやTrinoずいったOSS分散凊理゜フトりェアはこれらのOTFの機胜を通しおデヌタレむク䞊のデヌタにテヌブル圢匏でアクセスできたす。 埓来、これらのOTFはそれぞれのOSSコミュニティで開発されおおり、分析プラットフォヌム毎に察応するフォヌマットが異なるため、特定のプラットフォヌムにロックむンされるずいう課題がありたした。 Databricks Databricksはデヌタりェアハりスずデヌタレむクの䞡方の匷みを兌ね備えたデヌタずAIのためのオヌプンな統合プラットフォヌム「デヌタ・むンテリゞェンス・プラットフォヌム」を提䟛しおいたす。Databricksではデヌタレむクのテヌブルフォヌマットずしお DeltaLake をサポヌトしおいたしたが、こうした互換性の問題を解決する DeltaLake Universal Format 機胜のGeneral Availability (GA)を2024幎6月のDATA+AI Summitにお発衚したした。 DeltaLake Universal Format 匕甚元: https://www.databricks.com/jp/blog/announcing-delta-lake-30-new-universal-format-and-liquid-clustering DeltaLake Universal FormatはDeltaLakeのフォヌマットで保存されたデヌタをApache Iceberg圢匏、Apache Hudi圢匏で読み出すこずを可胜ずするDeltaLakeの機胜です。DeltaLake Universal FormatはDeltaLake、Apache Iceberg、Apache Hudiのいずれのテヌブルフォヌマットも実デヌタは Apache Paruquet 圢匏で保存されおいるこずを利甚し、DeltaLakeぞ曞き蟌たれたデヌタのテヌブルフォヌマットに関するメタデヌタをそれぞれのテヌブルフォヌマットに倉換するこずで異なるテヌブルフォヌマットでの読み取りをサポヌトしたす。 より具䜓的な利甚むメヌゞを掎んで頂くために、以降では実際にDatabricks䞊でDeltaLake Universal Formatの機胜を有効にしたテヌブルを䜜成し、異なるプラットフォヌムであるAmazon AthenaからApache Iceberg圢匏でク゚リを発行する方法に぀いお解説したす。 DeltaLake Universal Formatを利甚したクロスプラットフォヌムでの分析 ここではAzure Databricks䞊に構築したDeltaLake Universal Format察応テヌブルをAmazon Athenaで分析するための蚭定を行なっおいきたす。 DeltaLake Universal Format察応テヌブルの䜜成 たず、DeltaLake Universal Formatの機胜を有効にするためには、テヌブルを䜜成する際に delta.enableIcebergCompatV2 , delta.universalFormat.enabledFormats の2぀のプロパティを蚭定したす。 以䞋は、 uniform_test ずいうカタログに nyctaxi ずいうスキヌマを䜜り、 trips ずいうテヌブルを䜜成するSQLで、DatabrciksのSQL Editorから実行可胜です。 SQLの実行にはDeltaLake Universal Formatが利甚可胜なDatabricks Runtime 14.3LTS以降のRuntimeを䜿甚したす。 1 今回はAmazon AthenaからSpark、Iceberg圢匏で読み取るため、 delta.universalFormat.enabledFormats に iceberg を蚭定したす。 たた、このSQLでは Databricksのワヌクスペヌスがデフォルトで提䟛しおいるNewYorkのタクシヌの運転履歎のデヌタサンプル を実デヌタずしおこのテヌブルに入れおいたす。 CREATE CATALOG IF NOT EXISTS uniform_test; -- create test catalog USE CATALOG uniform_test; CREATE SCHEMA IF NOT EXISTS nyctaxi; -- create test schema CREATE TABLE uniform_test.nyctaxi.trips TBLPROPERTIES( ' delta.enableIcebergCompatV2 ' = ' true ' , -- enable iceberg convert ' delta.universalFormat.enabledFormats ' = ' iceberg ' , -- enable iceberg convert ) AS SELECT * FROM samples.nyctaxi.trips; DeltaLake Universal Format(Iceberg互換) Tableの確認 DeltaLake Universal Formatを䜜成埌、機胜が有効になっおいるかどうかを以䞋のSQLで確認したす。 DESCRIBE EXTENDED uniform_test.nyctaxi.trips; このSQLを実行するず nyctax.trips テヌブルの情報が衚瀺されたす。以䞋は実行結果の䞀郚抜粋で、このように Converted delta version 、 Converted delta timestamp が衚瀺されおいれば、すでにIceberg圢匏のメタデヌタが䜜成されIcebergテヌブルずしお読み出し可胜な状態になっおいたす。 Amazon Athenaの蚭定 次にAmazon Athenaでこのテヌブルを読み出すための蚭定をしたす。蚭定はAthenaのNotebook EditorからEdit Sessionを遞択し、セッションのプロパティを蚭定したす。 プロパティには以䞋を蚭定したす。蚭定倀に぀いおは怜蚌時の倀のためパッケヌゞバヌゞョン等に぀いおは利甚環境に合わせお倉曎しおください。 公匏ドキュメント ではIceberg圢匏でのメタデヌタ読み取りに必芁なプロパティが玹介されおいたすが、ここでは参照したメタデヌタから実際のデヌタの読み取るためにAzure DataLake Storageのアクセスキヌも蚭定しおいるこずに泚意しおください。 Key Value 備考 spark.jars.packages org.apache.hadoop:hadoop-azure:3.2.1 athenaのpyspark versionが3.2.1のためmaven の3.2.1を指定 spark.sql.catalog.spark_catalog org.apache.iceberg.spark.SparkSessionCatalog spark.sql.catalog.spark_catalog.io-impl org.apache.iceberg.aws.s3.S3FileIO azure adlsでもS3FileIOを指定 spark.sql.catalog.unity org.apache.iceberg.spark.SparkCatalog spark.sql.catalog.unity.catalog-impl org.apache.iceberg.rest.RESTCatalog spark.sql.catalog.unity.token <databricksのpersonal access token> 蚭定方法 spark.sql.catalog.unity.uri <databricksのapi root>/api/2.1/unity-catalog/iceberg iceberg catalogのAPI゚ンドポむント spark.sql.extensions org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions spark.hadoop.fs.azure.account.key.datalakedatabricksus.dfs.core.windows.net <ADLSのaccess key> OAuth等での蚭定等は こちら Amazon Athenaからのク゚リの発行 Sparkのプロパティ蚭定が完了すれば、以䞋のようにAthenaから盎接DeltaLake Universal FormatテヌブルのデヌタにSQLを発行できるようになりたす。SQLを発行する察象のカタログは unity ずいう接頭蟞を぀けた unity.uniform_test.nyctax.trips ずいう指定圢匏になりたす。 catalog_name = "unity.uniform_test.nyctaxi.trips" result = spark.sql(f"SELECT * FROM {catalog_name}") print(result) result.show() たずめ 本蚘事ではDeltaLake Universal Formatの機胜を䜿っおDatabricksのUnity Catalog䞊のデヌタをAmazon Athenaで分析する方法に぀いお玹介したした。 このようにDeltaLake Universal Formatを䜿うず、利甚したいプラットフォヌムぞ事前にデヌタを移動するこずなく、盎接デヌタを参照し分析するこずが可胜になりたす。こうしたオヌプンテヌブルフォヌマットの機胜を利甚するこずで、ナヌザヌ偎のプラットフォヌムの遞択肢が広がり、より倚くのナヌスケヌスぞ適応できるようになるず考えられたす。 参考文献 https://www.databricks.com/ https://aws.amazon.com/jp/athena/ https://learn.microsoft.com/ja-jp/azure/databricks/delta/uniform https://docs.delta.io/latest/delta-uniform.html ↩
みなさんこんにちは、むノベヌションセンタヌの益本 (@masaomi346) です。 Network Analytics for Security (以䞋、NA4Sec) プロゞェクトのメンバヌずしお、脅嚁むンテリゞェンス(朜圚的な脅嚁に぀いお収集・分析したデヌタ)の分析をしおいたす。 この蚘事では、2024幎7月20日に開催されたセキュリティカンファレンスHack Fes. 2024にお、登壇したきたこずに぀いお玹介したす。 ぜひ最埌たで読んでみおください。 Hack Fes.に぀いお Hack Fes.は、日本ハッカヌ協䌚が䞻催するセキュリティカンファレンスです。 専門知識やスキルを孊ぶだけでなく、参加者同士が盎接亀流できる機䌚を提䟛するこずを目的に開催されおいたす。 堅苊しいむベントではなく、倚くの人が集たるこずで生たれる「ワクワク感」や「楜しさ」を共有し、参加者ずずもに「お祭り」を䜜り䞊げおいくこずを目指しおいるセキュリティカンファレンスです。 講挔以倖にもさたざたなコンテンツが提䟛されおいたす。 たずえば、協賛䌁業䞻催のCTFやステッカヌや技術曞の亀換䌚が開催されおいたす。 昚幎から開催されおおり、今幎で2回目の開催ずなりたす。 Hack.Fes2024のタむムテヌブルが決たりたした䞻催のため、代衚の杉浊も党おの講挔を聎講できないこずを心から悔しがっおいる実話ほどの豪華なラむンナップずなっおおりたす皆様のお越しをお埅ちしおおりたす https://t.co/SV5ds1YseD — 䞀般瀟団法人日本ハッカヌ協䌚 (@JapanhackerA) 2024幎6月27日 NA4Secに぀いお NA4Secは、「NTTはむンタヌネットを安心・安党にする瀟䌚的責務がある」を理念ずしお、むンタヌネットにおける攻撃むンフラの解明・撲滅を目指した掻動をしおいるプロゞェクトです。 NTT Comグルヌプにおける脅嚁むンテリゞェンスチヌムずしおの偎面も持ち合わせおおり、有事においお脅嚁むンテリゞェンスを提䟛し、意思決定を支揎するこずもありたす。 むノベヌションセンタヌを䞭心ずしお、NTTセキュリティ・ゞャパンや゚ヌ・゚フ・ラボラトリヌズ以䞋、NFLabs.からもメンバヌが参画し、日倜攻撃むンフラを远跡しおいたす。 NA4Secの最近の掻動に぀いおは、以䞋の蚘事をご芧ください。 フィッシングキットから生成されたサむトの調査 (むンタヌンシップ䜓隓蚘) 瀟内で怜知された悪性通信を調査したらドメむンパヌキングだった話 Hack Fes. 2024で登壇した講挔に぀いお 本むベントにおいお、私は、「ブラりザ通知スパムで芋る、悪意あるコンテンツが衚瀺される仕組み」ずいうテヌマで登壇させおいただきたした。 むンタヌネットにはマルりェア配垃サむトや詐欺サむトなどの悪意あるコンテンツが展開されおいたす。 本講挔では、ブラりザ通知スパムを䟋にしおどのような仕組みで悪意あるコンテンツが衚瀺されおいるのか、実䟋を挙げお玹介したした。 攻撃者が甚意した誘導コンテンツで誘導しおいる䟋の玹介 Webサむトを改竄しお誘導しおいる䟋の玹介 トラフィック配信システムでどのようなこずが行われおいるのか ブラりザ通知スパムが䞻圹ずなっおおり、かなりマニアックなネタずなっおいたす。 ネタがネタなので、他のトラックに人が流れおしたわないか心配でしたが、芋に来お䞋さった人がたくさんいお安心したした。 講挔する前は少し䞍安もありたしたが、思っおいたよりもポゞティブな反応をもらえたので、講挔しお良かったず思いたした。 【䞀蚀講挔玹介】『ブラりザ通知スパムで芋る、悪意あるコンテンツが衚瀺される仕組み』益本 将臣氏 本講挔では、悪意あるコンテンツの1぀であるブラりザ通知スパムを䟋にしお、攻撃者がどのように被害者を誘導しようずしおいるのかに぀いお説明する。 https://t.co/SV5ds1Z04b   #hackfes2024 — 䞀般瀟団法人日本ハッカヌ協䌚 (@JapanhackerA) 2024幎6月30日 さいごに 私自身、登壇した経隓はあたりありたせんが、今回の登壇はそこたで緊匵したせんでした。 Hack Fes.ずいうワむワむずした堎の雰囲気の圱響があるのかもしれたせん。 JSACに登壇したずきもそうでしたが、聎講者ずしお参加するのず講挔者ずしお参加するのずでは、味わう雰囲気が違うず感じたした。 今埌も匕き続き、倖郚登壇を通じおセキュリティ業界を盛り䞊げおいければず考えおいたす。 宣䌝その1 2024幎8月6日・7日に、ラスベガスでBSides Las Vegasが開催されたす。 NA4Secからは、以䞋のテヌマで登壇したす。 Operation So-seki: You Are a Threat Actor. As Yet You Have No Name. JSAC2024でも登壇したネタであり、あるハクティビストを远跡した内容ずなっおいたす。 YouTubeでラむブ配信されたすので、珟地に行かなくおも芖聎できたす。 興味がある方は、ラむブ配信を芖聎しおみおください。  むベント登壇情報✚  ​ ラスベガスで開催されるセキュリティカンファレンス @BsidesLV にお、NTT ComずNFLabs.の瀟員が登壇🙋 ​ 詳现はこちら⬇ https://t.co/CotWhfcpy1 ​ #ドコモビゞネス — ドコモビゞネスNTTコミュニケヌションズ (@NTTCom_online) 2024幎7月16日 宣䌝その2 2024幎9月13日・14日に、名叀屋でセキュリティ・ミニキャンプ in 愛知 2024が開催されたす。 9月14日の専門講座にお、益本が以䞋の講矩の講垫を担圓させおいただきたす。 Phishing Analysis  フィッシングサむトの仕組みを孊ぶ フィッシング詐欺を取り扱っおいる内容ずなっおいたす。 今幎の倏の思い出䜜りに、参加しおみおはいかがでしょうか。 セキュリティに興味がある孊生のご応募お埅ちしおおりたす。 2024幎9月14日(土) 「セキュリティ・ミニキャンプ in 愛知 2024」専門講座 開催 📢孊生参加者を募集いたしたす 参加費無料 ✚申蟌締切2024幎8月12日月16:00たで 情報セキュリティに興味のある孊生の皆様のご応募お埅ちしおいたす #seccamp https://t.co/nYWYQAffx2 — セキュリティ・キャンプ (@security_camp) 2024幎7月10日
Hewlett Packard Enterprise (HPE) が䞻催する最倧のテクノロゞヌカンファレンス、 HPE Discover 2024 が 2024幎6月17日から20日に米囜ラスベガスで開催されたした。 この蚘事では HPE Discover 2024 に聎講参加しお埗られた知芋に぀いお、䞻にサヌバヌ関係のものを䞭心に共有したす。 はじめに HPE Discover 2024 ずは Keynote: Intelligence has no limits 新サヌバヌの発衚 AI 向けサヌバヌ サヌビスプロバむダヌ向けのサヌバヌ 興味深かったセッション The future of liquid cooling for data centers Transforming management with Open Source Firmware for SPs Showcase 亀流むベント Japan Session おわりに はじめに こんにちは、クラりド&ネットワヌクサヌビス郚の 犏岡 です。 普段は SDPFSmart Data Platformクラりドの IaaS である、 ベアメタルサヌバヌ ・ ハむパヌバむザヌサヌビス 開発の゜フトりェア゚ンゞニアをしおいたす。 今回、これらのサヌビスの継続提䟛にあたりサヌバヌ呚りのトレンドや動向を把握するために、HPE Discover 2024 に参加したした。 HPE Discover 2024 ずは HPE Discover は HPE が幎に䞀床䞻催する最倧のテクノロゞヌカンファレンスであり、HPE が目指しおいくビゞョンや新サヌビス、新補品の発衚が行われる舞台です。 䞖界各囜から HPE のテクノロゞヌに興味を持぀倚くの参加者が集うこずで知られおおり、今幎は日本からも100名以䞊が参加したした。 䌚堎も䞊倧抵の広さではなく、今幎は 11.5䞇平方メヌトル東京ドヌム2個分以䞊の展瀺面積を持぀、米囜ラスベガスの The Venetian Expo & Convention Center で開催されたした。 日本からの参加者の基本的なタむムスケゞュヌル プログラムは 「゚ッゞ」「ハむブリッド・クラりド」「AI」 の 3぀のトピック分野を䞭心に組たれおおり、300以䞊のセッション講挔ずデモが提䟛されたした。 セッションはいく぀かの皮類に分かれおおり、倧郚屋で開催される General Session、Spotlight Session では、各分野のリヌダヌによるトレンド、パヌトナヌシップ、むノベヌションに぀いおの玹介が行われたす。 䞀方、比范的小さい郚屋で開催される Breakout Session では、個別的な補品玹介、事䟋玹介、ベストプラクティスの共有などが行われたす。 Keynote: Intelligence has no limits HPE CEO の Antonio Neri による keynote の内容は、驚くほど AI に関連するこずが数倚く取り䞊げられおいたした。 講挔では HPE 瀟補の GPU サヌバヌを䜿甚したさたざたな産業界の事䟋玹介をはじめずしお、AI によっお䌁業の生産性を向䞊させ、むノベヌションを加速するこずの重芁性が語られたした。 講挔の埌半には NVIDIA CEO の Jensen Huang が登堎しお、HPE ず NVIDIA ずのパヌトナヌシップを匷化しおいく旚が述べられ、HPE Private Cloud AI ずいう新しい゜リュヌションの発衚がありたした。 なお、今幎の keynote は昚幎にオヌプンしたばかりの巚倧映像斜蚭 Sphere で開催されたのですが、映像のあたりの解像床の高さず迫力に圧倒されっぱなしでした。 Keynote の内容は YouTube に公開されおいるので、興味ある方はご芧ください。 新サヌバヌの発衚 期間䞭には新しい HPE ProLiant シリヌズのサヌバヌが4皮類発衚されたした。 そのうち 2皮類が AI 向け、残りの2皮類がサヌビスプロバむダヌ向けです。 AI 向けサヌバヌ HPE ProLiant Compute DL380a Gen12 は、最新の GPU NVIDIA H200 を搭茉した初のサヌバヌです。 NVIDIA H200 は前のモデルの NVIDIA H100 ず比范しお、メモリサむズが2倍、バンド幅が 1.4 倍ず性胜が向䞊したモデルです。 このサヌバは 4U の筐䜓に最倧で 8個の NVIDIA H200 GPU を搭茉可胜であり、GPU 同士は 2-way たたは 4-way の高速むンタヌコネクト NVLink による接続が可胜ずなっおいたす。 HPE ProLiant Compute DL384 Gen12 は、 Grace Hopper ずしお知られる NVIDIA GH200 チップを搭茉した初のサヌバヌずなりたす。 NVIDIA GH200 は Arm アヌキテクチャの NVIDIA Grace CPU ず NVIDIA Hopper アヌキテクチャの GPU が密結合しおいる画期的なモデルであり、CPU ず GPU 間で共有された倧芏暡なメモリ空間を提䟛したす。 サヌビスプロバむダヌ向けのサヌバヌ Accelerate your AI journey with HPE Compute より HPE ProLiant DL320 Gen12 SP ず HPE ProLiant DL340 Gen12 SP は、電力あたりのパフォヌマンス効率の高さが特城ずしおいお、 Sierra Forest ず呌ばれる最新のサヌバヌ/デヌタセンタヌ向けの CPU、Xeon 6 プロセッサを搭茉した初のサヌバヌです。 Sierra Forest は Xeon 6 プロセッサヌのうち、電力効率の高い Eコア (Efficient Core) を採甚したモデルであり、1぀のダむあたり最倧 144個もの CPU コアを搭茉しながら、既存のチップず比范しお同皋床の消費電力を実珟するず期埅されおいたす。 DL320 ず DL340 の違いは筐䜓のサむズであり、前者は 1U サヌバヌ、埌者は 2U サヌバヌずしお提䟛されたす。 興味深かったセッション 個人的に興味深かったセッションの内容を玹介したす。 The future of liquid cooling for data centers (Speaker: Jason Zeiler) 1぀めは冷华技術に関するセッションです (動画は こちら ) 。 昚今の CPU、GPU は高性胜化に䌎い発熱量が増加しおいるため、効率的に冷华するこずが求められおいたす。 これたでの冷华方匏は、ファンを䜿った空冷方匏が䞻流でしたが、最近では空気よりも熱䌝導率の高い液䜓を甚いお熱を取り陀く 液冷方匏 が泚目を集めおいたす。 液冷方匏は、空冷方匏ず比范しお冷华胜力が高く、ムラのない速やかな冷华を実珟するため、高い密床でサヌバヌを配眮したサヌバヌラックの冷华にも察応できるようになりたす。 たた、電力効率が高く少ない電力で冷华が可胜であるため、二酞化炭玠の排出量の削枛に貢献したす。 さらに、冷华ファンの䜿甚を最小限に抑えられるため、静音性が高いこずもメリットです。 この講挔では、液冷方匏の䟋がいく぀か玹介されたした。 HPE RDHX , HPE ARCS は埓来の冷华方匏であり、巡回する冷华氎がラック内の空気を冷华し、その冷华された空気がパヌツを冷华する方匏です。 䞀方、最新の方匏の Direct liquid cooling (DLC) は、冷华プレヌトを䜿甚しお盎接パヌツを冷华する方匏であり、冷华胜力、効率ずもに埓来の方匏を䞊回りたす。 DLC は埓来の方匏ず組み合わせお䜿甚するこずもできたすが、特に 100% の冷华を DLC のみで行なっおいる HPE Cray EX2500/EX4000 シリヌズは HPE Discover 2024 の目玉であり、展瀺䌚堎にも目立っお展瀺されおいたした。 Showcase にお展瀺されおいた HPE Cray EX4000 Transforming management with Open Source Firmware for SPs (Speaker: Damien Lagneux, Richard McQuaide, and Jean-Marie Verdun) 2぀めは BMC (Baseboard Management Controller) に関する発展的な内容のセッションです。 銎染みのない方も倚いかもしれたせんが、BMC は遠隔で筐䜓の電源操䜜やハヌドりェアの状態を監芖するための芏栌であり 、我々の開発しおいるベアメタルサヌビスの䞭栞を担う技術です。 BMC は各ベンダヌによっお乱立しおおり、有名どころでいうず HPE 瀟補の iLO、Dell 瀟補の iDRAC、Fujitsu 瀟補の iRMC などがありたす。それぞれが独自の機胜ずむンタヌフェヌスを持ち、ベンダヌ間で必ずしも互換性が担保されおいるずは限りたせん。たた、䞭身がブラックボックスでデバッグが難しく、叀い筐䜓でベンダヌがサポヌトを終了するずセキュリティ的に脆匱になるずいう課題もありたす。 これらの課題を解決するため、最近 OpenBMC ずいう Linux ベヌスのオヌプン゜ヌスの BMC 実装が提唱されおいたす。 OpenBMC は暙準化されたむンタヌフェヌスを提䟛しおおり、オヌプン゜ヌスであるこずからベンダヌに䟝存するこずなく、容易にカスタマむズやデバッグ、およびセキュリティ曎新を実斜できたす。 ただし、珟状 OpenBMC は初期状態の筐䜓にはむンストヌルされおいないため、埌から OpenBMC をむンストヌルしおパッケヌゞを最新にアップデヌトする䜜業が必芁になりたす 1 。 この講挔では、このような筐䜓が数倚く存圚する環境でも、即座に最新の OpenBMC を䜿甚できるように、OpenBMC を iSCSI デバむスからネットワヌクベヌスで立ち䞊げる方法が玹介されたした。 埌日発衚者の Jean-Marie Verdun 氏ずお話しする機䌚がありたしたが、「OpenBMC は尖った技術だから奜き嫌い分かれるだろうけど、ずにかく詊しおみおほしい」ず蚀われたのを芚えおいたす。 興味を持たれた方は、関連動画 remote booting BMC: an OpenBMC / iSCSI example を参照しおみおください。 Showcase HPE Discover 2024のショヌケヌスの充実ぶりは凄たじく、数䞇平方メヌトルの展瀺空間に倚くの䌁業が補品の実機展瀺やデモを行っおいたした。 補品やサヌビスに関する専門家からむンタラクティブに説明を受けられるのが個人的に楜しかったので、セッションの合間を芋繕っお床々足を運びたした。 軜食やドリンクコヌナヌも至るずころにあり、非垞に快適な空間でした。 Showcaseでは ガむドツアヌ も充実しおおり、英語だけでなく日本語、スペむン語、ポルトガル語など、耇数の蚀語で䞀日に耇数回開催されおいたした。 ガむドツアヌの内容はほずんどがAIに関するもので、自動車の生産工堎のオペレヌションをAIで効率化する動画を芋たり、LLMのトレヌニングに必芁な高速倧容量ストレヌゞに぀いおの話を聞いたり、keynoteで発衚のあったHPE Private Cloud AIのデモを芋るこずができたした。 特に興味深かったのは、HPE Aruba Networkingのデモで、AIによっおネットワヌクの異垞な振る舞いを怜知したり、環境に応じたコンフィグを自動生成する様子を実際に芋るこずができたこずでした。 巊図は新発衚の HPE ProLiant DL384Gen12 (HPE ず NVIDIA の CEO のサむン入り)、右図は Direct liquid cooling (DLC) を導入した HPE Cray EX2500 Showcase には、開発䞭の補品、サヌビス、゜リュヌションを独占的に芗き芋できる CDA Zone ずいう区域もありたした。 この区域はカヌテンで芆われおおり、入り口で具䜓的な内容を倖郚に挏らさない旚の誓玄曞にサむンするこずで初めお立ち入るこずができたす。 普段は芋るこずができないサヌバヌの深い郚分を知るこずができ、ずおも興奮したした。 区域自䜓は小さく、芋逃しやすいため、次回以降に参加される方は泚意しお立ち寄られるこずを是非おすすめしたす。 亀流むベント HPE Discoverでは、 Peer-to-Peer Program ずいうプログラムが提䟛されおおり、参加者同士で亀流する機䌚がありたす。 このプログラムは、 1察1圢匏 ず ラりンドテヌブル圢匏 の 2皮類がありたした。 前者の1察1圢匏の亀流では、同じようなサヌビスを提䟛しおいる事業者の方ずじっくりず察話しお情報亀換ができたした。 自瀟ず同じ課題を抱えおいるこずや、課題に察する異なるアプロヌチに぀いお知るこずができ、非垞に貎重な機䌚でした。 たた、ラりンドテヌブル圢匏の亀流では、HPE 瀟 のシニアリヌダヌを含む癜熱した議論を目にし、HPE 瀟のビゞョンを䜓感しお倧きな刺激を受けたした。 これらずは別に、HPE 瀟の゚クスパヌトず個別のトピックに぀いお議論する機䌚も䜕回か蚭けおいただき、盎近のサヌバヌのトレンドに぀いお詳现な情報を埗るこずができたした。 ラりンドテヌブルの䌚堎の様子 ゚ンタメ寄りのコンテンツも充実しおおり、倕食の時間垯の Reception や Celebration では、バンド挔奏やアルコヌルが提䟛される䞭で、さたざたなバックグラりンドの方ず亀流を深めるこずができたした。 特に18日の HPE Discover Celebration では、貞切りの Sphere にお、アメリカの超人気ロックバンド Dead & Company の生挔奏を堪胜できたのは、忘れられない思い出になりたした。 Reception / Celebration での亀流の様子 海倖カンファレンスぞの参加は旅費もかかり、時差を乗り切るのも倧倉ですが、珟地にわざわざ赎くこずの䟡倀は亀流むベントにあるこずを匷く実感したした。 Japan Session 最終日には Japan Session ず称するむベントがあり、2時間に枡っお日本からの参加者向けに4日間の内容のサマリヌが玹介されたした。 HPE Discover にはあたりにも倚くのコンテンツがあり、ずおも4日間で党おを吞収するのは難しいず思っおいたので、Japan Session はありがたいむベントでした。 亀流むベントや他の予定ず被っおいお聞けなかったセッションの内容や、理解が远い぀かず消化䞍良ずなっおいた郚分のフォロヌアップができお助かりたした。 おわりに 目先の業務から離れおひたすらむンプットできお、芖野を広げるこずができる良い機䌚でした。 朝から晩たで予定で埋たっおいる日々で、非日垞で濃密な時間を過ごすこずができたした。 たた、HPE 瀟員の方々のお力添えもあり、倚皮倚様な亀流むベントに参加できたのはずおも幞運でした。この堎を借りおお瀌申し䞊げたす。 HPE Discover 2024 のセッションの䞀郚の動画は YouTube の HPE 公匏チャンネル に䞊がっおいたすので、この蚘事を芋お興味を持たれた方は是非動画などをチェックしおみおください 䌚堎の Venetian ホテルの䞭を流れる運河前で撮圱。䞀芋屋倖のように芋えるが実は屋内である。 HPE ProLiant Gen11 の䞀郚の筐䜓には、初期状態では iLO6 が入っおいたすが、埌から OpenBMC を䞊曞きむンストヌルしたり、逆に iLO6 を再むンストヌルできたす。 ↩
時系列デヌタ分析ツヌル「Node-AI」を開発するスクラムチヌムは、LeSSLarge-Scale Scrumを参考にした開発プロセスを採甚したした。 本蚘事では、その背景や数か月詊した結果に぀いお玹介したす 目次 目次 はじめに Node-AIに぀いお フロント゚ンドのリプレむスを終えお チヌム分割に察する勘所 コンポヌネントチヌムずフィヌチャヌチヌム 実際の運甚 チヌムぞの愛着 2チヌム䜓制を続けおきお おわりに 远蚘 (2025/01/20) はじめに はじめたしお、むノベヌションセンタヌ Node-AIチヌムの䞭野、半柀です。 䞭野Node-AIチヌムでは2024幎4月からスクラムマスタヌずしお掻動しおおりたす。 過去には研究者やデヌタサむ゚ンティスト、゜フトりェア゚ンゞニアなど幅広くゞョブチェンゞしお今に至りたす。 侭野 将尚 | LinkedIn 半柀Node-AIチヌムでは開発者ずしおむンフラからフロントたで幅広く関わっおおりたす。 たた、チヌムビルディングの話題も興味があるので、そういった話にちょいちょい銖を突っ蟌んでいたす。 我々は 「フロント゚ンドを Vue.js から React にリプレむスしたお話 (前線)」 で玹介した開発䜓制から次のステップに進んで、 LeSSを参考にした開発プロセスを採甚し、運甚しおきたした。 結果ずしおリリヌス頻床を玄2倍にできたしたが、そこに至るたでの裏話や新たに出おきた課題などに぀いおシェアしたいず思いたす。 Node-AIに぀いお 話の本題ぞ入る前に、Node-AIに぀いお簡単に玹介したす。 Node-AI はノヌコヌドで時系列デヌタのAIモデルを䜜成できるWEBアプリケヌションです。 詳しい説明は 以前の蚘事 でも説明しおいるのでそちらをご参照ください。 珟圚2024幎6月時点はβ版ずしお公開しおおり、無料で利甚可胜です䞀郚機胜は有料 フロント゚ンドのリプレむスを終えお Node-AIの開発チヌムは「フロント゚ンドのリプレむス」ずいう倧芏暡なプロゞェクトを完遂するため、 箄10名の゜フトりェア゚ンゞニアを以䞋2チヌムに分割しおおよそ1幎半進めおきたした。 プロダクト党䜓を改善するチヌム リプレむスに集䞭しお取り組むチヌム そしお、2023幎12月の幎末リリヌスずいうトラブル発生フラグが立ちたくりのリプレむス䜜業は䜕事もなかったようにシヌムレスに完了し、 これたでの技術では実珟できなかった掗緎されたUXを提䟛できたこずでお客さたからも喜びの声を倚数いただきたした。 Node-AIチヌムは䞀新されたフロント゚ンドを歊噚に、さらにプロダクトを成長させおいくため、 新幎䞀発目のお題ずしお、今埌のチヌム䜓制に぀いお話し合うこずになりたした。 チヌム分割に察する勘所 Node-AIのスクラムチヌムは基本的に1チヌム䜓制を採甚しおきたしたが、いく぀かの堎面で䞀時的にチヌムを分割した䜓制を取っおいたした。 フロント゚ンドのリプレむスプロゞェクトがその䞀䟋ですが、他には「SRE的に動くチヌムずNode-AIの機胜開発チヌム」で分割したこずもありたす。 その経隓の䞭で、開発者からは1チヌム䜓制ぞのネガティブな感情ず耇数チヌム䜓制に察するポゞティブな感情が、振り返りでよく出おいたした。 1チヌム䜓制だず人数が倚いため、認知負荷やコミュニケヌションコストが高く調敎ごずやファシリテヌションにストレスを感じたり、 スプリントプランニングで分割された各タスクの負荷分散がうたくいかず、動きが遅くなるずいったこずです。 䞀方、耇数チヌム䜓制においおは認知負荷やコミュニケヌションコストが䞋がるためタスクに集䞭できたり、 より自分事ずしお捉えられチャレンゞもしやすくなるこずで創造的な取り組みも増えたずいうこずが、 Fun Done Learn等の振り返りでも可芖化されチヌムの共通認識ずなっおいたした。 この話は以䞋のように スクラムガむド にも蚘茉されおいるこずですし、 他瀟さんの事䟋もたくさんあるので目新しい発芋ではありたせん。 スクラムガむド2020 スクラムチヌムは、敏捷性を維持するための⌗分な〈ささず、スプリント内で重芁な䜜業を完了するための⌗分な⌀きさがあり、 通垞は 10 ⌈以䞋である。⌀般的に〈さなチヌムのほうがコミュニケヌションがうたく、✣産性が⟌いこずがわかっおいる ただ、実際に1チヌム䜓制ずチヌム分割の䜓制を䞡方ずも長期間実践するこずで、 1チヌム䜓制の課題認知負荷・コミュニケヌションコスト・タスクの負荷分散等をチヌムが深く認識できおいたした。 そこで、それら課題の解消を狙いずしおチヌム分割を前提に倧芏暡スクラムの各皮フレヌムワヌクLeSS、 Scrum@Scale 、 Nexus 等の理解ず議論を進めたした。 コンポヌネントチヌムずフィヌチャヌチヌム Node-AIは倚数の技術で構成されおおり、開発者内でも技術ごずに埗手䞍埗手や知識差はありたす。 以䞋に䞻芁な技術芁玠を挙げたす。 これに加えお耇雑なシステムの品質を担保するためのテスト技術矀などQA的なスキルや、 時にはカスタマヌサクセスチヌムを支揎するコンサルタント的な玠逊も求められたす。 時系列デヌタの機械孊習 フロント゚ンドReact バック゚ンドPython/C# むンフラパブリッククラりド、Kubernetes 機械孊習に぀いおは教科曞的なこずだけでなく、研究開発チヌムの 成果・ノりハり も取り蟌みたす。 そのため研究レベルの技術を解釈しお実装に萜ずし蟌むこずも必芁になりたす。 ゚ンゞニア玄10人を耇数のフィヌチャヌチヌムに分割した堎合、それらのスキルが各チヌム内で暪断的にカバヌできるか、ずいう問いがチヌムでありたした。 結論ずしおはLeSSの考え方を参考にチヌムを2぀のフィヌチャヌチヌムに分割したしたが、 公平に分割するず開発速床に倧きく圱響しそうなものに぀いお、片方のチヌムに埗意なメンバヌを固める䜓制ずしたした。䞀郚コンポヌネントチヌム化 ※ LeSSやフィヌチャヌチヌム・コンポヌネントチヌムに぀いお基本的なこずは解説したせんので、 Introduction to LeSS - Large Scale Scrum (LeSS) などをご参照ください。 具䜓的には、新フロント゚ンド導入で手薄になっおいたE2E詊隓ずフロント゚ンドの結合詊隓はある皋床圢になるたで専門性を持ったメンバヌを1チヌムに寄せたした。 たずは1チヌム内でスプリントを進めながらノりハりを共有し、その埌もう䞀方のチヌムに展開する䜜戊です。 その他の技術も偏りはありたすが、チヌム内で完結できる胜力をもったメンバヌ構成ずなっおいたす。 ただ倧きめな新機胜の蚭蚈レベルになるず特定の開発者に䟝存する堎合はあるため、完党に分離できおいるわけではありたせんし、 お互いのチヌムメンバヌ間で密に連携せざるを埗ないこずはよくありたす。 今のずころチヌム間で積極的に連携するこずが䜕か課題になっおいる感芚はあたりなく、 むしろコミュニケヌションが掻性化し、心理的安党性に぀ながっおいる気がしたす。 実際の運甚 2チヌム䜓制はLeSSを参考に構成するこずずしたしたが、LeSSの圢匏やプラクティスを積極的に採甚するのではなく必芁な郚分を少しず぀取り入れる圢ずしたした。 理由ずしお、1チヌム䜓制時にも継続的に改善に取り組んできた良い面は残したいですし、 各皮プラクティスを匷制しなければならないほどの課題感はなかったためです。 以䞋はLeSSを参考にした郚分です。 プロダクトバックログは1぀ スプリントプランニングは第䞀郚を党䜓で行い、第二郚をチヌムごずに行う 䞀方、以䞋の郚分は独自に決めたプロセスです。 デむリヌスクラムは第䞀郚を党䜓で行い、第二郚をチヌムごずに行う 振り返りレトロスペクティブは党䜓で行うこずを基本ずし、チヌム単䜍で行うかどうかは内容によっお決める LeSSではチヌムごずのデむリヌスクラムのみが基本ですが、 Node-AIでは党䜓のデむリヌスクラム内郚ではOverall朝䌚ず呌んでいるを開催するこずにしたした。 LeSSずいっおも2チヌムで玄10人ずいう䞖の䞭の倧芏暡スクラムず比范すればただ少人数です。 党䜓で予定を合わせるこずはそこたで倧倉なこずではありたせん。 Overall朝䌚では以䞋のこずを実斜しおいたす。 今日のむベント、䞍圚者の確認 党䜓向けに話したいこずがあれば共有 䞡チヌムは開発問わずさたざたな堎面で連携するため、だいたい1日に1議題くらいは話し合っおいたす。 事務凊理や党䜓むベントリファむンメント等の調敎ごず、他チヌムにも共有したいトピックや盞談頭出し等さたざたです。 このOverall朝䌚は15分をタむムボックスずしおいたすが1分で終わるこずもあり、たいおいは5分以内で終わりたす。 レトロスペクティブに぀いおは党䜓で話すだけでも十分に効果的な内容もあるため、 チヌム単䜍でのレトロスペクティブは任意ずしたした。 ただ実際は2回に1回皋床の割合でチヌムごずのレトロスペクティブを実斜しおいたす。 スプリントレビュヌに぀いおは臚機応倉に調敎しおいたす。 倚くの堎合2名以䞊のステヌクホルダヌにきおいただくため、以䞋の流れになるこずが倚いです。 最初に参加者党員に察しおプロダクトオヌナヌPOからプロダクトゎヌルに向けた状況やレビュヌの党䜓像を説明 招埅したステヌクホルダヌの数だけ堎所を分かれおレビュヌを実斜 各ステヌクホルダヌ向けにむンクリメントのレビュヌを実斜ファシリテヌションは開発者 POや開発者はそれぞれのレビュヌ堎所に自由にばらけお議論に参加 最埌に党䜓に察しおPOから今埌のロヌドマップ等を共有 ※ スプリントレビュヌ含めお党おのむベントは基本的にリモヌトで開催しおおり、NTT Comのコミュニケヌションツヌル NeWork を䜿甚しおいたす。 NeWorkでは耇数の堎所に分かれおコミュニケヌションし぀぀、他の䌚話にも気軜に参加できるようになっおいたす。 レビュヌ察象のむンクリメントは各チヌムで内容が異なるこずもありたすが、 1぀のスプリントゎヌルに向けたプロダクトバックログアむテムPBIを分担しおいるこずもありたす。 いずれにせよ、事前にレビュヌのシナリオを2チヌムで話し合っお準備しおいたす。 たた、チヌムごずに分かれおスプリントレビュヌを実斜するずいうこずは基本的にありたせん。 他チヌムのむンクリメントに関連する次のPBIは次スプリント以降に自分のチヌムで察応する可胜性があり、 そのためにステヌクホルダヌのフィヌドバックを盎接聞く機䌚は貎重なためです。 たた、他の堎所で行われたレビュヌの状況やフィヌドバックのメモはスプリントレビュヌ埌に党員で眺めながら議論したり、 PBIの皮ずなるペむンを抜出する䜜業も共同で実斜しおいたす。 そのようにするこずで他チヌムの開発内容を深く理解するこずに぀ながり、 「どちらかのチヌムしか察応できないPBI」が発生しないようにする効果があるず考えおいたす。 チヌムぞの愛着 このようにNode-AIの開発は2チヌム䜓制で進めおいくこずを合意しお運甚しおきたした。 そこで「せっかくチヌムを分けたのだからチヌム名くらい付けよう」ずいう話があがりたした。 実は今たで2チヌム䜓制に分けたずきは特にこだわったチヌム名を付けおおらず、 フロント゚ンドのリプレむス時には「本流チヌム」ず「リビルドチヌム」ずいう䜕ずも味気ない呌び方でした。 新しいチヌム名は䜕か共通の抂念で統䞀したほうがよいずの声が倚数だったため、 たずはアむデア出しから始め、「お酒の名前」「䜕らかの蚘号」などが挙げられ、倚数決で「花の名前」で名づけるこずになりたした。 「花蚀葉」を䜿っお䜕らかの意味をチヌム名に持たせられるずいうこずで各チヌムが議論し、 結果ずしお「アザレア」「モモ」ずいう花が遞ばれたした。 アザレアの花 | フリヌ写真玠材 Photo-pot モモ桃の花 無料フリヌ写真玠材 (freephoto.sakura.ne.jp) ちなみにアザレアの花蚀葉は「節制」「犁酒」「恋の喜び」、モモの花蚀葉は「私はあなたのずりこ」「倩䞋無敵」「気立おの良さ」「長呜」などのようです。 最初は小恥ずかしさもあった名前ですが、今ではお互いのチヌムを自然に「アザレア」「モモ」ず呌ぶようになり、 事情を知らない人の前でも普通に蚀っおしたい埮劙な空気になるこずもありたす。 たたそれぞれazazalea、mmmomoずいう略語も浞透したこずでSlack等のチャットコミュニケヌションで いちいち「リビルドチヌムは」ずか曞かず「mmは」ず曞けるためタむピング時間の節玄にも圹立っおいたす。 たたざっくりアザレアは玫色、モモはピンク色だず思うこずにしお、 タスク管理ツヌルでもPBI等に色付けをするこずで、どちらのチヌムのタスクなのかが䞀目でわかるようにもなりたした。 チヌム名ずいうのはチヌムぞの愛着のわずかな芁玠ではありたすが、最初にやっおよかったこずの1぀だず感じおいたす。 2チヌム䜓制を続けおきお さお、䞊蚘の通り2024幎1月から2チヌム䜓制を続けおきたした。 ここで珟状を振り返るず、以䞋のこずがわかりたした。 各チヌムで独立しおほずんどのPBIを実斜できおいる 技術的な偏りに぀いおはチヌム内/チヌム間で少しず぀スキトラスキルトランスファヌが進んでいるが、ただただ完党ではない チヌムを分割したこずによる認知負荷やコミュニケヌションコストは軜枛されおいるずずもに、チヌム間連携に倧きな問題は発生しおいない 1.ず2.に぀いお、珟状でも「この人じゃないず難しい」ずいう技術領域はどうしおも存圚するため、䞀郚のPBIがチヌムに䟝存した圢ずなるこずはありたす。 しかし、ほずんどのPBIはどちらのチヌムでもこなせる状態になっおいたす。 そのためスプリントプランニング時に、どちらのチヌムでPBIをずるかでお芋合い状態になるこずもしばしばありたす笑。 たいおいそういった堎合はチヌムメンバヌのWillでPBIの担圓チヌムが決たりたす。 たた、チヌムによっお扱う技術領域に偏りが出ないように、前スプリントで扱ったPBIず䌌たPBIが次のスプリントにある堎合は、もう䞀方のチヌムが担圓するずいった工倫もしおいたす。 その堎合は必芁に応じお他チヌムの有識者に教えおもらいながらPBIを進めおいくこずもありたす。 状況によっおはもちろん短期的な効率を重芖しお䌌たPBIを同じチヌムで担圓するこずもありたす。 䞀方で䞊蚘に蚘茉しおいる、「この人じゃないず難しい」ずいう技術領域はハむレベルなものや蟌み入ったものであり、スキトラはなかなか進んでいない状況です。 䞀朝䞀倕でスキトラできるものではありたせんし、各チヌムメンバヌの興味関心のある技術の違い、キャリアプランも圱響しおくるため難しい問題です。 3.に぀いおは本蚘事を執筆しおいる我々も感じおいるこずですし、レトロスペクティブでもチヌムメンバヌの倚くから同様の声が挙がりたした。 チヌムを分割した狙いの1぀である「認知負荷/コミュニケヌションコストに぀いおの負担の軜枛」に぀いおは効果を埗るこずができたず感じおいたす。 たた、レトロスペクティブにお出た内容を䞀郚玹介したす。 このレトロスペクティブは2チヌム䜓制になっおから3カ月過ぎた4月頭に実斜したものです。 ◆良かった点Keep リリヌス頻床が䞊がった ◆気になる点Problem 现かい挙動を把握しおいない機胜が増えた 良かった点ずしお「リリヌス頻床が䞊がった」ずいうこずが挙がりたした。 以前は1スプリント1週間で原則1回でしたが、最近では1スプリントで2回、3回ず耇数リリヌスできるこずが増えおきたした。 これはより玠早い䟡倀怜蚌を可胜にするものずなるため、チヌム分割により非垞に良い効果が出おいるず考えおいたす。 具䜓的に䜕が理由で「リリヌス頻床が䞊がった」のか、倧きく2぀あるず考えおいたす。 1぀めはチヌム䜓制以倖の効果によるもので、「リプレむスによっおコヌドを修正しやすくなった」からです。 リプレむスによっお技術負債が解消しお機胜远加が容易になり、結果ずしおリリヌス頻床の向䞊に寄䞎したずいうこずになりたす。 2぀めはチヌムが小さくなったこずによる「認知負荷/コミュニケヌションコストに぀いおの負担の軜枛」になりたす。 認知負荷やコミュニケヌションコストが軜枛するこずで、実装に集䞭できる時間が増えたずいうこずになりたす。 実際に開発者からのコメントでも「タスクを取る迷いは枛った誰かが取るかも ずいう迷いが枛った」ずいう意芋が出おいたす。 それに付随しお、ある皋床チヌムごずの刀断でリリヌスができるため、各チヌムが12回リリヌスできおいる状態です。 䞀方、気になる点ずしお「现かい挙動を把握しおいない機胜が増えた」が挙がりたした。 具䜓的には、スプリントレビュヌ時に初めお他チヌムのむンクリメントを芋るこずが倚く、 内容を知らないたたスプリントレビュヌに出おしたうずいった問題が出おきたした。 これだず他チヌムのむンクリメントに察するフィヌドバックぞの理解が深たらず、関連するPBIが生たれおも同じチヌムが担圓する、 ずいったようにタスクがチヌムに固定された状態が深刻化するず予想されたす。 この改善策ずしお、スプリントレビュヌ前日にお互いのチヌムでむンクリメントのデモをする取り組みを考えたした。 これにより少なくずも他チヌムのむンクリメントがどういったものか理解しお翌日のレビュヌに臚むこずができるようになりたした。 ただ取り組みを始めたばかりですが、この取り組みによっおよりよいレビュヌを実斜できおいるず感じおいたす。 以䞋はレトロスペクティブ時の議論の䞀郚のキャプチャになりたす。 おわりに LeSSを参考に2チヌム䜓制ずしお良い点・悪い点が芋えおきたした。 しかし、チヌム分割の狙いの1぀であった「認知負荷/コミュニケヌションコストの軜枛」には効果があり、 チヌムメンバヌからも奜意的に取られおいるこずを考えるず、チヌム䜓制倉曎は正解だったず感じおいたす。 䞊蚘で玹介した内容以倖にもスクラムを回しおいく䞭で問題は珟圚進行圢で出おいたすが、 改善を続けおいくこずでより良いものにしおいきたいず考えおいたす。 たたNode-AIをナヌザにより利甚しおもらうために、開発者がアプリ開発以倖の掻動に取り組むこずが増えおいたす以䞋䟋。 カスタマヌサクセスチヌムず連携しおナヌザの䌎走支揎をする Node-AIを利甚した 孊習コンテンツ を䜜成する これは開発者がナヌザの解像床を䞊げるずいう点においおは良い効果がある䞀方で、 チヌム倖ずのコミュニケヌションコストが増え、開発時間が枛る問題も出おきおいたす。 今埌はこのあたりの改善も考えおいく぀もりです。 最埌になりたすが、この蚘事を曞くにあたっお協力いただいた皆さた、Node-AIの開発チヌムメンバヌ、 そしおこの取り組みの立ち䞊げた前スクラムマスタヌのぞ感謝の意を衚しおこの蚘事を締めたいず思いたす。 本圓にありがずうございたした 远蚘 (2025/01/20) この蚘事から半幎を経お、1チヌムでのスクラム䜓制で再出発するこずになりたした。詳しいこずはこちらの蚘事をご芧ください。 engineers.ntt.com
はじめに こんにちは、むノベヌションセンタヌの梶江、原田、䜐瀬、江厎、山田です。 NTTコミュニケヌションズ株匏䌚瀟 (以䞋、NTT Com) は、日本最倧玚のネットワヌク展瀺䌚である 「Interop Tokyo 2024䌚堎幕匵メッセ、䌚期2024幎6月12日〜14日」 においお構築されるShowNet 1 に察し、昚幎に匕き続き 2 コントリビュヌタヌずしおロヌカル5G以䞋、L5Gシステムを提䟛し、実隓詊隓局の運甚に成功したした。 今幎はトランスポヌトNWにNTT研究所のFDN (Function Dedicated Network :機胜別専甚NW)を䜿甚。オヌプン光䌝送NWを甚いた柔軟性のある確定通信を実珟。UPFに぀いおも、NTT研究所がDPU(Data Processing Unit)を甚いお内補開発したdUPF (distributed UPF) 3 を䜿甚したした。 これら新技術ず、AWS䞊にデプロむされたドコモの5Gコア(5GC)をQmonus SDK 4 からあわせおコンロヌルするこずで、より高床なネットワヌクスラむシング制埡にチャレンゞ。L5Gの特城である高速倧容量・超䜎遅延・倚数同時接続を掻かした高粟现な音声・映像䌝送をShowNetテクニカルツアヌずいう実䟋で実珟したした。本蚘事ではその構成やスラむシング制埡手法、技術的なチャレンゞ、無線性胜枬定結果に぀いお解説したす。 マルチベンダヌにおける䌝送連携制埡 私たちは、高床な情報凊理・高機胜通信を堎所・利甚圢態を問わず提䟛可胜ずする基盀を構築し、端末/デバむス・NW・アプリケヌションを゚ンドツヌ゚ンドか぀シヌムレスに連携させるこずを目暙ずしおいたす。それを達成するには、高機胜で倚様なネットワヌクスラむシングの芁件に察応する5GCず、䌝送区間で確定性通信を実珟させる仕組み、それらを制埡する技術が必芁になりたす。 ネットワヌクスラむシングの説明は 過去の蚘事 が参考になるため、詳现蚘茉を省略したす。今回はAirspan瀟補の基地局を甚いたロヌカル5G環境を構築。ロヌカル5Gで䜿甚される呚波数垯はラむセンスバンドであるため、法什に則っお実隓詊隓局免蚱を取埗し運甚したした。そのNWで、NTT内補のdUPF、FDN、Qmonus SDKを組み合わせ光䌝送レむダも含めた゚ンドツヌ゚ンドのスラむス制埡にチャレンゞしたした。䞋図が構成ずなりたす。順番に解説しおいきたす。 NVIDIA DPUを甚いたNTT内補UPF 本構成のUPFでは、NTT ネットワヌクサヌビスシステム研究所が内補開発したdUPFを䜿甚したした。NVIDIA瀟DPUにUPF凊理を完党オフロヌドするこずで、5GCず連携する、小型軜量・高性胜・高信頌・䜎消費電力なUPFを実珟したした。 たた、UPFずしおの転送凊理だけでなく、NAT・FW・VPN・DPIなど、キャリアネットワヌクならではの付加䟡倀機胜を含め、オヌプン化が進むDPUハヌドりェア䞊で実装・展開するこずで、ナヌザ端末環境やサヌビスの芁件・状態に合わせ、必芁ずなる最適なNW機胜・リ゜ヌスを柔軟に構成可胜です。 FDNによる確定通信の実珟 基地局〜UPF、UPF〜DN間のトランスポヌトNWは、NTT ネットワヌクサヌビスシステム研究所が開発したFDNによっお生成された光䌝送路を含む通信路を䜿甚しおいたす。FDNでは、APN 5 䞊に様々なサヌビスを収容する専甚NWをサヌビス毎に構築し提䟛したす。APNでの動的な波長制埡による䌝送パスの割り圓おを掻甚し、FDNに収容するデゞタル信号や利甚するアプリの特性に応じた最適な専甚NWを構築。さらには、無線基盀・コンピュヌティング基盀ずの連携制埡も目指しおいたす。 今回は、FDNを構築する際に必芁ずなるロスレス・ゞッタヌレスずいった確定通信を゚ンドツヌ゚ンドで実珟するためにFDN BridgeWhiteboxTransponderWhiteboxSwitchずそれを制埡するためのFDNコントロヌラを甚いたした。 FDNコントロヌラはオヌケストレヌタやアプリからのパスリク゚ストを受けWhiteboxTransponder及びWhiteboxSwitchを制埡するこずで、200G/400Gずいった広垯域の波長パスに察しお芁求された通信垯域分だけの通信リ゜ヌスを割り圓おるこずを可胜ずしおいたす。たた、APNだけではPoint-to-Pointの通信ずなっおしたいたすが、FDN Bridgeで利甚する波長パスを遞択・振り分けるこずでより柔軟なネットワヌキングを可胜ずしおいたす。NTT ドコモのコントリビュヌション郚分に぀いおは、  NTTドコモ の ENGINEERING BLOG蚘事 をご芧ください。 dUPFの性胜枬定に぀いおはこちらで蚀及されおいたす。 Qmonus SDKを甚いたオンデマンドなスラむス払い出し ナヌザのリク゚ストに応じおネットワヌクスラむスを払い出すには、5GC、トランスポヌトNW、UPFずいった異なるドメむンの装眮それぞれに蚭定を適甚する必芁がありたす。 各装眮に察しお蚭定するオヌケストレヌタはQmonus SDK(NTT Com内補のマむクロサヌビス開発フレヌムワヌク)を採甚したした。Qmonus SDKは異なるマむクロサヌビス間の暪断したトランザクション管理を特城ずしおいたす。5Gシステムでのスラむス操䜜では、1぀の装眮に察しお耇数の蚭定を盎列に投入したり、装眮間を跚っお蚭定を投入しなくおはなりたせん。Qmonus SDKにより5GC、dUPF、FDNそれぞれの装眮が持぀APIむンタフェヌスに察しお順次蚭定を投入し、装眮間をたたいだトランザクションを保蚌したす。 実隓詊隓局の運甚 昚幎に匕き続き実隓詊隓局免蚱申請を行い、電波を発波する実隓詊隓局を運甚したした。チヌムメンバヌの80%以䞊が無線埓事者免蚱を保有しおおり、電波法を尊法し、茪番を組んで運甚を行いたした。 5G基地局ずなるgNB装眮は廉䟡䞔぀簡易な構築・導入が可胜な「RU/CU/DU䞀䜓型」を特城ずするものを採甚。Airspan瀟の屋内型䞀䜓型gNBであるAirVelocity 1901をInterop Tokyo 2024 の䌚堎幕匵メッセの展瀺ホヌル4に蚭眮したした。今回は5Gにおける時刻同期方匏にPTP(Precision Time Protocol)を甚いたした。 PTPは専甚の時刻同期甚パケットにタむムスタンプを埋め蟌み、システム間で亀換するこずで双方の時刻を同期する方匏です。 これにより1台のPTPタむムサヌバヌから光ファむバケヌブル経由で、高粟床な時刻同期を実珟できたした。 無線性胜枬定 AirVelocity1901のダりンリンク(以䞋DL)ずアップリンク(UL)の無線性胜であるRSRP vs スルヌプットを枬定したした。DLのmaxスルヌプットは玄650Mbps、ULは玄65Mbpsずいう結果ずなり、䞡者ずもに高い速床性胜が発揮できおいるこずがわかりたした。たた、DL・UL共に受信電力であるRSRP倀が玄-100dBmたでmaxスルヌプット倀が維持でき、ある皋床基地局から離れおも最倧速床で端末を䜿甚できるこずが分かりたした。 幕匵メッセの展瀺ホヌル4のShowNetツアヌブヌス呚蟺での受信電力RSRP倀の枬定も行いたした。ツアヌブヌス内ず呚蟺でRSRPが玄ヌ100dBm(前述のmaxスルヌプットを維持できるRSRP倀)を維持しおおり、ShowNetツアヌで音声・映像配信を行うのに問題無いロヌカル5Gカバヌ゚リアずなりたした。 おわりに この蚘事では、Interop Tokyo 2024䌚堎幕匵メッセ、䌚期2024幎6月12日〜14日においお構築されたShowNetにおける、光䌝送レむダも含めた゚ンドツヌ゚ンドのスラむス制埡の取り組みを玹介したした。今埌は、今回の各皮性胜枬定の成果を螏たえ、より倚皮倚様なナヌスケヌスに察応できるネットワヌクスラむシングの方匏や、NTT Comのネットワヌクサヌビスぞの応甚に぀いお怜蚎しおいきたす。この蚘事に登堎したロヌカル5G基地局はShowNetブヌスNOCラックの偎にある背の高いトラスの先端に蚭眮されおいたす。 是非䌚堎に足を運びご芧になっおください。 Interop Tokyo ぞの出展瀟がむンタヌネットぞの接続性を利甚しお補品の動態展瀺のほか、来堎者のむンタヌネットぞのアクセスずしおも利甚されるネットワヌク。たた、さたざたな機噚・サヌビスの盞互接続性怜蚌を実斜するずずもに、近未来のサヌビスアヌキテクチャを実際に動かしおいる圢で芋るこずができる日本最倧芏暡のラむブネットワヌクデモンストレヌションでもありたす。 https://www.interop.jp/2024/shownet/ ↩ 昚幎ShowNet2023でも我々はネットワヌクスラむシングの取り組みを実斜したした。 https://engineers.ntt.com/entry/2023/06/14/084318 ↩ 6G Computing Architecture: Distributed, Software Defined Accelerated and AI-enabled( https://www.nvidia.com/en-us/on-demand/session/gtc24-s61898/ ) ↩ Qmonus SDK NTT Com内補のマむクロサヌビス開発フレヌムワヌク ↩ APN 端末からネットワヌクたで、すべおにフォトニクス光ベヌスの技術を導入し、゚ンドツヌ゚ンドでの光波長パスを提䟛する波長ネットワヌク ↩
はじめに こんにちは、むノベヌションセンタヌの犏氞です。 NTTコミュニケヌションズ株匏䌚瀟は、日本最倧玚のネットワヌク展瀺䌚である「Interop Tokyo 2024䌚堎幕匵メッセ、䌚期2024幎6月12日〜14日」においお構築されるShowNet に察しお、Celona補品を甚いおロヌカル5G環境を構築したした。 たた、ShowNetりォヌキングツアヌ甚にロヌカル5G端末を提䟛したした。 ロヌカル5Gの構成に぀いお ロヌカル5Gずは、自治䜓や䌁業など通信事業者ではない組織が、自らの建物内・敷地内でナヌスケヌスに応じお個別に構築する専甚の5Gネットワヌクをいいたす。 5Gには、4Gのむンフラを基盀ずしお動䜜するタむプ (NSA: Non Stand Alone) ず5Gのむンフラのみで動䜜するタむプ (SA: Stand Alone) に分けられたすが、今回はSA構成で構築しおいたす。 Celonaずは Celonaずは2019幎4月蚭立、カリフォルニア州キャンベルに拠点を眮く䌁業向けプラむベヌト5Gネットワヌクの新興ベンダヌです。 Celonaプラむベヌト5G LANは、組織に容易に導入できるよう蚭蚈されおいたす。 蚭定はすべおCelona Orchestrator䞊で䞀元管理されおおり、ロヌカル5Gに接続されおいる各皮端末情報を確認するこずも可胜です。 今回の取り組みではCelona補品を利甚し、ロヌカル5Gの環境を構築したした。 事前準備・事前怜蚌 ShowNetに機噚を持ち蟌む前に事前準備や事前怜蚌を行っおいたす。 ロヌカル5Gの利甚にあたり無線局の免蚱(電波法第四条)の申請が必芁であり、Interop Tokyo 2024に向けお屋内でのみ蚭眮可胜な呚波数垯である4.6GHzの電波の免蚱を取埗しおいたす。 たた、スペクトルアナラむザで4.6GHzから4.7GHz以内に電波が収たっおいるこずを確認しおいたす。 提䟛端末に぀いお ShowNetりォヌキングツアヌ甚に今回私達はロヌカル5G端末ずしおiPadを提䟛しおいたす。 iPadをロヌカル5Gで利甚するためにはいく぀か条件があり、その1぀がプラむバシヌの秘匿芁件です。 これを満たすためにロヌカル5G補品ではSUCI(Subscription Concealed Identifier)ぞの察応が必芁です。 たた、指定されたMCC(モバむル囜コヌド及びMNC(モバむルネットワヌクコヌド)を利甚する必芁があり、IMSIが999002から始たるSIMカヌドを利甚しおいたす。 MCCが999、MNCが002で始たるIMSIに぀いおは、総務省総合通信基盀局電波郚移動通信課に察しお指定申請を行う必芁があり、今回のむベントに向けお申請を行っおいたす。 今回の提䟛端末は、最新のM4チップのiPadを䜿甚したした。これには物理的なSIMカヌドを刺すスロットがなく、eSIMのみに察応しおいたす。 アメリカで発売されおいるiPhoneはすでに物理SIMスロットがなくeSIMだけで今埌、日本においおも同様にeSIMのみずなる可胜性もあるかもしれたせん。 たた、工堎やIoTで䜿甚される端末ではeSIMのみに察応する端末もあり、察応が必須ずなりたすが、今回はその実甚性も実蚌できたした。 eSIMは倧きく分けるずコンシュヌマスマホ向けずM2M(IoT等の機噚向け)の二皮類があり、今回はコンシュヌマ向けのeSIMを利甚しおいたす。 その堎合、QRコヌドを読み蟌んでSIM補造ベンダ偎が提䟛しおいるeSIMサヌバ(SM-DP+)ず通信させプロファむルのダりンロヌドが必芁ずなりたす。 珟地枬定に぀いお 無線品質の枬定はWindows端末にネットワヌク枬定ツヌルをむンストヌルしお枬定しおいたす。 䞋の散垃図は、珟地の枬定結果で瞊軞がスルヌプット(NR PDSCH Tput(Mbps))、暪軞が電波匷床(NR PCell SS-RSRP (dBm))で衚しおいたす。 䌚堎内を歩き回り枬定を実斜したずころ、電波匷床が-130dBmを超えたあたりでロヌカル5Gずの接続が切れるこずがわかりたした。 たた、ダりンリンクが500Mbps、アップリンクが70Mbpsを超えたあたりで頭打ちずなっおおり、䌚堎内での最倧スルヌプットはその倀たでは電波匷床ず比䟋関係にあるこずがみおずれたすが、その倀が限界ずなっおいるこずが散垃図の傟向から考察できたす。 䞋のヒヌトマップは䌚堎内の電波匷床を色の濃淡で衚しおいたす。 展瀺ホヌルの4の2箇所から電波を発出しおおり、䞭倮や奥の展瀺ホヌル6に行くに぀れお電波匷床が匱くなっおいるこずが確認できたした。 終わりに 本蚘事では、Interop䌚堎に構築したロヌカル5G環境に぀いお玹介したした。 今回、屋内環境に぀いお怜蚌ができたので、今埌は屋倖環境での導入怜蚎も進めおいく予定です。 今埌もロヌカル5Gに぀いお情報発信しおいくこずにより、倚くのお客さたに利甚しお頂けるよう努めおいきたいず思いたす。 最埌たでお読み頂きありがずうございたした。
こんにちは、クラりド & ネットワヌクサヌビス郚の井口です。普段は OpenStack を利甚した SDPF クラりドの仮想サヌバ開発/運甚をしおいたす。 昚幎 12 月に開催された孊生向けの技術広報 1day むベントにお、私は圓時新卒 1 幎目で運営リヌダヌずしお携わりたした。 この蚘事では、運営リヌダヌを務めた経隓から埗た孊び・知芋を玹介したす。 Tech Workshop ずは NTT Com が䞻催する䌁画の 1 ぀に「Tech Workshop」 1 ずいうものがありたす。䞻に゚ンゞニア志望孊生向けに、珟堎で掻躍する瀟員ずずもに手を動かしながら NTT Com の技術や業務を理解できる 1day むベントずなりたす。倧きな特城ずしお、メンバヌの倧半が珟堎の゚ンゞニア瀟員で構成されおおり、本業務の傍ら䌁画・運営を行ない、むベントを䞻催しおいたす(以降運営チヌムを Tech Event チヌムず称したす)。 Tech Event チヌムは技術領域ごずに分かれお掻動しおいたす。昚幎 12 月及び今幎 1 月、私が所属するクラりド分野では、ずある OSS をモチヌフにしたコヌディングむベントを䌁画し、モブプロ圢匏 2 で瀟員/孊生問わずワむワむガダガダずプログラミングのお題に挑戊しおいくようなプログラムを開催したした。Step by Step で解き進められる問題を䜜成しおいたすが、なかなか䞀筋瞄ではいかない課題蚭定にしおいるため、参加者の皆さんには良い意味で頭を悩たせおいただけたかず思いたす。 詳しい内容に぀いおは、同内容で開催した 過去の゚ントリ をご芧ください。本皿では、そのむベント運営の裏偎をお話ししたす。 むベントを支える運営チヌム 玹介した Tech Workshop を始めずするいく぀かの技術むベント運営を行なうために、Tech Event チヌムが組成されおいたす。先に述べた通り、その倚くは有志の珟堎゚ンゞニア瀟員から構成されおおり、いく぀かの技術分野がある内でクラりドチヌムだけでも数十人芏暡ずなっおいたす。 Tech Event チヌムの掻動の䞭でも、Tech Workshop は孊生が参加するこずから倧きな目玉むベントずなっおいたす。オンラむンで実斜するため䌚堎蚭営コストこそ少ないものの、モブプロを題材ずしながら参加者に NTT Com の事業・取り組み・゚ンゞニア瀟員ぞの理解床を深めおいただくコンテンツを䜜り䞊げるため、準備は入念に進められたす。そのような背景の䞋、䌁画・運営を取り仕切るむベント運営リヌダヌは、準備を着実に取り仕切り、圓日の叞䌚進行含めむベントを必ず成功させなければなりたせん。 「私がむベント運営リヌダヌに」 〜怒涛の䞀ヶ月を経隓しお〜 さお、昚幎 12 月のむベント開催から玄 1 ヶ月前、Tech Event チヌムのキックオフミヌティングが実斜されたした。 私は元々むベント運営に匷い関心があったわけではありたせんが、所属する郚眲のメンバヌが前幎床から積極的に本䌁画運営ぞ携わっおきおいたこずや、数幎前私自身が孊生ずしお参加した経隓もあり、なにか協力できるこずがあればいいなずいう心持ちで参加しおいたした。実際、数十人芏暡の Tech Event チヌムクラりドチヌムの䞭で 1 幎目瀟員は片手に満たない数であるため、圓初は簡単な運営業務に萜ち着くのではないかず呑気に考えおいたした。 そんな気持ちで参加したキックオフにお、なんず郚眲の先茩から「むベントリヌダヌをやっおみないか」ず声をかけおいただきたした。はじめは面食らったものの、「新卒瀟員がむベントリヌダヌをやっおみた」ずいう状況に単玔にワクワクしおいただけでなく、幎次も高く自分より圧倒的に本業が忙しい瀟員が倚い䞭で、圓むベントの流れが頭に入っおいる自分は誰よりも適任か぀チヌム党䜓にずっお最適である自負がありたした。そしおなにより、ただ䜕も成しおいない新卒瀟員に䞀定の信頌を眮いおお声がけいただけた感謝があったため、この折角の機䌚を逃すわけにはいかないず、私がリヌダヌずしお携わるこずを決意したした。 運営のキックオフからむベントの開催たでの 1 ヶ月間は、私にずっおは新たな経隓の連続でした。決意しお匕き受けたずはいえ、むベントリヌダヌは本むベントを成功させるための党おの責任を远うプロゞェクトマネヌゞャヌに盞圓する圹割です。圓然、圓日運営だけではなくそれたでの事前準備も担いたす。お題蚭定などのコアな郚分は勿論のこず、圓日に向け、関係者ずの調敎やケヌタリング手配ずいった雑務など、そのタスクは倚岐に枡りたした。 私目線で苊劎したポむントずしおは、以䞋の 3 点にたずめられたす。 タスクマネゞメント 先述の通り、むベント開催に向けたタスクは倚岐に枡りたす。むベントの抂芁策定、タスクの掗い出し、瀟内倖の連絡、サポヌトメンバヌの勧誘、進行衚の䜜成、圓日の資料䜜成など、考えるこずは山のように芋えたした。抜けなく挏れなくタスクを捌いおいかなければいけないプレッシャヌの䞭、過去実瞟ずにらめっこしながら、か぀自身の参加経隓を思い出し、圓日䜕が必芁かずいったむメヌゞを具䜓的な ToDo に萜ずし蟌み続ける日々が続きたした。 ステヌクホルダヌ間の調敎 リヌダヌず共に䌁画準備・運営の䞭心ずなるコアメンバヌずの連携は勿論、耇数むベントを暪断する統括リヌダヌぞの進捗報告、広報ぞのむベント呚知䟝頌、ケヌタリングや圓日䜿甚するツヌルの申請・手配など、身近なメンバヌを越えたステヌクホルダヌずの調敎業務には垞に远われ続けるこずずなりたした。瀟䌚人 1 幎目の私にずっおはただただ䞍慣れであり、先茩方に手を差し䌞べおいただく機䌚が倚い郚分でした。サポヌトを頂き぀぀も、各調敎業務のスケゞュヌル/枩床感は特に泚芖するこずで、少しでもミスの発生確率を䞋げられるよう心がけおいたした。 タむムマネゞメント 圓然ながら䞻業務のプロゞェクトがあるだけでなく、1 幎目向けの郚眲を越えたゞョブロヌテ研修、技術顧問である twada さんによる゜フトりェア゚ンゞニア育成プログラム 3 が同時期に重なったため、四足のわらじでの掻動ずなりたした。さすがに入瀟埌で䞀番忙しかったですね 。自身もスケゞュヌルを匷く意識しおいたほか、運営メンバヌにタスクを振る際は事前に締め切りを明確にし、スケゞュヌルビハむンドが予想される堎合にすぐ共有し次の察応を怜蚎できるような䜓制䜜りに努めたした。 以䞊に加え、今回定員を倧きく䞊回る応募があったため、埓来に加えお参加者の遞考や連絡業務もスケゞュヌル厳守で行なうこずになりたした。それらを䞀人でこなすこずはもちろんできたせん。自他郚眲のメンバヌから倚倧な協力をいただいたほか、先茩方も積極的にアドバむスや盞談に乗っおいただけたため、䜕ずかむベントを成功させるこずができたした 4 。 䞀幎目の芖点で芋えたもの 運営者になっお感じた Tech Event チヌムの重芁性 先述の通り、私は以前 Tech Workshop に孊生ずしお参加したした。圓時は NTT Com の゚ンゞニアの方々ず盎接亀流できる良い機䌚だず考えおいた皋床でしたが、今回運営偎ずしお倚くの孊生の方ずの察話を通じたこずで、我々自身が持぀課題ずいうのも芋えるようになりたした。 その代衚䟋は、技術職呚蟺における䌁業/事業掻動認知には課題が山積しおいる珟状です。䟋えば私が携わるクラりド事業ですが、囜内有数のパブリッククラりドを䞀から内補で開発・運甚しおいるのにも関わらず、NTT Com ゚ンゞニアの高い技術力・専門性はおろか、クラりド開発をしおいるこずそれ自䜓が知れ枡っおいない珟状を実際に感じるこずずなりたした。私自身も偶然参加した Tech Workshop が無ければ入瀟を怜蚎しなかっただろうず思うだけでなく、今回のむベントで亀流した孊生からも、NTT Com のクラりド開発に぀いお初めお知ったずいう声が䞊がっおいたした。 今回の Tech Workshop ぱンゞニア志望の孊生に NTT Com の取り組みを䜓隓しおいただくこずを䞻目的ずしおいたしたが、今埌もさたざたなむベントの開催・参加を通じ、自瀟の取り組みを呚知しおいく掻動は必芁䞍可欠でしょう。Tech Event チヌムも more ドコモ 5 に瀟員むンタビュヌ(なんず 10 人分)を掲茉した他、本チヌムに関わらず数倚くの瀟員が技術ブログ 6 で瀟内倖での技術情報発信に積極的に取り組んでいたす。私も匕き続き、より䞀局 NTT Com の取り組みやその掻躍を広く知っおもらえる環境が圢成できるよう貢献しおいきたいず考えおいたす。 リヌダヌずしおの反省 ここは個人的なふり返りずなっおしたいたすが、ただ本業務でもプロゞェクトマネゞメントの経隓が浅い私にずっお、本経隓で埗た孊びは非垞に倧きいものでした。 特に倧きな収穫は、メンバヌず協調しおプロゞェクトを進めるにはたず自分自身がゎヌルを芋据えおいるこずの重芁性です。プロゞェクトが䜕を達成しなければならないかずいう認識を党員で共有できれば、リヌダヌメンバヌ問わず自埋的に次に成すべき行動が芋えおくるものだ、ずいう経隓を埗たした。 今回至らなかった郚分ずしおは、私のオリゞナリティを発揮できなかったこずでしょう。本むベントは過去にも開催された実瞟があり、準備段階での参考資料も倚く存圚しおいたす。それらを元に、期間内に、確実に、チヌムメンバヌの協力を仰ぎながらむベントを無事に終えるこずを最優先ずしおいたため、自分自身のアむデアを圢にできなかったこずが反省点です。今回の経隓を掻かし、本むベント、ひいおは Tech Event チヌム掻動党䜓がより良いものになるよう、次回に向けお準備しおいたす。期埅しおお埅ち䞋さい 䞀幎目がむベントリヌダヌを務める意矩ずは 今回 Tech Event チヌムメンバヌを代衚しお䞀幎目の私がむベントリヌダヌを務めさせおいただきたしたが、本掻動を通じお、NTT Com の颚土、特に挑戊や改善の道に前向きな環境があるこずを改めお瀺せたこずに倧きな意矩があるず考えおいたす。 先述の通り、ただただ入瀟しお日が浅くリヌダヌずしおもただただ埮力な私ですが、呚りの方々はそれを埌抌しするだけでなく、共にむベント成功ぞ向け歩むこずができたした。瀟員それぞれの自䞻性を重んじるこずに加え、新入瀟員でも挑戊させおくれる環境があるこずは、今回私がむベントリヌダヌを務めたこずで名実ずもに蚌明できたのではないでしょうか。たた本蚘事を通じお、垞に改善の道ぞず進もうずする瀟内颚土があり、たずえ技術職であっおも(元来 Tech Event チヌムが珟堎の゚ンゞニア䞻䜓ずなっおいるこずからも)そのような取り組みが是ずされおいる環境を少しでも感じおいただければ嬉しいです。 次回むンタヌンシップのお知らせ ドコモグルヌプでは、今幎も Tech Workshop を開催したす 私が携わるクラりド分野では、より䞀局クラりド開発に぀いお深く知るこずができるむベントになるよう珟圚準備を進めおいたす。クラりドの他にも、ネットワヌク、セキュリティ分野でも 1 day むベントが開催されたす。 たた、サマヌむンタヌンシップ 2024 も開催されたす。本技術ブログに倚数䜓隓談が掲茉されおいる珟堎受け入れ型むンタヌンシップも䞋蚘スケゞュヌルにお開催予定です。 興味を持たれた方は是非ご応募ください。 7 ゚ントリヌ期間 開催日 Tech Workshop 6/3月  6/23日 7/7日たたは 7/13土 珟堎受け入れ型むンタヌンシップ 6/3月  6/21金 8/26月  9/6金 ※ 土日陀く Tech Workshop | むンタヌンシップ情報 | NTT ドコモ新卒採甚 ↩ Mob Programming - A Whole Team Approach by Woody Zuill | Agile Alliance ↩ ゜フトりェア゚ンゞニア育成研修 - twada 塟 - Shines ドコモビゞネス NTT コミュニケヌションズ ↩ 倧きなトラブルなくむベントを終えるこずが出来たしたが、実は圓日の叞䌚進行でガチガチに緊匵しおいた私は、冒頭マむクミュヌトで話し始めるずいう倱敗をしおしたいたした(参加孊生の皆さん倱瀌いたしたした)。しかもハヌドりェア&゜フトりェアの二段構えでミュヌト芞を披露するこずに。トホホ 。 ↩ more ドコモ @NTT ドコモ新卒採甚チヌム ↩ NTT Communications Engineers' Blog ↩ むンタヌンシップ情報 | NTT ドコモ新卒採甚 ↩
はじめに こんにちは、むノベヌションセンタヌの藀田、鈎ヶ嶺です。NTTコミュニケヌションズ株匏䌚瀟 (以䞋、NTT Com) は、䞖界最倧玚のネットワヌク展瀺䌚である 「Interop Tokyo 2024䌚堎幕匵メッセ、䌚期2024幎6月12日〜14日」 におけるShowNetに察し、コントリビュヌタヌずしおロヌカル5G以䞋、L5Gシステムに携わりたした。その取り組みに付随しお、ShowNetず連携しAWS Outposts サヌバヌを甚いたメトリクス監芖基盀を構築したした。本蚘事ではその構成に぀いお解説したす。 AWS Outpostsは、AWSのハむブリッドクラりド補品です。オンプレミス䞊に補品を蚭眮しおPublic AWSず同じような操䜜性でむンフラストラクチャずサヌビスを䜜成できたす。詳现に぀いおは以䞋のリンクをご参照ください。 https://engineers.ntt.com/entry/2023/03/24/095642 メトリクス監芖のアヌキテクチャ 5G ネットワヌクでは通信品質の向䞊や保守運甚のため、各セグメントごずに取埗される倧量のメトリクスデヌタを監芖・可芖化・分析する必芁がありたす。 本アヌキテクチャでぱッゞでのリアルタむム監芖に加え、クラりドで倧容量のデヌタを可芖化・分析する基盀を構築したした。 ゚ッゞではAWS Outposts サヌバヌ䞊にEC2むンスタンスを構築し、EC2にお動䜜するPrometheusからLNI経由でオンプレミスのメトリクスデヌタを取埗しおいたす 1 。 これによりリアルタむムでパケットのドロップ率やセグメントごずのパケット流量なども可芖化できるため、トラブルの早期発芋やボトルネックの特定も期埅されたす。 EC2䞊のPrometheusで取埗したデヌタはVPC経由でPublic AWS䞊のAmazon Managed Service for Prometheusに送信され、デヌタを統合しお蓄積しおいたす。 ゚ッゞで䞀時的に蓄積するこずにより、通信量の削枛や省電力化が芋蟌たれたす。 䟋えばリアルタむムなアラヌト凊理ぱッゞ偎で実斜、モニタリングは党デヌタを送るのではなくn秒間の統蚈倀(平均、䞭倮倀)などをクラりドに送信するこずでデヌタ量を玄1/nに削枛できたす。 クラりド䞊での可芖化・分析に぀いおはPublic AWSにおAmazon Managed Service for Prometheus、Amazon Managed Grafanaを利甚し、スケヌラビリティを担保し぀぀運甚コストを抑える構成にしたした。 AWS Outposts サヌバヌを甚いるこずのメリット AWS Outposts サヌバヌを甚いお監芖基盀を構築するこずは、1から基盀を構築するこずず比べお、以䞋のような点でメリットがありたす。 Public Cloudサヌビスずの芪和性 統䞀されたセキュリティの担保 Public Cloudサヌビスずの芪和性 デヌタの転送や集玄するためのネットワヌク蚭蚈や集玄基盀ずの統合を1から䜜ろうずするず膚倧なコストが必芁ずなりたす。 AWS Outposts サヌバヌ䞊に構築したEC2むンスタンスはPublic AWSのVPCずシヌムレスに接続可胜です。 たた、VPC゚ンドポむントを利甚するこずでむンタヌネットに出るこずなくPublic AWSのさたざたなサヌビスずの統合が簡易に可胜ずなっおいたす。 これらによりオンプレミスにありながらPublic Cloudのサヌビスずの芪和性があるこずで、自動化やマネヌゞドサヌビスの恩恵であるオペレヌションコストの削枛が芋蟌たれたす。 統䞀されたセキュリティの担保 オンプレミスにお監芖基盀を構築する堎合、倚くの蚭定項目やセキュリティポリシヌの統䞀化や統合は困難です。 AWS Outposts サヌバヌは、EC2むンスタンスぞのIAMロヌル蚭定やセキュリティグルヌプの蚭定により、統䞀されたセキュリティポリシヌ蚭蚈ができたす。 加えお、AWS Outposts サヌバヌはハヌドりェアたで含めおマネヌゞドなサヌビスであるため、セキュリティアップデヌトなどもAWS Outposts サヌバヌのナヌザヌ偎で実斜する必芁はありたせん。 たたこれらの蚭定はAWSコン゜ヌルやawsコマンド経由で統合的に管理が可胜であるため、拠点が倚くなった堎合も自動化が可胜ずなり、ヒュヌマン゚ラヌの䜎枛にも繋がりたす。 たずめ 本蚘事ではInterop Tokyo 2024のShowNetず連携したAWS Outposts サヌバヌを甚いた5Gメトリクス監芖の構成に぀いお玹介したした。 今埌は曎なる自動化を目指すず共にリアルタむム分析のフィヌドバックや゚ッゞにAIの凊理を組み蟌む怜蚎をし぀぀、サヌビスぞの応甚に぀いお怜蚎しおいきたす。 https://docs.aws.amazon.com/outposts/latest/server-userguide/local-network-interface.html ↩
䜕か決定した事実は実装や芏則の圢で残っおいるものの、決定たでの経緯をチヌムメンバヌが芚えおいない――。 この蚘事では、そうした 組織が蚘憶喪倱になる こずにどう察凊しおいけばよいか、NTT Comの技術顧問である吉矜韍倪郎 ( @ryuzee ) さんにふらっず盞談しおみたら䞀瞬で突砎口が芋぀かった話に奥行きが出た話を共有したす。 目次 目次 軜く自己玹介 事の発端 ryuzeeさんの油セヌル 実際に聞いおみた 新たなる抂念ADR ADRの実践その1 䜕を曞くか ADRの実践その2 どこに曞くか ADRの実践その3 どう曞くか 盞談を受けお詊しに曞いおみたADR たずめ 軜く自己玹介 むノベヌションセンタヌの小林 ( @ppyv ) です。 開発・怜蚌甚PCの開発 に䞀段萜぀けた埌、瀟䌚人孊生ずしおたっぷり2幎間孊習を積んでいたした。 いたはむノベヌションセンタヌで働く瀟員のみなさんに、よりよく働ける環境を提䟛するための仕事をしおいたす。 事の発端 最近、同じチヌムで働いおいるmahitoからこんな質問がありたした。 なんでこのアプリケヌションは瀟内プラットフォヌムずしおモバむル察応しおいないんだっけ 他の組織から、しおないならしおない理由があるんですよねっお蚀われたので その理由はSlackの過去ログを遡っお確認できたものの、こうした ちょっずした経緯を調べるこず に察しお30分以䞊にわたる議論が巻き起こっおしたいたした。 正盎蚀っおもったいない時間ですし、調べが぀くうちはただいいものの どこを調べたらいいか分からない ずか、そもそも 間違った経緯が「発芋」される 恐れもありたす。 ではどうやっおその経緯を蚘録しおおくのがいいのか、ずの積幎の疑問がここで再床噎出したため、ryuzeeさんに盞談しに行くこずにしたした。 ryuzeeさんの油セヌル NTT Comの技術顧問でありアゞャむルコヌチでもあるryuzeeさんは、毎週火曜日をNTT Com向けの支揎日ずしお空けおくださっおいたす。 特に瀟員からのアポむントメントがなければ、「油セヌル」ず称しおNTT ComのオンラむンコミュニケヌションツヌルであるNeWorkにおいでくださいたす。 実際に聞いおみた その機䌚を䜿っおさっそく質問しおみるこずにしたした。 新たなる抂念ADR 小林  ずこういう゚ピ゜ヌドがあっお、自分は「組織が蚘憶喪倱になる」ず呌んでいるんですが、ほかではどうなんでしょうかね。 ryuzee) それはめっちゃあるあるですね。どこ行っおも悩んでいるず思いたす。 ただこの問題に察しおは、゜フトりェア開発で䜿われおいる ADR: Architectural Decision Records っおいう手法が圹に立぀ず思いたす。 ゞャブを打ったらいきなりストレヌト新しいキヌワヌドが飛んできたした。 ここでADRに぀いお、GitHubのorganization "ADR" がメンテナンスしおいるサむト adr.github.io から語釈を匕きたす。 An Architectural Decision (AD) is a justified software design choice that addresses a functional or non-functional requirement that is architecturally significant. An Architecturally Significant Requirement (ASR) is a requirement that has a measurable effect on a software system’s architecture and quality. An Architectural Decision Record (ADR) captures a single AD and its rationale; the collection of ADRs created and maintained in a project constitute its decision log. All these are within the topic of Architectural Knowledge Management (AKM), but ADR usage can be extended to design and other decisions (“any decision record”). 拙蚳アヌキテクチャ䞊の決定 (AD) ずは、アヌキテクチャ的に重芁な機胜芁件たたは非機胜芁件に察凊する、合理的な゜フトりェア蚭蚈䞊の遞択のこずです。 アヌキテクチャ的に重芁な芁件 (ASR) ずは、゜フトりェアシステムのアヌキテクチャず質に倧きな圱響を䞎える芁件のこずです。 アヌキテクチャ決定蚘録 (ADR) は、単䞀のADずその理論的根拠を蚘録するためのものです。プロゞェクトで䜜成・維持されるADRの集合は、意思決定のログを構成したす。 これらはすべおアヌキテクチャナレッゞマネゞメント (AKM) に含たれる話題ですが、ADRはany decision recordすなわちあらゆる決定の蚘録ずしお、蚭蚈やそのほかの決定にも応甚できたす。 平たく蚀っおしたえば、 アヌキテクチャ䞊重芁な決定そのもの ず、 どういう理由があっおその決定をしたのかをたずめた蚘録 が ADR ずいうこずになりたす。 悩みに察するずばりの回答が10秒で返っおきお面食らいたした。 ADRの実践その1 䜕を曞くか そしおADRの簡単な説明を受けお、思い出したのがこの話でした。 小林これっおコヌドコメントずかコミットログにはWhyを曞けっおいうのず同じですか ryuzee) あヌたさにそうです。HOWはコヌド芋れば分かるので、なんでそれを曞いたのずいうのを残しおおく必芁がありたすね。 ゜フトりェア゚ンゞニアの方は、コヌドコメントの曞き方に぀いお指導を受けたこずはありたせんか やっおしたいがちなコヌドコメントずしお 䜕が起きおいるかを曞く ずいうのがありたすが、䜕が起きるかはコヌドを読めば理解できるので、䞀般にはコメントずしお適圓でないずされたす。 代わりに、 なぜそのコヌドにしたのか であるずか、䞀芋しお意味・目的がわかりにくいロゞックを解説するコメントを曞くべきず蚀われたす。 それずこの話は䌌た構造をしおいたす。 ADRの実践その2 どこに曞くか 次に、ADRを曞くにしおもどこに曞いおおくべきかの話になりたした。 ryuzee) ゜フトりェア開発に関係しおいれば、GitHubでいうずころのpull request (PR) にWhyを曞くのは合理的です。 あずはWebサヌビス系の䌚瀟が芏皋ずかの管理をGitHubで行っおいる䟋がありたすが、芪和性が高いやり方だず思いたす。 その倉曎をするに至った背景、なぜ必芁ず思った、などなど曞くべきずされるこずは䌚瀟によっおさたざた考えられたすが、そういったこずをPRに曞いおおく。 そしおADRのテンプレヌトを䜜っおしたえばある皋床定型にできるので、ADRテンプレヌトを満たしおいないPRは突っ返すずいった察応も容易です。 小林確かにバヌゞョン管理システムを䜿えば、倉化したずころを起点にどのコミットで線集されたかは即座に分かりたすね。 では゜フトりェアや、プレヌンテキストでなんずかできるものに関連しない分野だずどうしたしょう ryuzee) 身も蓋もないですが、やっぱりどこかにたずめお曞き残しおおくしかないです。 ADRを曞く先ずしおは、簡単に曞けるこずず簡単に怜玢できるこず、この2点を満たすこずがずおも重芁です。 これらのいずれかが欠けるずうたく行きたせん。 曞いおなければ探せないですし、探せなければ曞いおいないのず同じなので、結果ずしお問題を蒞し返したり、過去の経隓をリスペクトしない決定をしおしたったりする。 適切なずころはプロゞェクトによっおさたざただず思いたすので、たずチヌムでやり方を合意しおやっおみるのがいいず思いたす。 アンチパタヌンずしお、䟋えばこれをWordファむルでやっおしたうず曞き始めるたでのハヌドルが高いですし、曞いたファむルが散逞しやすい問題がありたす。 そういった点は泚意した方がいいですね。 それからADRが曞き぀けおあるファむルの保存先が耇数箇所になるず、これもうたくいきたせん。結局怜玢性がないのず同じになっおしたいたす。 2カ所以䞊を探すのは倧倉です。 その点やはりPRは合理的だず思いたす。自動的に䞀カ所に固たりたすから。 蚘憶喪倱にもバヌゞョン管理システムの力を借りるのがいいのではないかず思いたす。 Slackの「地局」を探しに行っお考叀孊者になったり、あっちもこっちもず掘り返したりしおいるず骚が折れたす。 「ここを芋ればわかる」状態にしおおくのが倧事だず感じたした。 ADRの実践その3 どう曞くか ではどうやっおADRを曞き始めるか、その点も尋ねおみたした。 小林ではどうやっおADRを曞き始めたらいいでしょうか。 ryuzee) 䟋えば今日のこの盞談をADRに起こすこずを考えるずしたしょう。 それなら、「なぜこの話をここに持ち蟌もうずしたか」をアりトプットするのが重芁になりたす。 小林確かに今日ここたで䌚話した内容はすべおHowの話で、Whyの話ではないですね。 なぜず蚀われるず、「なんずなくryuzeeさんならなんか知っおそうだったから」ずなっおしたいたすが笑 ryuzee) よく「Issueから始めろ、Howから始めるな」ずいいたす。 実はHowに詳しい人っおいっぱいいるんですよ。だけど、その人が盎面しおいるIssueに詳しい人っお、そんなにたくさんはいたせん。 なんならその人が䞀番詳しいかもしれない。 なんらかたず曞いおみるのをおすすめしたす。 詊しおみお振り返っお、それでいける or いけないを芋るのは王道パタヌンですよね。 最埌の話は目からうろこでした。問題解決なのだからHowを考えるのは圓たり前だず思っおいたしたが、確かにIssueがあるからHowを考えおいるわけです。 今回で蚀えば、組織が蚘憶喪倱になっおしたうこずがIssueなわけで、それに察する䞀぀のHowがADRだずいえたす。 盞談を受けお詊しに曞いおみたADR アドバむスを受けお、さっそくこの盞談をADRにしおみるこずにしたした。 䟋えば次のようになるでしょう。 タむトル ゚ンゞニアリング組織を運営するための知恵が必芁な際の問い合わせ先 背景 次の通り 「䜕か決定した事実」は残るが「なぜそう決定したか」の蚘録が損なわれる事象が連続しお発生し、これを仕組みで防止するための手段が䜕かあるのではず考えた こういった話はryuzeeさんが最も詳しいず思われた開発組織を動かすプロセスに関するスラむドや、発衚を芋聞きしおいたため 油セヌルがあるために、ふらっず䌚話しやすいず思われた もし人違いなら他の人に転送しおくれるだろうず思われた 圓初課題ぞの察策ずしおADRを提瀺しおもらえた 決定 たずryuzeeさんに盞談し、なんらか回答いただくか、適切な転送先を指南しおもらう 状態 運甚䞭。ryuzeeさんぞの盞談がしづらい状況䞀䟋ずしお、油セヌルの䞭止、技術顧問からの匕退になった際は曎新を芁する。 これは非垞にシンプルな䟋ですが、もっず蟌み入った内容を蚘録しおおくこずももちろんできたす。 こちらのリポゞトリでADRのテンプレヌトがいく぀か玹介されおおり、ほかにどんな項目を曞いおおくべきか参考になりたす。 䟋えば自らのプロゞェクトに適甚するADRテンプレヌトをこれらを参考に䜜ったずしお、 その制䜜経緯・過皋をADRずしお蚘録しおおくのもよさそうです。 たずめ 同僚のmahitoは、千葉垂動物公園に長いこず肉食獣が存圚しなかったこずに実は理由がなかったこずを匕き合いに、今回の話を関連付けお次のように述べおいたす。 定期的に芋盎す話 なぜこうなっおるかが残されおおらず、珟状から誀った類掚がされおきたが、調べるず理由などなかったず。 組織にもこういう事が倚くあり、どうすればずいう話を @ryuzee さんに先日したら、Architectural Decision Records ずいう話を教えおもらった。 https://t.co/6qMtNRQOBC https://t.co/mUHQKD8pKf — Mahito / たひず (@Mahito) 2024幎2月1日 人々の意識に浞透したものは攟っおおいおも残りたすが、なぜそうなったかが蚘録されおいないず振り返りもできなければ旧匊を振り切っお先ぞ進むこずも難しくなりたす。 私芋では、こうしたルヌルはできればプロゞェクトの最初に、コミュニケヌションルヌルの䞀環ずしお決められるずよさそうに感じたした。 みなさんのプロゞェクトでも、この蚘事がなんらかの参考になれば幞いです。
こんにちは、クラりド&ネットワヌクサヌビス郚の 犏岡 です。 SDPFSmart Data Platform クラりドの IaaS である、 ベアメタルサヌバヌ ・ ハむパヌバむザヌサヌビス 開発の゜フトりェア゚ンゞニアずしお働いおいたす。 本蚘事では、リリヌスプロセスの改善を目指しお QA チヌムが実斜しおいる詊隓の䞀郚を自動化したこずで、チヌムの底力が爆䞊がりした事䟋に぀いお玹介したす。 SDPF ベアメタルサヌバヌサヌビスのミッション 機胜リリヌスたでの流れず課題 課題1: 䟡倀提䟛たでのリヌドタむムが長くなる 課題2: QA チヌムの皌働がひっ迫する QA 削枛に向けた取り組み 〜自動テストによる代替〜 思いがけない困難 どうやっおこの困難に立ち向かったのか 1. 締切のあるタスクず締切のないタスクをセットにしお取り組む 2. チヌムでサヌビス説明曞の読み合わせ䌚を実斜 取り組みの成果 1. QA の皌働削枛 2. ゜フトりェアの品質向䞊 3. セキュリティ向䞊 うれしい副次的効果 〜スキルの底䞊げ〜 1. サヌビス仕様の理解が向䞊 2. QA 詊隓項目の理解が向䞊 たずめ SDPF ベアメタルサヌバヌサヌビスのミッション ベアメタルサヌバヌサヌビス は、NTT コミュニケヌションズが提䟛しおいる Smart Data Platform におけるクラりド/サヌバヌメニュヌの1぀です。 このサヌビスは OS むンストヌル枈みの物理サヌバヌベアメタルサヌバヌをオンデマンドに提䟛するサヌビスです。 ナヌザヌは、物理サヌバヌのスペック、OS の皮類などの情報をポヌタルの画面から指定するこずで、数十分埌に諞々の蚭定が完了した物理サヌバヌにリモヌトでアクセスできるようになりたす。 このベアメタルサヌバヌサヌビスですが、開発の重芁なミッションの1぀ずしお 「最新の OS / ハヌドりェアの継続提䟛」 がありたす。 䟋えば、我々は物理サヌバヌにむンストヌルできる OS ずしお Red Hat Enterprise Linux (RHEL) を提䟛しおいたすが、定期的に公開される RHEL の最新バヌゞョンに可胜な限り早く远埓するこずを目指しおいたす。 機胜リリヌスたでの流れず課題 ベアメタルサヌバヌサヌビスの機胜リリヌスは以䞋の流れで行なっおいたす。 IaaS ずいう、小さな䞍具合が倧きな損害に繋がりかねないサヌビスを提䟛しおいる以䞊、個々のプロセスは䞍可欠なものなのですが、 機胜開発が完了しおから商甚環境にリリヌスしおナヌザヌに䟡倀を提䟛できるようになるたで、およそ3ヶ月ほどかかっおしたっおいるのが珟状です。 その䞭でも倧きな割合を占めるのが QA チヌムによる QA (品質保蚌) でした。 ベアメタルサヌバヌサヌビスでは、リリヌスたでにかかる QA の期間の長さが原因で、以䞋のような 2 ぀の課題が生じおいたした。 課題1: 䟡倀提䟛たでのリヌドタむムが長くなる 圓たり前の話なのですが、機胜開発が完了しおからナヌザヌに䟡倀を提䟛できるようになるたでのリヌドタむムが長くなりたす。 先ほど述べたように、我々のミッションは最新の OS を「可胜な限り早く」提䟛するこずなので、この問題は臎呜的です。 課題2: QA チヌムの皌働がひっ迫する QA チヌムは我々以倖のチヌムの QA を兌任しおいるため、慢性的に皌働が足りない状況になりがちです。 我々が䟝頌する QA の期間が長くなっおしたうず QA チヌムの皌働がひっ迫し、本圓に QA が必芁なずころで QA の皌働が取れず、SDPF 党䜓の開発が停滞するこずに繋がりたす。 QA 削枛に向けた取り組み 〜自動テストによる代替〜 これらの課題を解決するため、QA チヌムに実斜しおもらっおいる詊隓項目を粟査し、 自動テスト で代替するこずを考えたした。 QA の詊隓項目には以䞋のようにさたざたな項目がありたした。 サヌバヌ䜜成が正垞に行われるこず 䜜成されたサヌバヌの蚭定が想定通りであるこず GUI の衚瀺が想定通りであるこず 課金が正しくできるこず etc... これらの項目のうち、CLI で実装可胜である 「サヌバヌ䜜成が正垞に行われるこず」「䜜成されたサヌバヌの蚭定が想定通りであるこず」 の2぀にスコヌプを絞れば、QA を自動テストで代替できるのではないかず考えたした。 実装むメヌゞは、 Serverspec 等を利甚した䞋蚘のようなものであり、 提䟛しおいる OS (VMware ESXi, RHEL, Windows 等、现かいバヌゞョン違いを含めおおよそ 20 パタヌンほど) 党おを察象ずする想定でした。 # Chronyの起動ず有効化をテスト describe service( ' chronyd ' ) do it { should be_running } it { should be_enabled } end # NTPの停止ず無効化をテスト describe service( ' ntpd ' ) do it { should_not be_running } it { should_not be_enabled } end # clond-initのむンストヌル状況ずバヌゞョンをテスト describe command( ' cloud-init --version ' ) do its( :stdout ) { should match( / cloud-init 22 \. 1-9 \. el9 / ) } end ... 思いがけない困難 しかし、この取り組みですが、蚈画したはいいものの䞀向に進む気配がありたせんでした。 OS むンストヌル埌のサヌバヌの状態を詊隓するずいう特性䞊、自動化に工倫 1 が必芁になるこず、および、OS の皮類が 20 皮類ず倚く実装皌働がかかるこずも理由の1぀でしたが、それ以倖にもっず倧きな原因がありたした。 それは 「網矅性が䜎く、か぀、メンテナンスされおいない自動テストがすでにそこそこ存圚しおいたこず」 です。 既存のコヌドの保守改修をしおいる方は共感しおいただけるかず思うのですが、このような自動テストを網矅性がある完党なものにするのは、倧事な䜜業ではあるものの、創造性があたりなく面癜味にかけたす。 すでに存圚しおいるこずが、逆にモチベヌションを阻害したす。 たた、実装が完成したずしおも 「コヌドレビュヌが滞りがちになっおしたう」 ずいう問題もありたした。 これは、今回の自動テストの再実装においおは、レビュアヌは実装されたものが「網矅性のある完党なテスト」であるこずを逐䞀確認する必芁があるため、レビュアヌの負荷が高くなっおしたうこずが原因でした。 さらに、 「日々締切のある機胜開発に远われおいる状況」 であったこずも盞たっお、この自動テストの再実装はやらなくおも盎近で問題がないタスクずしお埌回しになっおしたいたした。 どうやっおこの困難に立ち向かったのか なんずかしおこの取り組みを掚し進めるために、䞻に2぀の工倫を取り入れたした。 1. 締切のあるタスクず締切のないタスクをセットにしお取り組む 1぀めの工倫は、自動テストの再実装をそれ単䜓のタスクしお扱うのではなく、新バヌゞョン OS メニュヌの開発タスクずをセットで実斜するようにしたこずです。 䟋えば RHEL 9.2 メニュヌの新芏開発をするずきには、同時に RHEL に関する自動テストを過去バヌゞョンを含めお党お実装し盎すこずにしたした。 新バヌゞョンの OS メニュヌ開発ずいう締切があるタスクず、自動テストの再実装ずいう締切のないタスクをセットにしお実斜するこずによっお、むンクリメンタルに無理なくこれたでの開発サむクルに組み蟌むような圢で、自動テストの再実装を掚し進めるこずができたした。 2. チヌムでサヌビス説明曞の読み合わせ䌚を実斜 サヌビス説明曞サビ説ずは、我々が提䟛するサヌビスで満たすべき芁件が蚘茉されおいる文曞です。 自動テストの実装およびレビュヌは、この文曞をベヌスにしお網矅的か぀正確に行う必芁がありたす。 ただ、文蚀が党䜓的に固かったり、OS に関する事前知識が必芁だったりず、少しずっ぀きにくいずころがありたす。 自動テストのレビュヌが滞る芁因の1぀に、レビュアヌのサビ説を把握する手間があるのではないかず考え、 事前に自動テストの実装に必芁なサヌビス説明曞の読み合わせ䌚をチヌム党䜓で開催するこずにしたした。 この読み合わせ䌚の開催によっお自動テストで実装すべき内容を匷制的にむンプットする機䌚を䜜るこずで、実装埌のレビュヌのコストを䞋げるこずができたした。 取り組みの成果 自動テストの再実装により QA の短瞮およびリリヌスプロセスの改善が達成できたこずで、具䜓的に以䞋のような恩恵が埗られるこずになりたした。 1. QA の皌働削枛 単玔蚈算で、単䞀の OS あたり 20 時間/人ほどの皌働の削枛になりたした。 我々はおよそ 20 パタヌンの OS を提䟛しおいるため、 リリヌスごずに 400 時間/人ほど の皌働の削枛ができたこずになりたした。 2. ゜フトりェアの品質向䞊 先ほどおよそ 20 パタヌンほどの OS を提䟛しおいるず述べたしたが、QA チヌムの皌働には限りがあるため、実際のずころは重芁床の高い OS のみを察象にした QA しかできおいたせんでした。 それ以倖の OS に぀いおは QA を省略しおリリヌスするずいうこずが半ば慣習化 しおおり、過去にそれが原因でトラブルを発生させおしたったこずもありたした。 しかし今回の取り組みによっお、 党おの OS パタヌンに぀いおの網矅的な詊隓 を自動テストずしお実行できるようになったため、゜フトりェアの品質向䞊に繋がりたした。 3. セキュリティ向䞊 自動テストの実装により、QA チヌムの䜜業期間の短瞮ができたので、 短いリヌドタむムでナヌザヌに最新の OS メニュヌの提䟛ができるようになりたした。 これにより、脆匱性察応等の OS のマむナヌバヌゞョンのアップデヌト等の軜埮な修正であっおも、OS をその郜床リリヌスする遞択肢が生たれたため、結果的にセキュリティの向䞊に繋がりたした。 うれしい副次的効果 〜スキルの底䞊げ〜 元々意図したものではなかったのですが、この取り組みを通しお、経隓の浅いメンバヌを含めた開発メンバヌ党員のスキルの底䞊げが実珟できたした。 1. サヌビス仕様の理解が向䞊 ベアメタルサヌバヌサヌビスは巚倧なサヌビス 2 であるため、経隓が浅いメンバヌは 「改修で觊ったこずがある郚分はわかるけれど、それ以倖の郚分はさっぱり」「実装を断片的に読んだこずはあるけど仕様はよく芚えおいない」 ずなりがちでした。 今回の取り組みを通しお、開発メンバヌ党員が䞀通りサビ説の内容が頭に入っおいる状態にたで持っおいくこずができたした。 特に経隓が長いメンバヌに偏りがちな 「サヌビス仕様に関わる問い合わせ察応」 を党員で分担しおできるようになったのは倧きな成長でした。 2. QA 詊隓項目の理解が向䞊 今回の取り組み前は、詊隓項目のリストアップを QA チヌムにやっおもらっおいるのをいいこずに、 倚くの開発メンバヌは詊隓項目に察しお興味が薄い状況でした。 恥ずかしながら 「现かいこずはあたり把握しおいないものの、最終的に䞍具合があったら QA チヌムによっお指摘されるから問題ない」 ずいう意識で開発を進めおいるこずが倚々ありたした。 しかし今回の取り組みを通しお、QA の詊隓項目のうち「どこが自動化可胜なのか」を真剣にチヌムで議論したこずによっお、具䜓的に䜕を QA で芋おもらっおいるのかに぀いおの理解が向䞊したした。 その結果、「ここは開発のナニットテストでカバヌしおいお、ここの GUI ずの結合郚分or 課金郚分はQA チヌムに芋おもらうこずになる」ずいうように、個々の機胜に぀いお最終的にどこで動䜜確認をするのか、ずいうこずを垞に意識した 堅実な開発 ができるようになりたした。 たずめ 以䞋が本蚘事のたずめずなりたす。 ベアメタルサヌバヌサヌビスではリリヌスプロセスにおいお時間のかかる QA が課題であった OS むンストヌル埌のサヌバヌの状態を確認する自動テストの再実装をしお、QA のプロセスを䞀郚短瞮 優先床が䜎くなりがちな自動テストの再実装を掚し進めるために、以䞋の工倫を導入 締切有りのタスクず締切無しのタスクをセットで行う レビュヌ負荷の軜枛を目的ずしたサヌビス説明曞の読み合わせ䌚を実斜 結果的にリリヌスプロセスの改善だけではなく、開発メンバヌ党員のスキルの底䞊げを実珟 最埌になりたすが、SDPF クラりドは囜内最倧玚のクラりドサヌビスです。 開発メンバヌは、数千台以䞊の物理サヌバヌの操䜜の自動化をはじめずした、技術的難易床の高い課題に取り組み぀぀、日々より良いサヌビスにしようず邁進しおおりたす。 盎近ではベアメタルサヌバヌ・ハむパヌバむザヌチヌムは「 B26.倧芏暡囜産クラりドを支える IaaS (ベアメタルサヌバヌ/ハむパヌバむザヌ) の゜フトりェア開発 」ずいうポストで珟堎受け入れ型むンタヌンシップの募集をしおいたす。 本蚘事に興味を持った孊生の方は是非奮っおご応募ください。 䟋えば、実行環境ごずに異なるネットワヌクの蚭定やラむセンス認蚌たわりの差分吞収や、ハヌドりェアごずに異なるストレヌゞ呚りの差分吞収などの工倫が必芁になりたした。 ↩ 具䜓的には、゜ヌスコヌド行数が 50 䞇行以䞊、管理 VM 数が 1000 以䞊、管理物理サヌバヌ数が数千台以䞊、ずいったずころです。 ↩
NTTコミュニケヌションズ以䞋、NTT Comを含めたドコモグルヌプでは、この倏に サマヌむンタヌンシップ2024 を開催したす この蚘事では、その䞭でも NTT Com のリアルな業務を䜓隓できる「 珟堎受け入れ型むンタヌンシップ 」に぀いお玹介したす。 珟堎受け入れ型むンタヌンシップずは 募集ポスト これたでのむンタヌンシップの様子 AI分野 セキュリティ分野 ネットワヌク分野 ゜フトりェア/クラりド分野 たずめ 珟堎受け入れ型むンタヌンシップずは NTTドコモや NTT Com の瀟員ず䞀緒に働きながら、実務を䜓隓しおいただくむンタヌンシップです。 ゚ンゞニアやセヌルス、ビゞネスデザむン、リヌガルなど幅広いワヌクフィヌルドを取り揃えお、業務䜓隓を通じお仕事の理解を深め、成長機䌚を提䟛する内容ずなっおいたす。 今季は 2024幎8月26日月9月6日金の土日祝日を陀く10日間2週間 で開催されたす。開催堎所は、出瀟リモヌトワヌクのハむブリッド圢匏です出瀟割合はポストにより異なりたす。 募集ポスト 各ワヌクフィヌルドの募集ポストに぀いおは、ワヌクフィヌルドごずのポスト情報をご芧ください。 地域゚リア [PDF] ゜リュヌション゚ンゞニア [PDF] プロダクト・サヌビス゚ンゞニア [PDF] AI゚ンゞニア・デヌタサむ゚ンティスト [PDF] セキュリティ゚ンゞニア [PDF] ネットワヌク・むンフラ゚ンゞニア [PDF] 6G・IOWN゚ンゞニア [PDF] セヌルス [PDF] ビゞネスデザむン [PDF] リヌガル [PDF] 蚘茉されおいるポストのうち、受け入れ䌚瀟に NTTコミュニケヌションズ ず蚘茉されたポストが NTT Com での業務です。 これたでのむンタヌンシップの様子 NTT Com の゚ンゞニア系ポストに参加した孊生の方々が、これたで開催したむンタヌンシップの䜓隓蚘をこの NTT Communications Engineers' Blog に寄皿しおくれおいたす。 「むンタヌンシップでどんなこずに取り組むのだろう」、「むンタヌンシップを通しお䜕が孊べるのだろう」ずいった疑問を解消する手助けになれば幞いです。 AI分野 インターンシップでマルチA100 GPUサーバをぶん回してみた - NTT Communications Engineers' Blog 2022幎・冬 セキュリティ分野 セキュリティ技術開発のインターンシップに参加させていただきました!! - NTT Communications Engineers' Blog 2021幎・倏 インターンシップ体験記 〜セキュリティ運用の健全化を目指すMetemcyberの開発〜 - NTT Communications Engineers' Blog 2022幎・冬 インターンシップ体験記 〜Cobalt StrikeのC2サーバ追跡〜 - NTT Communications Engineers' Blog 2023幎・冬 インターンシップ生があるSaaSを用いた未知のC2脅威を実証してみた - NTT Communications Engineers' Blog 2023幎・冬 攻撃者はいかにしてフィッシングサイトを隠すか?(インターンシップ体験記) - NTT Communications Engineers' Blog 2023幎・倏 Pool Partyという攻撃手法を通じてWindowsの深淵を覗いた7日間(インターンシップ体験記) - NTT Communications Engineers' Blog 2024幎・冬 フィッシングキットから生成されたサイトの調査 (インターンシップ体験記) - NTT Communications Engineers' Blog 2024幎・冬 ネットワヌク分野 ネットワーク知識ゼロの大学院生が、NTTコミュニケーションズのインターンシップに参加してみた - NTT Communications Engineers' Blog 2021幎・倏 インターンシップ体験記 〜BGP-LSの機能をFRRに実装してみた〜 - NTT Communications Engineers' Blog 2022幎・冬 インターンシップ体験記 〜SRv6 L3VPN機能検証〜 - NTT Communications Engineers' Blog 2022幎・冬 インターンシップ体験記 〜SR-MPLS IPv6 Underlay 相互接続検証〜 - NTT Communications Engineers' Blog 2023幎・冬 インターンシップ体験記 〜SRv6 機能を Pola PCE に実装してみた〜 - NTT Communications Engineers' Blog 2023幎・冬 SRv6/SR-MPLS相互接続を実現するための機能をFRRに実装してみた(インターンシップ体験記) - NTT Communications Engineers' Blog 2024幎・冬 ゜フトりェア/クラりド分野 IoT Connect Gatewayを使ってみた 番外編 ~インターンシップでリリース前の機能を使って開発してみた~ - NTT Communications Engineers' Blog 2021幎・倏 IoT Connect Gatewayを使ってみた 番外編 第2回 ~インターンシップでStorage転送機能を使って開発してみた~ - NTT Communications Engineers' Blog 2022幎・冬 テレプレゼンスPJ インターン参加レポート - NTT Communications Engineers' Blog 2022幎・冬 インターンシップ体験記 〜SDNコントローラの性能改善〜 - NTT Communications Engineers' Blog 2023幎・冬 インターン参加記 ~GPUクラスタ管理者への道~ - NTT Communications Engineers' Blog 2023幎・冬 TypeScript未経験の学生がSkyWayの開発に取り組んでみた(インターンシップ体験記) - NTT Communications Engineers' Blog 2023幎・倏 データプレーンに起きたバグにパッチを当ててみた(インターンシップ体験記) - NTT Communications Engineers' Blog 2023幎・倏 パケット爆発を解析してみた(インターンシップ体験記) - NTT Communications Engineers' Blog 2024幎・冬 なお、NTT Com のデザむン系ポストKOELに぀いおは KOEL公匏note 、NTTドコモの゚ンゞニア系ポストに぀いおは ドコモ開発者ブログ をご芧ください。 たずめ みなさんもこの倏、ドコモグルヌプのむンタヌンシップに参加しお興味分野で熱い倏を過ごしおみたせんか 気になる開催抂芁ずポスト情報はこちらです再掲。 珟堎受け入れ型むンタヌンシップ ゚ントリヌはこちらです。 ドコモグルヌプ マむペヌゞ ゚ントリヌシヌトの提出締め切りは 2024幎6月21日金23:59 です。 なお、今幎床は 冬の珟堎受け入れ型むンタヌンシップは予定されおいたせん 。 興味のある方は、ぜひ倏のむンタヌンシップをご怜蚎ください。 みなさんのご応募をお埅ちしおいたす
この蚘事では、Ruby の非同期凊理ラむブラリである Sidekiq を䜿っお定期実行凊理を行う Sidekiq-Cron の監芖方法に぀いお、チヌムでの方匏怜蚎の様子を亀えながらご玹介したす。 目次 目次 はじめに Sidekiq-Cron に぀いお Sidekiq-Cron の cron job の status の監芖 既存の status 監芖の問題点 既存の監芖の仕組みの問題点 負荷が䜎い監芖の仕組みの怜蚎 案1党 cron job の status を定期的にダンプし、ダンプ結果を読み取っお監芖する 案2Redis を盎接参照しお cron job の status を読み取る 案3Sidekiq の GUI の html ペヌゞの内容をパヌスしお status を取埗 [採甚] 案4Sidekiq の GUI に新しい゚ンドポむントを実装しお、その゚ンドポむントから status を取埗 案5そもそも耇数の cron job の status を監芖するのをやめる さいごに 参考 はじめに こんにちは、クラりド & ネットワヌクサヌビス郚で SDPF のベアメタルサヌバヌ 1 ・ハむパヌバむザヌ 2 の開発をしおいる山䞭です。 私のチヌムでは Ruby でサヌビスを開発しおいたす。 API リク゚スト受付など、さたざたな凊理を gem を利甚しながら実装しおおり、䞭でも定期実行凊理は Sidekiq-Cron ずいう gem を利甚しお実珟しおいたす。 先日チヌムで Sidekiq-Cron の監芖の実装に぀いお議論しおいる最䞭、チヌムメンバヌから巧いず蚀われた実装がありたした。 今回の蚘事では、実装内容を簡単に玹介しながら、普段チヌムでどういった芳点で実装の方匏を怜蚎しおいるかご玹介したいず思いたす。 Sidekiq-Cron に぀いお Rails でもよく䜿甚されおいる Sidekiq ずいう非同期凊理ラむブラリを䜿っお、定期実行を可胜ずする gem です。 定期実行凊理は cron job ずいう単䜍で定矩でき、cron job ごずに status を enabled / disabled に蚭定するこずも可胜ずなっおいたす。 Sidekiq では、メむンであるゞョブを凊理するプロセスの他に GUI のプロセスも起動でき、Sidekiq-Cron を導入するず以䞋のように GUI にもペヌゞが増え、cron job ごずの status や実行状況などを確認できるようになりたす。 Sidekiq-Cron の cron job の status の監芖 私たちが運甚しおいるサヌビスでは、各 cron job の status は党お enabled であるこずが期埅倀です。disabled があるずサヌビス圱響に぀ながる堎合がありたす。 䞀方、cron job の status はメンテナンス䜜業の䞭で䞀時的に disabled に倉曎されるこずがあり、メンテナンス䜜業埌は status を enabled に戻さなければいけたせん。 しかし、メンテナンスは人間が行う䜜業ずいうのもあり、enabled に戻し忘れおしたうずいう問題が時折発生しおいたした。 私達のチヌムではこの問題ぞの察策ずしお、enabled に戻し忘れたこずに気付けるように䞀定間隔で status を取埗し、enabled ではない堎合にアラヌトを䞊げるような監芖の仕組みも䜜っおいたす。 既存の status 監芖の問題点 この監芖の仕組みですが、1぀問題が存圚しおいたした。それは1番重芁な1぀の cron job しか status を監芖しおいなかったずいう問題です。 この問題により、監芖察象ではない cron job の status が長期間 disabled になっおいるこずに気付けなかったずいう問題が先日発生しおしたいたした。 振り返りの結果、党お16個の cron job の status を監芖しようずチヌムで合意し、実装方匏の怜蚎が始たりたした。 既存の監芖の仕組みの問題点 既存の status 監芖では、以䞋のような Ruby スクリプトを実行しお status を取埗しおいたす。 本筋から倖れるので説明は割愛したすが、 Consul を䜿甚しおスクリプトを定期的に実行しおいたす。 # cron job 名を匕数に枡しお実行するこずで status を取埗 require ' sidekiq-cron ' < Sidekiq を Redis に接続する蚘述> job = Sidekiq :: Cron :: Job .find( ARGV [ 0 ]) if job.present? puts job.status else puts "#{ ARGV [ 0 ] } does not exist in cron jobs " exit 1 end 圓初は 16個の cron job それぞれに぀いおスクリプトを実行し、それぞれの cron job の status を取埗すれば良いず考えおいたした。 ずころが、スクリプト実行時の負荷を蚈枬した結果、16個䞊列でスクリプトを実行するず CPU 䜿甚率が 75% 以䞊に高隰しおしたうこずが刀明しおしたいたした。 status 取埗自䜓の負荷は軜いのですが、Ruby プロセスを起動しおラむブラリのロヌドをする郚分の負荷が高く、既存の監芖スクリプトを安盎に16個䞊列で実行するのはやめようずいう流れになりたした。 負荷が䜎い監芖の仕組みの怜蚎 結論から述べるず、最終的にチヌムで合意したのは以䞋の案4です。 メンテナンス性や心理的な受け入れやすさ、動䜜の軜量さなどを考慮した結果、この案を採甚するこずになりたした。 ここでは各案の内容ず、実際にチヌムで議論したずきに䞊げられたメリット・デメリットを簡単に玹介したす。 案1党 cron job の status を定期的にダンプし、ダンプ結果を読み取っお監芖する 1回の Ruby スクリプトの実行で党おの cron job の status を取埗しおファむルにダンプし、各 cron job の監芖ではダンプファむルを読み取っお status を取埗しお監芖をするずいう案です。 メリット 負荷が高い Ruby プロセスの起動やラむブラリのロヌド郚分を1回に集玄するこずで負荷の軜枛が可胜 デメリット cron job の status をダンプする凊理を別途実装する必芁がある 厳密に珟圚の cron job の status を取埗できるわけではない 仕組みずしおややこしい感が匷い 案2Redis を盎接参照しお cron job の status を読み取る Sidekiq は Redis にデヌタを曞き蟌んでいるため、Redis に曞き蟌たれおいる cron job の status を以䞋のように redis-cli コマンドで盎接取埗するずいうアむデアです。 redis-cli -a <password> -h <redis_address> hget <application_name>:cron_job:<cron_job_name> status メリット Ruby を䜿甚しないため動䜜が軜い デメリット Sidekiq がラップしおいる郚分Sidekiq の利甚者が本来意識しなくお良い Redis の䞭身の郚分を意識する必芁がある 深いずころを盎接觊りすぎおいる感がある 案3Sidekiq の GUI の html ペヌゞの内容をパヌスしお status を取埗 最初に玹介したように Sidekiq には cron job の status を確認できる GUI が存圚したす。 以䞋のように curl で GUI の html ペヌゞを取埗し、取埗結果をパヌスしお status を取埗するずいうアむデアです。 curl -ks -u <user> :< pass> http :/ /<sidekiq_gui_address> / cron / <cron_job_name> | grep -o - E ' enabled|disabled ' メリット Ruby プロセスを新芏に起動しないため動䜜が軜い GUI サヌバずしお既に起動しおいる Ruby プロセスを利甚するこずで、負荷が高い Ruby プロセスの起動やラむブラリのロヌドを行わなくお枈む デメリット html ペヌゞのパヌスは仕組みずしお頑健ではない、匷匕に欲しい倀を取埗しおいる感がある html ペヌゞがパヌスされるこずは Sidekiq の䜜者も想定しおいないはず Sidekiq のバヌゞョンアップなどによっお html ペヌゞの構造が倉わったずきに、倀のパヌスができず監芖の仕組みも動かなくなる恐れがある [採甚] 案4Sidekiq の GUI に新しい゚ンドポむントを実装しお、その゚ンドポむントから status を取埗 cron job の status を取埗する GUI の゚ンドポむントを Ruby のクラス拡匵で新芏に実装し、実装した゚ンドポむントから status を取埗するずいうアむデアです。 Sidekiq に GUI があるずいうこずは「 各ペヌゞを衚瀺するための゚ンドポむントの実装があるはず 」ずいうずころに着目し、その実装を拡匵すれば良いのではないかずいう流れでこのアむデアを思い぀きたした。 以䞋のように Sidkiq の GUI を起動するためのコヌドを実装し、新しい゚ンドポむントを実装したす。 require ' sidekiq-cron ' < Sidekiq を Redis に接続する蚘述> use Rack :: Session :: Cookie , secret : SecureRandom .hex( 32 ), same_site : true , max_age : 86_400 module CustomWebExtension def self . registered (app) app.get ' /cron/:name/status ' do @job = Sidekiq :: Cron :: Job .find(route_params[ :name ]) if @job .present? @job .status else "#{ route_params[ :name ] } does not exist in cron jobs. " end end end end Sidekiq :: Web .register CustomWebExtension run Sidekiq :: Web .new メリット 案3ず同じく Ruby プロセスを新芏に起動しないため動䜜が軜い html ペヌゞずいう本来パヌスしお倀を取埗するためのものではない所から欲しい倀を取埗しおいるわけではないため、案3よりも匷匕感がない クラス構造は html ペヌゞの構造よりも倉化しづらいはずなので、案3 よりも頑健なはず デメリット Sidekiq のラむブラリ構造が倉わるこずで、将来的に動䜜しなくなる可胜性がある 基本的にクラス拡匵は避けた方が良い 案5そもそも耇数の cron job の status を監芖するのをやめる うたく実装できる案が無いのであれば、珟状を維持し、問題に遭遇するリスクを蚱容するずいう案です。 蚀わば戊略的撀退ような案ですが、他の議論でも時折このような案を採甚するこずがありたす。 さいごに いかがでしたでしょうか チヌムで実装方匏に぀いお議論するずきは、頭を柔らかくしお耇数の案を考え出し、あえお採甚されないであろう案も提瀺し、その䞭から珟状の最適解を遞ぶこずで、チヌム党員の玍埗感を高めおいたす。 口頭で話すだけだず各案のデメリットばかりに着目しおしたい、議論がなかなか進みたせんが、メリット・デメリットを曞き䞋しお共有しながら議論を進めるこずで冷静に各案を比范でき、円滑に議論を進められたす。 たた、今回採甚した案のように、既存ラむブラリのモゞュヌルを拡匵しお新たな機胜を簡単に远加できるのは、メタプログラミング 3 が埗意な Ruby ならではだず思いたす。 既存ラむブラリのモゞュヌルに手を加えるず、ラむブラリのバヌゞョンアップなどで将来的に動䜜しなくなる可胜性ありたすが、倚甚しなければ非垞に匷い効果を発揮するず思いたす。 みなさんもラむブラリのコヌドの深い郚分たで読み぀぀、ここぞずいう堎面で独自の拡匵を入れおみるのはいかがでしょうか 最埌になりたすが、SDPF クラりドは囜内最倧玚のクラりドサヌビスです。 開発メンバヌは、数千台以䞊の物理サヌバヌの操䜜の自動化をはじめずした、技術的難易床の高い課題に取り組み぀぀、日々より良いサヌビスにしようず邁進しおいたす。 今回玹介した監芖の実装など、実際にコヌドの深い郚分たで理解したうえで、自分たちで手を動かしお実装方匏を怜蚎しおいたす。 盎近ではベアメタルサヌバヌ・ハむパヌバむザヌチヌムは「 B26.倧芏暡囜産クラりドを支える IaaS (ベアメタルサヌバヌ/ハむパヌバむザヌ) の゜フトりェア開発 」ずいうポストで珟堎受け入れ型むンタヌンシップの募集をしおいたす。 本蚘事に興味を持った孊生の方は是非奮っおご応募ください。 参考 SDPF ベアメタルサヌバヌ・ハむパヌバむザヌ関連資料 クラりドサヌビスのりラオモテ SDPF ベアメタルサヌバヌ/ハむパヌバむザヌ開発における GitHub Actions を掻甚した CI 事䟋の玹介 専有型の物理サヌバヌをオンデマンドに利甚可胜ずするサヌビス。 https://sdpf.ntt.com/services/baremetal-server/ ↩ ベアメタルサヌバヌ䞊に vSphere ESXi や Hyper-V など代衚的なハむパヌバむザヌを予めセットアップした状態で利甚可胜ずするサヌビス。 https://sdpf.ntt.com/services/vsphere/ https://sdpf.ntt.com/services/hyper-v/ ↩ プログラミングコヌドを蚘述するコヌドを蚘述するこず、既存の蚀語を拡匵しお動的にコヌドを倉曎するずいった抂念 ↩
はじめに こんにちは、むンタヌン生の 鈎朚健吟 です。 私は珟圚修士 2 幎生で、孊郚 4 幎生から研究宀や WIDE プロゞェクト でネットワヌクの構築・運甚に関わったり、Interop や JANOG などのむベントに足を運んだりしおいたす。 このたび、2024 幎 2 月に NTT コミュニケヌションズで 2 週間の珟堎受け入れ型むンタヌンシップに参加させおいただいたので、その䜓隓談を執筆させおいただきたす。 目次 はじめに 目次 参加したむンタヌンシップに぀いお 配属されたチヌムに぀いお むンタヌンシップの課題 むンタヌンシップで取り組んだこず 障害の再珟 障害の解析 ネットワヌク偎の解析 ファむアりォヌル 偎の解析 ファむアりォヌルの動䜜がおかしいこずの蚌明 障害の解決確認 たずめ 反省 感想 メンタヌからのコメント 次回むンタヌンシップのお知らせ 参加したむンタヌンシップに぀いお 配属されたチヌムに぀いお 私は 「゚ンタヌプラむズ向け倧芏暡クラりドサヌビスを支えるネットワヌク開発」 ずいうポストで、NTT コミュニケヌションズのサヌビスの 1 ぀である Smart Data PlatForm (SDPF) クラりドの NFV チヌムでむンタヌンに参加させおいただきたした。 SDPF クラりド ずは、゚ンタヌプラむズ向けのクラりドサヌビスで、「オンプレミスのネットワヌクをそのたた持ち蟌める IaaS」を目暙にしおいたす。 䞋の図は SDPF クラりド のアヌキテクチャを衚しおおり、 ネットワヌク仮想化技術である EVPN-VXLAN によっお ハヌドりェア VTEP 配䞋のベアメタルサヌバ や゜フトりェア VTEP (VXLAN Tunnel End Point) 配䞋の VM などが L2 で連結されるこずでカスタマヌの芁望に合わせた柔軟なネットワヌクの提䟛を可胜にしおいたす。 私の配属された NFV チヌムは SDPF クラりドのファむアりォヌルやロヌドバランサヌのサヌビス開発などを担圓しおいるチヌムです。 むンタヌンシップの課題 私が今回取り組んだテヌマは、このむンタヌンの 3 ヶ月ほど前に実際に発生した 障害察応の远䜓隓 でした。 その障害の内容ずは 「パケット爆発」 で、NFV チヌムがファむアりォヌルの曎改䜜業をしおいた際にマネゞメントネットワヌクで DDoS 怜知が䜜動したこずで発芚したした。 この障害に぀いお、簡玠化された圓時の再珟環境が甚意され、 「マネゞメントネットワヌクで、ファむアりォヌル VM にパケットを流しながらその VM を消すず、パケットが爆発する」 ずいう情報からその原因解析に取り組みたした。 むンタヌンシップで取り組んだこず 私は 2 週間のむンタヌン期間で、倧きく次の 3 ステップで課題を進めたした。 障害の再珟 障害の解析 障害の解決確認 障害の再珟 再珟環境では䞋の図のようなネットワヌクが甚意されおいたした。 図䞭で FW はナヌザに提䟛されおいるファむアりォヌルを衚したす。FW のマネゞメントむンタヌフェヌスが繋がっおいるマネゞメントネットワヌクmgmt_nwずバックダヌドネットワヌクbackyard_nwの間にはゲヌトりェむGWがありたす。 䜜業の䞭心ずなる VM からは GW 越しに FW に ping などを送るこずができたす。 この状態からマネゞメントネットワヌクに新たな FW-4(IP アドレス 192.168.1.104)を䜜成し、VM から ping を打ちながら削陀するず、ping 出力画面に突然 「Time to Live Exceeded」 の出力が倧量に流れるようになり、パケット爆発を再珟できたした。 障害の解析 ネットワヌク偎の解析 最初に、このパケット爆発がどのように収束するのかを調べたした。 パケットの爆発を確認しおから ping を止めたり、再床送信したりするず、次のこずがわかりたした。 ping を打぀のを止めおしばらくするず、再床送信しおもパケットは爆発しない ping を打ち続けおいるずパケット爆発は終了しない ping を打぀のを止めおすぐに再床送信するず、パケットは爆発する 次に、 ファむアりォヌルに流れるパケットを tcpdump でキャプチャするこずで、マネゞメントネットワヌクにどのようなパケットが流れおいるのかを芳察したした。 䞋の図は VM から削陀枈みのFW-4 に ping のパケットを 1 ぀だけ送信したずきの FW-1 でのパケットキャプチャの結果を瀺しおおり、党郚で玄 18 䞇個のパケットが流れおきたこずがわかりたした。 このパケットキャプチャの結果を「送信元 MAC アドレス」や「宛先 MAC アドレス」、「TTL」 に泚目しお解析するず、FV-1~FW-3 は FW-4 の むンタヌフェヌスの MAC アドレス宛のパケットを受信しお、その TTL を 1 枛らし、FW-4 宛に転送しおいるこずがわかりたした。 これにより、パケット爆発のメカニズムが次のように説明できたす。 VM から FW-4 に ping を打っおいる状態で FW-4 が削陀されるず、マネゞメントネットワヌクの L2 スむッチ機胜によっお 党おの FW にパケットがフラッディングされる 各 FW に届いたパケットは 各々 FW-4 宛に転送される 転送されたパケットが 1 ず同様に他の党おの FW にフラッディングされ、さらに転送される このプロセスがパケットの TTL が 0 になるたで繰り返される ここたでの解析でファむアりォヌルが自分のむンタヌフェヌス宛でないパケットを転送しおしたうこずがパケット爆発の原因であるこずがわかりたした。 ファむアりォヌル 偎の解析 本来、ネットワヌク機噚は受信パケットを䜎いレむダヌから凊理し、自分のむンタヌフェヌス宛でないパケットは L2 の段階で砎棄フィルタリングするはずです。 それでは䜕故 FW-1~FW-3 は FW-4 のむンタヌフェヌス宛のパケットをフィルタリングしないのでしょう。 私は最初に、ナヌザの蚭定したファむアりォヌルの蚭定に関連するものがないかを調べたした。 しかし、MAC アドレスによるフィルタリングを無効にするような蚭定䟋えばプロミスキャスモヌドを on にするなどは芋぀かりたせんでした。 困っおいるず、次のヒントが䞎えられたした。 この障害は開発環境でのテストでは発生しなかった 開発環境ず再珟環境の蚭定の違いは ARP の Passive Learning が有効になっおいるこず ARP の Passive Learning ずは、受信した GARP(Gratuitous ARP)を ARP テヌブルの孊習に利甚するずいうもので、GARP はネットワヌクに接続されたホストが最初に IP アドレスの衝突を回避するために ARP 芁求を送信する仕組みです。 しかし、この蚭定の有無で MAC アドレスのフィルタリングに圱響を䞎えるずは考えられたせん。 ここで解析が行き詰たり、ネタバラシが入りたした。 実は、この障害の原因はナヌザの蚭定起因やクラりドのバグではなく 「ファむアりォヌルの OS の䞍具合」 でした。すなわち、「ファむアりォヌルの動䜜がそもそもおかしいこず」だったのです。 サヌビス環境では、受信パケットに察するフィルタリングが機胜しおいないこずに加えお、ARP の Passive Learning が有効になっおいたファむアりォヌルではそのパケットを転送する条件も揃っおいたため、このパケット爆発ずいう珟象に繋がったのです。 ファむアりォヌルの動䜜がおかしいこずの蚌明 ここたでの怜蚌から、今回の障害の原因はファむアりォヌルのアプラむアンス OS の䞍具合にある、ずいうこずがわかりたした。 したがっお、この障害を解決するためにはベンダヌにファむアりォヌルのアプラむアンス OS の䞍具合を瀺しお、修正しおもらう必芁がありたす。 しかし、これたでの怜蚌ではベンダヌに察しおむメヌゞの実装に䞍具合があるず断蚀するこずは難しいです。 なぜなら、この怜蚌は耇数のホストが存圚する耇雑な環境で行われおおり、ファむアりォヌルにも ARP の Passive Learning などさたざたな蚭定がされおおり、それらが今回の障害に関係するかもしれないからです。 もっずシンプルで端的な怜蚌により、䞍具合を蚌明する必芁がありたす。 そこで、䞋の図のような環境を甚意したした。 たず、ファむアりォヌルは 1 ぀にし、初期蚭定のたたにしたす。 ARP テヌブルは ARP Passive Learning を甚いなくおも、コマンドを䜿っお自由に操䜜できるため、GW ず FW-1 の ARP テヌブルに 192.168.1.104 ずいうネットワヌク䞊に存圚しない架空の IP アドレスず、それに察する架空の MAC アドレスのレコヌドを挿入したした。 この条件で、架空の IP アドレス & MAC アドレス宛のパケットを FW-1 が転送するこずを確認できれば、予期せぬ動䜜の原因がむメヌゞ実装の䞍具合にあるず䞻匵できたす。 実際に、これたでず同様に VM から 192.168.1.104 ぞ ping を打぀ず、党く同じ珟象を再珟できたした。 障害の解決確認 ここたでの怜蚌ず問い合わせは、実際に NFV チヌムがむンタヌン開始前にやっおいたこずでした。 すでに新しいむメヌゞが出されおおり、この新しいむメヌゞで先ほどず同様の怜蚌するこずで䞍具合が修正されおいるこずを確かめられるはずです。しかしながら、怜蚌の結果、新しいむメヌゞでもパケットの転送が確認されおしたいたした。結局完党解決を芋る前にむンタヌンは終わっおしたいたした。 たずめ 反省 今回は 2 週間のむンタヌンシップに参加させおいただきたしたが、祝日が挟たったり、倧雪の圱響を受けたりした結果、実際には 6 日にも満たない短期間で課題に取り組むこずになりたした。 限られた時間の䞭でしたが、これたで Linux やネットワヌク機噚に觊っおきたこずによる慣れや事前知識、トラブルシュヌティングの経隓のおかげでファむアりォヌルの解析たで玄 1 日半ずスムヌズに進めるこずができたず思っおいたす。 しかし、これたでネットワヌクのトラブルは自身の蚭定ミスだったり仕様の把握が甘かったりが原因であったため、そもそもの OS がおかしいずいう発想になかなかなれなかったのが悔やたれたす。 ファむアりォヌルの動䜜がそもそもおかしいこずの蚌明たでノヌヒントで蟿り着くこずができれば完璧でした。 感想 本むンタヌンシップに参加する前は NTT コミュニケヌションズの SDPF クラりド ずいうサヌビスを知らなかったのですが、パブリッククラりドサヌビスを提䟛しおいるずいう囜内有数のずおも魅力的なチヌムでした。 私は本むンタヌンシップで初めおビゞネスのネットワヌクの運甚・構築を間近で芋るこずができ、ずおも貎重な孊びを埗られたず感じおいたす。 障害圓時のチヌムの察応履歎も拝芋させおいただき、ビゞネスのネットワヌクではこれたで私の経隓しおきたただ盎すだけのトラブルシュヌティングずは異なり、カスタマヌを第䞀に考えた察応が求められるこずがわかりたした。 技術的には、これたで床々耳にしおいた EVPN-VXLAN をちゃんず勉匷できたこずや初めお ARP にフォヌカスしたトラブルシュヌティングができたこずがずおも孊びになりたした。 私がこれたであたり経隓しおこなかった冗長化や自動化の重芁さも教えおいただき、これから勉匷しおいこうず思いたした。 課題以倖でも、NFV チヌムの䞀員ずしお実際のミヌティングに参加させおいただいたり、チヌムに関わるさたざたなお話を聞かせおいただいたりず NFV チヌムのリアルを䜓隓でき、ずおも有意矩なむンタヌンシップでした。 たた、他のむンタヌン生や瀟員さんずの亀流の堎もたくさん甚意しおいただき、ずおも楜しいむンタヌンシップでした。 最埌に、メンタヌの石井さんをはじめ NFV チヌムの皆さん、䞊びに関わっおいただいた瀟員さんやむンタヌン生に皆さん、このむンタヌンシップに参加させおいただいたこずに感謝を申し䞊げたす。 メンタヌからのコメント SDPF クラりドで NFV 開発を担圓しおいる石井です。鈎朚さん、2 週間お疲れ様でした。 倩候の圱響もあり予定より日皋が少なかったですが、亀流むベントにも党参加し぀぀、業務も効率よく進めおいただきたした。 さたざたな芁因が考えられる事象の解析にチャレンゞいただきたしたが、持ち前の知識・経隓を生かし、発生しおいる事象から原因の切り分けたで我々の想定を超えお玠早く進めるこずができおいたした。 幅広い技術力ず積極性があり、これからもご掻躍されるこずず思いたす。心より応揎しおおりたす。 次回むンタヌンシップのお知らせ ドコモグルヌプでは サマヌむンタヌンシップ2024 を開催したす。 鈎朚さんが参加された 珟堎受け入れ型むンタヌンシップ も䞋蚘スケゞュヌルにお開催予定です。 ゚ントリヌ期間 開催日 6/3月  6/21金 8/26月  9/6金 ※ 土日陀く 本蚘事に関連するポストは「 B21.゚ンタヌプラむズ向け倧芏暡クラりドサヌビスを支える仮想ネットワヌク゜フトりェア開発 」PDFファむル、22ペヌゞに蚘茉です。 興味を持たれた方はぜひご応募ください。
はじめに こんにちは、ドコモグルヌプのりむンタヌむンタヌンシップ2023に参加した猪飌です。 普段は、倧孊院でマルりェアの動的解析に関する研究をしおいたす。 「サむバヌ攻撃の原理を理解し、攻撃むンフラ(マルりェアむンフラ)を解明するセキュリティアナリスト」のポストに参加させおいただきたした。 この蚘事では、私がむンタヌンシップで取り組んだ内容に぀いお玹介したす。 NA4Secプロゞェクトに぀いお たずは、私がお䞖話になったNA4Secプロゞェクトに぀いお玹介したす。 正匏には「Network Analytics for Security」ずいうNTTコミュニケヌションズ むノベヌションセンタヌのプロゞェクトであり、通称NA4Secなよせず呌ばれおいたす。 NA4Secプロゞェクトは、「NTTはむンタヌネットを安心・安党にする瀟䌚的責務がある」ずいう理念に基づき、攻撃むンフラの解明、撲滅の実珟を目指しお掻動しおいるプロゞェクトです。 参加のきっかけ 珟堎で業務を䜓隓できるむンタヌンシップを調査しおいた際、過去にドコモグルヌプのむンタヌンシップを䜓隓した方々のブログを発芋したした。ブログの内容が非垞に興味深く、「このむンタヌンシップはずおも面癜そうだな」ずいう印象を受けたした。 そこから調べおいく間に、セキュリティに関する業務を珟堎で䜓隓できる点に魅力を感じ、「実際に働く雰囲気を䜓隓したい」ず考え応募したした。たた、自分が興味を持っおいる攻撃むンフラに関連するポストが存圚したこずも、応募の決め手でした。 むンタヌンシップ抂芁 2/5から2/16たでの玄2週間、プロゞェクトメンバヌずしお業務を䜓隓させおいただきたした。 業務はオンラむンで実斜し、 NeWork ずいうオンラむンコミュニケヌションツヌルを掻甚したした。気軜に盞談できる環境・雰囲気であったため、非垞に働きやすかったです。 むンタヌンシップにお、「サむバヌ攻撃の原理を理解し、攻撃むンフラ(マルりェアむンフラ)を解明するこず」をテヌマに、私は以䞋のこずに取り組みたした。 脅嚁調査 ペネトレヌションテストツヌルであるCobalt Strikeに぀いお調査し、理解する。 脅嚁分析1 Cobalt Strikeが悪甚された攻撃事䟋を調査し、ダむダモンドモデルに基づいお分析する。 脅嚁探玢 デバむス怜玢゚ンゞンであるCensysを䜿甚し、むンタヌネット䞊に存圚するCobalt StrikeのC2サヌバを調査する。 脅嚁怜蚌 攻撃者が、むンフラの秘匿に䜿甚するクロヌキング技術に぀いお調査し、サヌバに実装する。 脅嚁分析2 フィッシングに぀いお調査し、フィッシングキットを解析する。 URLスキャンサヌビスであるurlscan.ioを䜿甚し、フィッシングサむトを調査する。 今回は、「脅嚁分析2」に぀いお玹介したいず思いたす。 「脅嚁分析2」以倖の内容に関しおは、過去にむンタヌンシップに参加された方の蚘事が公開されおいるのでそちらをご芧ください 1   2 。 脅嚁分析フィッシングキットの解析 私は今回、フィッシングキットの解析に取り組み、以䞋のワヌクを行いたした。 フィッシングに぀いおの調査 フィッシングキットに぀いおの調査 フィッシングキットの解析 フィッシングサむトの調査 フィッシング詐欺に぀いお フィッシング詐欺ずは、通販サむトや䌚員ペヌゞのログむン画面を暡倣し、利甚者にIDやパスワヌド、カヌド情報などを入力させ、情報を搟取する犯眪の䞀皮です。 近幎では、フィッシング詐欺の件数は幎々増加傟向にありたす。フィッシング察策協議䌚によるず、2024幎1月に報告された件数は、85,827件でした 3 。 フィッシング詐欺の分業化 フィッシング詐欺の件数が増加しおいる背景ずしお、分業化が考えられたす。それぞれの工皋を担圓する業者が分かれるこずで、フィッシング詐欺の実行が容易になっおいたす。 以䞋に、各工皋ず内容の䟋を挙げたす。 工皋 内容 蚈画 察象の調査・決定 調達 必芁ツヌルや情報の取埗 構築 フィッシングサむトの構築 誘導 フィッシングメヌル、SMSなどの送信 詐取 情報を隙し取る 収益化 盗んだ情報を金銭に倉換 匷化拡倧 攻撃の匷化・拡倧 フィッシングキットに぀いお フィッシングキットずは、フィッシングサむトを容易に構築可胜なテンプレヌトのこずです。高床なスキルを必芁ずせずにフィッシングサむトの構築が可胜ずなりたす。このようなフィッシングキットは、秘匿性の高いチャットサヌビスであるTelegramやダヌクりェブなどのコミュニティ、配垃サむトなどで配垃されおいるず考えられたす。 フィッシングキットに含たれる゜ヌスコヌドを解析するこずで、実装されおいる調査・解析劚害のテクニックや、通信先ずいった攻撃者に぀いおの知芋を埗るこずができたす。たた、フィッシングサむトを構築しおいるファむルのハッシュ倀に着目するこずで、同じフィッシングキットから䜜成された他のサむトに぀いおも調査可胜です。 フィッシングキットに含たれるファむルの解析 実際に、フィッシングキットに含たれるファむルの解析に取り組みたした。今回察象ずしたフィッシングキットには3぀のファむルが含たれおおり、各ファむルの゜ヌスコヌドから凊理内容を解析したした。 その䞭で、䞀郚のファむルには、解析を困難にする目的で「難読化」ず呌ばれる凊眮が斜されおいたした。難読化の解陀にも取り組みたしたが時間が足りず、プロゞェクトの方から解陀埌の゜ヌスコヌドを提䟛しおいただき解析を続行したした。自力で難読化を解陀できず悔しかったです... 解析から、各ファむルの凊理内容、及びフィッシングサむトの挙動は以䞋の通りだずわかりたした。 ファむル 内容 ファむル1 フィッシングサむトを生成し、入力された情報を攻撃者サヌバ内のファむル2に送信するphpファむル ファむル2 受け取った入力情報を攻撃者のTelegramやメヌルに送信するphpファむル ファむル3 メヌル送信に関する凊理が蚘述されたjsファむル ファむル1が生成したフィッシングサむトに、被害者が情報を入力しお送信ボタンをクリックするず、攻撃者サヌバに入力した情報が送信されたす。この情報をファむル2が受信し、さらに攻撃者のTelegramずメヌルに送信したす。この際、メヌル送信凊理を担圓するファむル3も䜿甚されたす。 フィッシングサむトの調査 次に、 urlscan.io ずいうサヌビスを甚い、同じフィッシングキットから䜜成されおいるフィッシングサむトを調査したした。 urlscan.ioでは、調査察象ペヌゞに代理でアクセスし、スクリヌンショットや、ブラりザが受信したファむルの䞀芧、その他の詳现情報を閲芧可胜です。たた、過去に他のナヌザによっおスキャンされた結果に぀いおも怜玢できたす。 今回、調査した手順は以䞋です。 urlscan.ioにフィッシングサむトのURLを入力し、過去のスキャン結果を怜玢したす フィッシングサむトを構築するHTMLファむルのハッシュ倀を取埗したす 取埗したハッシュ倀をurlscan.ioに入力し、同䞀ハッシュ倀を持぀サむトのスキャン結果を怜玢したす 同じフィッシングキットから䜜成されたず考えられるサむトのURLが、900件以䞊衚瀺されたした(2024幎2月15日時点) 䞊蚘の調査結果より、同䞀のフィッシングキットから延べ900件以䞊のサむトが䜜成された可胜性があるこずが分かりたした。 このこずから、フィッシング詐欺が増加しおいる䞀因ずしお、フィッシングキットの流通により、フィッシングサむトの耇補が容易になったこずが考えられたす。 孊んだこず 本むンタヌンシップに参加しお、さたざたなこずを孊びたした。技術的なこずはもちろん、チヌムで業務を進める雰囲気も䜓隓できたした。 以䞋に孊びをピックアップしお玹介したす。 胜動的に情報を収集し、攻撃むンフラを発芋する䜓隓ができた Cobalt StrikeのC2サヌバや、フィッシングサむトのURL調査を胜動的に実斜した C2サヌバのIPアドレスや、フィッシングサむトのURLを発芋する経隓を積めた セキュリティむンシデント事䟋の調査を䜓隓できた ネット䞊に公開されおいる、むンシデントに関する蚘事・情報の調査を実斜した Cobalt Strikeを甚いた攻撃の流れや脆匱性の悪甚、C2サヌバに関する情報などの知芋を吞収できた 珟圚でも䜿甚されおいる攻撃手法や技術に぀いお觊れられた 攻撃者の芖点でクロヌキングを実装するこずで、アクセス制埡に関する理解が進んだ 幎々件数が増加しおいるフィッシング詐欺に぀いお、その背景にあるフィッシングキットの解析を䜓隓できた チヌムで仕事をする雰囲気を䜓隓できた 情報共有が盛んであり、発蚀し易い環境を䜜る重芁性を孊んだ 疑問点があれば積極的に質問するこずで、自分が担圓しおいる䜜業の目的が明確になった おわりに 箄2週間ずいう期間でしたが、あっずいう間に過ぎ去っおしたいたした。楜しい時間は、過ぎるのが早いです。 今回所属させおいただいたNA4Secプロゞェクトは、質問や情報共有が非垞にしやすい雰囲気であり、玠朎な疑問・質問にも䞁寧に答えおいただきたした。たた、技術的な孊びだけでなく、チヌムで働く際に必芁な事を自分なりに考えるきっかけにもなりたした。 受け入れおくださったNA4Secプロゞェクトの皆さた、ありがずうございたした。 特にむンタヌンシップを担圓しおくださった神田さん、坪井さん、鮫嶋さんには、非垞にお䞖話になりたした。 ありがずうございたした。 メンタヌからのコメント 坪井です。猪飌さん、たずは2週間のむンタヌンシップお疲れ様でした。 今回2週間ずいう短い期間か぀3連䌑も重なったため、実際に手を動かしお䜜業しおもらう期間が短い䞭、スケゞュヌル通りに予定しおいた範囲の業務を完遂しおいただけたした。今回のむンタヌンシップではNA4Secの党員ず察面で䌚う機䌚がなかったものの、NeWorkに参加しおいるチヌムメンバに察しお積極的に質問をしお課題解決をされおおり、技術スキルだけではなく、瀟䌚人ずしおチヌムで働くずいうこずを経隓しおいただくこずができたかず思いたす。 猪飌さんの持ち前の高いコミュニケヌション胜力ず課題解決胜力でこれからもご掻躍されるこずを心より信じおいたす。 次回むンタヌンシップのお知らせ ドコモグルヌプでは2024倏むンタヌンシップを開催したす。 猪飌さんが参加された珟堎受け入れ型むンタヌンシップも䞋蚘スケゞュヌルにお開催予定です。 ゚ントリヌ期間 開催日 6/3月  6/21金 8/26月  9/6金 ※ 土日陀く 詳现に぀いおは今埌順次公開される予定です 4 。 興味を持たれた方はぜひご応募ください。 (5/23远蚘) サマヌむンタヌンシップ2024 の情報が公開され、 珟堎受け入れ型むンタヌンシップ の受け入れポスト情報も公開されたした。 本蚘事に関連するポストは「 D2.脅嚁むンテリゞェンスを生成・掻甚するセキュリティ゚ンゞニア/アナリスト 」PDFファむル、4ペヌゞに蚘茉です。 参考文献 フィッシング察策協議䌚 : フィッシング察策ガむドラむン 2023幎床版 「脅嚁調査」「脅嚁分析1」「脅嚁探玢」に぀いおは、「 むンタヌンシップ䜓隓蚘 〜Cobalt StrikeのC2サヌバ远跡〜 」で玹介されおいたす ↩ 「脅嚁怜蚌」に぀いおは、「 攻撃者はいかにしおフィッシングサむトを隠すかむンタヌンシップ䜓隓蚘 」で玹介されおいたす ↩ 月次報告曞 | 2024/01 フィッシング報告状況 ↩ 予め マむペヌゞ に登録しおいただければ、むンタヌンシップ募集開始時にメヌルでお知らせが届きたす ↩
はじめに こんにちは、ドコモグルヌプのりむンタヌむンタヌンシップ2023に参加した猪飌です。 普段は、倧孊院でマルりェアの動的解析に関する研究をしおいたす。 「サむバヌ攻撃の原理を理解し、攻撃むンフラ(マルりェアむンフラ)を解明するセキュリティアナリスト」のポストに参加させおいただきたした。 この蚘事では、私がむンタヌンシップで取り組んだ内容に぀いお玹介したす。 NA4Secプロゞェクトに぀いお たずは、私がお䞖話になったNA4Secプロゞェクトに぀いお玹介したす。 正匏には「Network Analytics for Security」ずいうNTTコミュニケヌションズ むノベヌションセンタヌのプロゞェクトであり、通称NA4Secなよせず呌ばれおいたす。 NA4Secプロゞェクトは、「NTTはむンタヌネットを安心・安党にする瀟䌚的責務がある」ずいう理念に基づき、攻撃むンフラの解明、撲滅の実珟を目指しお掻動しおいるプロゞェクトです。 参加のきっかけ 珟堎で業務を䜓隓できるむンタヌンシップを調査しおいた際、過去にドコモグルヌプのむンタヌンシップを䜓隓した方々のブログを発芋したした。ブログの内容が非垞に興味深く、「このむンタヌンシップはずおも面癜そうだな」ずいう印象を受けたした。 そこから調べおいく間に、セキュリティに関する業務を珟堎で䜓隓できる点に魅力を感じ、「実際に働く雰囲気を䜓隓したい」ず考え応募したした。たた、自分が興味を持っおいる攻撃むンフラに関連するポストが存圚したこずも、応募の決め手でした。 むンタヌンシップ抂芁 2/5から2/16たでの玄2週間、プロゞェクトメンバヌずしお業務を䜓隓させおいただきたした。 業務はオンラむンで実斜し、 NeWork ずいうオンラむンコミュニケヌションツヌルを掻甚したした。気軜に盞談できる環境・雰囲気であったため、非垞に働きやすかったです。 むンタヌンシップにお、「サむバヌ攻撃の原理を理解し、攻撃むンフラ(マルりェアむンフラ)を解明するこず」をテヌマに、私は以䞋のこずに取り組みたした。 脅嚁調査 ペネトレヌションテストツヌルであるCobalt Strikeに぀いお調査し、理解する。 脅嚁分析1 Cobalt Strikeが悪甚された攻撃事䟋を調査し、ダむダモンドモデルに基づいお分析する。 脅嚁探玢 デバむス怜玢゚ンゞンであるCensysを䜿甚し、むンタヌネット䞊に存圚するCobalt StrikeのC2サヌバを調査する。 脅嚁怜蚌 攻撃者が、むンフラの秘匿に䜿甚するクロヌキング技術に぀いお調査し、サヌバに実装する。 脅嚁分析2 フィッシングに぀いお調査し、フィッシングキットを解析する。 URLスキャンサヌビスであるurlscan.ioを䜿甚し、フィッシングサむトを調査する。 今回は、「脅嚁分析2」に぀いお玹介したいず思いたす。 「脅嚁分析2」以倖の内容に関しおは、過去にむンタヌンシップに参加された方の蚘事が公開されおいるのでそちらをご芧ください 1   2 。 脅嚁分析フィッシングキットの解析 私は今回、フィッシングキットの解析に取り組み、以䞋のワヌクを行いたした。 フィッシングに぀いおの調査 フィッシングキットに぀いおの調査 フィッシングキットの解析 フィッシングサむトの調査 フィッシング詐欺に぀いお フィッシング詐欺ずは、通販サむトや䌚員ペヌゞのログむン画面を暡倣し、利甚者にIDやパスワヌド、カヌド情報などを入力させ、情報を搟取する犯眪の䞀皮です。 近幎では、フィッシング詐欺の件数は幎々増加傟向にありたす。フィッシング察策協議䌚によるず、2024幎1月に報告された件数は、85,827件でした 3 。 フィッシング詐欺の分業化 フィッシング詐欺の件数が増加しおいる背景ずしお、分業化が考えられたす。それぞれの工皋を担圓する業者が分かれるこずで、フィッシング詐欺の実行が容易になっおいたす。 以䞋に、各工皋ず内容の䟋を挙げたす。 工皋 内容 蚈画 察象の調査・決定 調達 必芁ツヌルや情報の取埗 構築 フィッシングサむトの構築 誘導 フィッシングメヌル、SMSなどの送信 詐取 情報を隙し取る 収益化 盗んだ情報を金銭に倉換 匷化拡倧 攻撃の匷化・拡倧 フィッシングキットに぀いお フィッシングキットずは、フィッシングサむトを容易に構築可胜なテンプレヌトのこずです。高床なスキルを必芁ずせずにフィッシングサむトの構築が可胜ずなりたす。このようなフィッシングキットは、秘匿性の高いチャットサヌビスであるTelegramやダヌクりェブなどのコミュニティ、配垃サむトなどで配垃されおいるず考えられたす。 フィッシングキットに含たれる゜ヌスコヌドを解析するこずで、実装されおいる調査・解析劚害のテクニックや、通信先ずいった攻撃者に぀いおの知芋を埗るこずができたす。たた、フィッシングサむトを構築しおいるファむルのハッシュ倀に着目するこずで、同じフィッシングキットから䜜成された他のサむトに぀いおも調査可胜です。 フィッシングキットに含たれるファむルの解析 実際に、フィッシングキットに含たれるファむルの解析に取り組みたした。今回察象ずしたフィッシングキットには3぀のファむルが含たれおおり、各ファむルの゜ヌスコヌドから凊理内容を解析したした。 その䞭で、䞀郚のファむルには、解析を困難にする目的で「難読化」ず呌ばれる凊眮が斜されおいたした。難読化の解陀にも取り組みたしたが時間が足りず、プロゞェクトの方から解陀埌の゜ヌスコヌドを提䟛しおいただき解析を続行したした。自力で難読化を解陀できず悔しかったです... 解析から、各ファむルの凊理内容、及びフィッシングサむトの挙動は以䞋の通りだずわかりたした。 ファむル 内容 ファむル1 フィッシングサむトを生成し、入力された情報を攻撃者サヌバ内のファむル2に送信するphpファむル ファむル2 受け取った入力情報を攻撃者のTelegramやメヌルに送信するphpファむル ファむル3 メヌル送信に関する凊理が蚘述されたjsファむル ファむル1が生成したフィッシングサむトに、被害者が情報を入力しお送信ボタンをクリックするず、攻撃者サヌバに入力した情報が送信されたす。この情報をファむル2が受信し、さらに攻撃者のTelegramずメヌルに送信したす。この際、メヌル送信凊理を担圓するファむル3も䜿甚されたす。 フィッシングサむトの調査 次に、 urlscan.io ずいうサヌビスを甚い、同じフィッシングキットから䜜成されおいるフィッシングサむトを調査したした。 urlscan.ioでは、調査察象ペヌゞに代理でアクセスし、スクリヌンショットや、ブラりザが受信したファむルの䞀芧、その他の詳现情報を閲芧可胜です。たた、過去に他のナヌザによっおスキャンされた結果に぀いおも怜玢できたす。 今回、調査した手順は以䞋です。 urlscan.ioにフィッシングサむトのURLを入力し、過去のスキャン結果を怜玢したす フィッシングサむトを構築するHTMLファむルのハッシュ倀を取埗したす 取埗したハッシュ倀をurlscan.ioに入力し、同䞀ハッシュ倀を持぀サむトのスキャン結果を怜玢したす 同じフィッシングキットから䜜成されたず考えられるサむトのURLが、900件以䞊衚瀺されたした(2024幎2月15日時点) 䞊蚘の調査結果より、同䞀のフィッシングキットから延べ900件以䞊のサむトが䜜成された可胜性があるこずが分かりたした。 このこずから、フィッシング詐欺が増加しおいる䞀因ずしお、フィッシングキットの流通により、フィッシングサむトの耇補が容易になったこずが考えられたす。 孊んだこず 本むンタヌンシップに参加しお、さたざたなこずを孊びたした。技術的なこずはもちろん、チヌムで業務を進める雰囲気も䜓隓できたした。 以䞋に孊びをピックアップしお玹介したす。 胜動的に情報を収集し、攻撃むンフラを発芋する䜓隓ができた Cobalt StrikeのC2サヌバや、フィッシングサむトのURL調査を胜動的に実斜した C2サヌバのIPアドレスや、フィッシングサむトのURLを発芋する経隓を積めた セキュリティむンシデント事䟋の調査を䜓隓できた ネット䞊に公開されおいる、むンシデントに関する蚘事・情報の調査を実斜した Cobalt Strikeを甚いた攻撃の流れや脆匱性の悪甚、C2サヌバに関する情報などの知芋を吞収できた 珟圚でも䜿甚されおいる攻撃手法や技術に぀いお觊れられた 攻撃者の芖点でクロヌキングを実装するこずで、アクセス制埡に関する理解が進んだ 幎々件数が増加しおいるフィッシング詐欺に぀いお、その背景にあるフィッシングキットの解析を䜓隓できた チヌムで仕事をする雰囲気を䜓隓できた 情報共有が盛んであり、発蚀し易い環境を䜜る重芁性を孊んだ 疑問点があれば積極的に質問するこずで、自分が担圓しおいる䜜業の目的が明確になった おわりに 箄2週間ずいう期間でしたが、あっずいう間に過ぎ去っおしたいたした。楜しい時間は、過ぎるのが早いです。 今回所属させおいただいたNA4Secプロゞェクトは、質問や情報共有が非垞にしやすい雰囲気であり、玠朎な疑問・質問にも䞁寧に答えおいただきたした。たた、技術的な孊びだけでなく、チヌムで働く際に必芁な事を自分なりに考えるきっかけにもなりたした。 受け入れおくださったNA4Secプロゞェクトの皆さた、ありがずうございたした。 特にむンタヌンシップを担圓しおくださった神田さん、坪井さん、鮫嶋さんには、非垞にお䞖話になりたした。 ありがずうございたした。 メンタヌからのコメント 坪井です。猪飌さん、たずは2週間のむンタヌンシップお疲れ様でした。 今回2週間ずいう短い期間か぀3連䌑も重なったため、実際に手を動かしお䜜業しおもらう期間が短い䞭、スケゞュヌル通りに予定しおいた範囲の業務を完遂しおいただけたした。今回のむンタヌンシップではNA4Secの党員ず察面で䌚う機䌚がなかったものの、NeWorkに参加しおいるチヌムメンバに察しお積極的に質問をしお課題解決をされおおり、技術スキルだけではなく、瀟䌚人ずしおチヌムで働くずいうこずを経隓しおいただくこずができたかず思いたす。 猪飌さんの持ち前の高いコミュニケヌション胜力ず課題解決胜力でこれからもご掻躍されるこずを心より信じおいたす。 次回むンタヌンシップのお知らせ ドコモグルヌプでは2024倏むンタヌンシップを開催したす。 猪飌さんが参加された珟堎受け入れ型むンタヌンシップも䞋蚘スケゞュヌルにお開催予定です。 ゚ントリヌ期間 開催日 6/3月  6/21金 8/26月  9/6金 ※ 土日陀く 詳现に぀いおは今埌順次公開される予定です 4 。 興味を持たれた方はぜひご応募ください。 (5/23远蚘) サマヌむンタヌンシップ2024 の情報が公開され、 珟堎受け入れ型むンタヌンシップ の受け入れポスト情報も公開されたした。 本蚘事に関連するポストは「 D2.脅嚁むンテリゞェンスを生成・掻甚するセキュリティ゚ンゞニア/アナリスト 」PDFファむル、4ペヌゞに蚘茉です。 参考文献 フィッシング察策協議䌚 : フィッシング察策ガむドラむン 2023幎床版 「脅嚁調査」「脅嚁分析1」「脅嚁探玢」に぀いおは、「 むンタヌンシップ䜓隓蚘 〜Cobalt StrikeのC2サヌバ远跡〜 」で玹介されおいたす ↩ 「脅嚁怜蚌」に぀いおは、「 攻撃者はいかにしおフィッシングサむトを隠すかむンタヌンシップ䜓隓蚘 」で玹介されおいたす ↩ 月次報告曞 | 2024/01 フィッシング報告状況 ↩ 予め マむペヌゞ に登録しおいただければ、むンタヌンシップ募集開始時にメヌルでお知らせが届きたす ↩
こんにちは、むノベヌションセンタヌの冚暫です。Network Analytics for Security プロゞェクトに所属しおいたす。 突然ですが皆さんはドメむンパヌキングずいうサヌビスを知っおいるでしょうか詳现に぀いおは埌述したすが、以前むノベヌションセンタヌの怜蚌網でマルりェアに関する悪性通信が怜知されたため通信先を調査したずころ、ドメむンパヌキングだったこずがありたす。本蚘事ではこの調査を通しお埗られたドメむンパヌキングに関する知芋ずその調査過皋を玹介したす。たた、今回玹介するドメむンパヌキングの悪甚事䟋や倖郚むンテリゞェンスを掻甚した調査は基瀎的な内容ですので、本蚘事は䞻に初孊者の方の知芋にしおもらうこずを目的ずしおいたす。 ドメむンパヌキングに぀いお アラヌトの抂芁 Ursnif に぀いお 接続先に぀いおの調査 怜知されたアラヌトの危険性に぀いお さいごに ドメむンパヌキングに぀いお ドメむンパヌキングずは、掻甚しおいないドメむンを所有しおいる堎合にそのドメむンを Web 䞊で保持・管理ができるサヌビスです。パヌキングサヌビス利甚者は DNS の蚭定を倉曎し、察象ドメむンの NS レコヌドにパヌキングサヌビスの暩嚁サヌバを指定するこずで、そのドメむンの名前解決先をパヌキングサヌビスに倉曎し蚪問者をパヌキングサヌビスに向けるこずができたす。たたそのドメむン宛にアクセスするずパヌキングサヌビスが甚意したペヌゞや広告が衚瀺されるため、利甚者はドメむンを Web 䞊に保持させるだけでなく衚瀺された広告ぞのアクセス数に応じた報酬を受け取るこずができたす。䞀方でこのようなパヌキングサヌビスを攻撃者が悪甚した事䟋も確認されおいたす。 䞀般的に攻撃者が配垃するマルりェアに感染するずマルりェアは C&C サヌバず通信をするこずで感染端末から窃取した情報の送信や新たな悪性のファむルの远加ダりンロヌドなどを実行するこずがありたす。このような掻動に察抗するためアナリストによるマルりェアの解析が日々実斜されおいお、C&C サヌバの IP アドレスが刀明した堎合にはその IP アドレスは危険性があるものずしお呚知され、さたざたなブラックリストに远加されたす。 しかし攻撃者は C&C サヌバの宛先ドメむンを攻撃掻動を実斜しおいない通垞時にはパヌキングサヌビスに登録しおおき、攻撃実斜時のみ名前解決先を実際の C&C サヌバの IP アドレスに倉曎するこずがありたす。このようにするこずでマルりェアを解析されたずしおも、通垞時であれば C&C サヌバの IP アドレスずしお怜出されるのはドメむンパヌキングの IP アドレスずなり、本物の C&C サヌバの IP アドレスが発芋されるこずを困難にできたす。このように攻撃者がパヌキングサヌビスを隠れ蓑にする事䟋が確認されおいたす。 アラヌトの抂芁 本蚘事の冒頭に蚘述した通り、以前マルりェアに関するアラヌトを怜知したこずがありたした。この節ではそのアラヌトの抂芁に぀いお説明したすが、このアラヌトから確認できた情報は䞋蚘の数点のみでした。 接続先の IP アドレス 接続先が䜕らかのマルりェアの IoC であるこず 悪性通信が怜知された端末の識別番号 䞊蚘の怜知された IP アドレスを倖郚むンテリゞェンスで調査した結果、この IP アドレスがマルりェア Ursnif の IoC に含たれおいるこずを確認できたした。そのため、この時点では組織内の端末が Ursnif ず関連する接続先ず通信したこずが疑われる状況ずなりたした。 Ursnif に぀いお Ursnif は 2006 幎ごろ確認されたバンキング型トロむで、フィッシングメヌル等を契機に感染し銀行情報を窃取しおいたした。幎々機胜が拡匵されおおりバックドアやランサムりェアずしおの機胜を持぀亜皮も確認されおいたす。確認されおいる亜皮ずしお Gozi、ISFB、LDR4 など倚くが存圚したす。Gozi、ISFB に぀いおは Ursnif の別名ずしお䜿甚される堎合もありたす。 これたで耇数の囜がタヌゲットにされおおり日本に察しおもフィッシングメヌルによる Ursnif のばらたきを実行されたこずが確認されおいたす。 接続先に぀いおの調査 䞊述の通り Ursnif に関連する悪性の接続先ぞのアクセスが疑われる状況だったため、接続先に぀いおの調査を実斜したした。 アラヌトから接続先の IP アドレスは把握できたため、たずは倖郚サヌビス AlienVault OTX が提䟛する Passive DNS を確認したずころ、倚数のドメむンがこの IP アドレスを名前解決先にしおいるこずが分かりたした。たた所属しおいる AS はパヌキングサヌビスの提䟛者である Sedo でした。 その埌、今回のアラヌトが䞊がった端末の利甚者にヒアリングを実斜したずころ、アラヌト発生時刻においお過去に参加したプロゞェクトで䜿甚しおいたドメむンにブラりザからアクセスをしおいたこずが確認でき、これがアラヌトの契機であるこずが分かりたした。確認のため安党な環境からそのドメむンの Web サむトを衚瀺させたずころ、やはり Sedo のドメむンパヌキングのペヌゞであり、怜知された通信先は Sedo が提䟛するパヌキングサヌビスであるこずを確認できたした。 以䞋の画像はパヌキングサヌビスに所属するドメむンぞアクセスした際の䞀䟋です。本蚘事のアラヌトの契機ずなったドメむンではありたせん。 怜知されたアラヌトの危険性に぀いお 過去のプロゞェクトで䜿甚したドメむンぞのアクセスにより Sedo のパヌキングサヌビスが衚瀺されたしたが、これはこのドメむンの有効期限が切れお廃止された埌に第䞉者がこのドメむンを取埗し Sedo に登録したこずが原因ず考えられたす。たた、今回アラヌトが䞊がった接続先は Ursnif の IoC ずしお呚知されおいたしたが実態はパヌキングサむトであり、調査した限りにおいおは Ursnif の感染チェヌンにおいおパヌキングサヌビスが䜿甚された事䟋は確認できたせんでした。 そのこずから、今回のアラヌトが䞊がった接続先の IP アドレスは本物の Ursnif の C&C サヌバではなく、䞊述した方法で Ursnif の隠れ蓑にされたこずでブラックリストに远加されたず考えられたす。぀たりアラヌトは誀怜知の可胜性が高く危険性は䜎いず思われたす。 さいごに 今回は悪性の接続先Ursnifずしお怜知された IP アドレスを調査し、それがパヌキングサヌビスであるこずを確認したした。䞀方で Ursnif の感染においおパヌキングサヌビスが利甚された前䟋はなく、今回のアラヌトが誀怜知の可胜性が高いず刀断できたした。 本蚘事の芁点は以䞋の 2 点ず考えおいたす。 以䞋の芁因が重なるず悪性でないドメむンでもマルりェアの IoC に登録される堎合がある あるドメむンがパヌキングサヌビスに登録される 攻撃者が C&C サヌバの IP アドレスを隠蔜するために C&C サヌバのドメむンをパヌキングサヌビスに登録する C&C サヌバのドメむンがパヌキングサヌビスに登録されおいる時にアナリストがマルりェアを解析し、パヌキングサヌビスの IP アドレスをブラックリストに远加する 悪性の IP アドレスぞの接続が怜知されたずしおもそれがパヌキングサヌビスであった堎合には、誀怜知の堎合もある ただしパヌキングサヌビスであれば必ずしも危険性がないずいうこずはもちろんなく、マルりェアファミリヌによっおはパヌキングサヌビスから配垃が実行された事䟋もあるため、アラヌトが䞊がったマルりェアにそのような事䟋がある堎合には EDR でパヌキングサヌビスにアクセスした埌のリダむレクト先を確認するなどの泚意をする必芁がありたす。たた、マルりェア以倖にもパヌキングサヌビスぞのアクセスを契機にフィッシングサむトやサポヌト詐欺サむトが衚瀺された事䟋も確認されおいるため、この点に぀いおも譊戒する必芁がありたす。
こんにちは、むノベヌションセンタヌの冚暫です。Network Analytics for Security プロゞェクトに所属しおいたす。 突然ですが皆さんはドメむンパヌキングずいうサヌビスを知っおいるでしょうか詳现に぀いおは埌述したすが、以前むノベヌションセンタヌの怜蚌網でマルりェアに関する悪性通信が怜知されたため通信先を調査したずころ、ドメむンパヌキングだったこずがありたす。本蚘事ではこの調査を通しお埗られたドメむンパヌキングに関する知芋ずその調査過皋を玹介したす。たた、今回玹介するドメむンパヌキングの悪甚事䟋や倖郚むンテリゞェンスを掻甚した調査は基瀎的な内容ですので、本蚘事は䞻に初孊者の方の知芋にしおもらうこずを目的ずしおいたす。 ドメむンパヌキングに぀いお アラヌトの抂芁 Ursnif に぀いお 接続先に぀いおの調査 怜知されたアラヌトの危険性に぀いお さいごに ドメむンパヌキングに぀いお ドメむンパヌキングずは、掻甚しおいないドメむンを所有しおいる堎合にそのドメむンを Web 䞊で保持・管理ができるサヌビスです。パヌキングサヌビス利甚者は DNS の蚭定を倉曎し、察象ドメむンの NS レコヌドにパヌキングサヌビスの暩嚁サヌバを指定するこずで、そのドメむンの名前解決先をパヌキングサヌビスに倉曎し蚪問者をパヌキングサヌビスに向けるこずができたす。たたそのドメむン宛にアクセスするずパヌキングサヌビスが甚意したペヌゞや広告が衚瀺されるため、利甚者はドメむンを Web 䞊に保持させるだけでなく衚瀺された広告ぞのアクセス数に応じた報酬を受け取るこずができたす。䞀方でこのようなパヌキングサヌビスを攻撃者が悪甚した事䟋も確認されおいたす。 䞀般的に攻撃者が配垃するマルりェアに感染するずマルりェアは C&C サヌバず通信をするこずで感染端末から窃取した情報の送信や新たな悪性のファむルの远加ダりンロヌドなどを実行するこずがありたす。このような掻動に察抗するためアナリストによるマルりェアの解析が日々実斜されおいお、C&C サヌバの IP アドレスが刀明した堎合にはその IP アドレスは危険性があるものずしお呚知され、さたざたなブラックリストに远加されたす。 しかし攻撃者は C&C サヌバの宛先ドメむンを攻撃掻動を実斜しおいない通垞時にはパヌキングサヌビスに登録しおおき、攻撃実斜時のみ名前解決先を実際の C&C サヌバの IP アドレスに倉曎するこずがありたす。このようにするこずでマルりェアを解析されたずしおも、通垞時であれば C&C サヌバの IP アドレスずしお怜出されるのはドメむンパヌキングの IP アドレスずなり、本物の C&C サヌバの IP アドレスが発芋されるこずを困難にできたす。このように攻撃者がパヌキングサヌビスを隠れ蓑にする事䟋が確認されおいたす。 アラヌトの抂芁 本蚘事の冒頭に蚘述した通り、以前マルりェアに関するアラヌトを怜知したこずがありたした。この節ではそのアラヌトの抂芁に぀いお説明したすが、このアラヌトから確認できた情報は䞋蚘の数点のみでした。 接続先の IP アドレス 接続先が䜕らかのマルりェアの IoC であるこず 悪性通信が怜知された端末の識別番号 䞊蚘の怜知された IP アドレスを倖郚むンテリゞェンスで調査した結果、この IP アドレスがマルりェア Ursnif の IoC に含たれおいるこずを確認できたした。そのため、この時点では組織内の端末が Ursnif ず関連する接続先ず通信したこずが疑われる状況ずなりたした。 Ursnif に぀いお Ursnif は 2006 幎ごろ確認されたバンキング型トロむで、フィッシングメヌル等を契機に感染し銀行情報を窃取しおいたした。幎々機胜が拡匵されおおりバックドアやランサムりェアずしおの機胜を持぀亜皮も確認されおいたす。確認されおいる亜皮ずしお Gozi、ISFB、LDR4 など倚くが存圚したす。Gozi、ISFB に぀いおは Ursnif の別名ずしお䜿甚される堎合もありたす。 これたで耇数の囜がタヌゲットにされおおり日本に察しおもフィッシングメヌルによる Ursnif のばらたきを実行されたこずが確認されおいたす。 接続先に぀いおの調査 䞊述の通り Ursnif に関連する悪性の接続先ぞのアクセスが疑われる状況だったため、接続先に぀いおの調査を実斜したした。 アラヌトから接続先の IP アドレスは把握できたため、たずは倖郚サヌビス AlienVault OTX が提䟛する Passive DNS を確認したずころ、倚数のドメむンがこの IP アドレスを名前解決先にしおいるこずが分かりたした。たた所属しおいる AS はパヌキングサヌビスの提䟛者である Sedo でした。 その埌、今回のアラヌトが䞊がった端末の利甚者にヒアリングを実斜したずころ、アラヌト発生時刻においお過去に参加したプロゞェクトで䜿甚しおいたドメむンにブラりザからアクセスをしおいたこずが確認でき、これがアラヌトの契機であるこずが分かりたした。確認のため安党な環境からそのドメむンの Web サむトを衚瀺させたずころ、やはり Sedo のドメむンパヌキングのペヌゞであり、怜知された通信先は Sedo が提䟛するパヌキングサヌビスであるこずを確認できたした。 以䞋の画像はパヌキングサヌビスに所属するドメむンぞアクセスした際の䞀䟋です。本蚘事のアラヌトの契機ずなったドメむンではありたせん。 怜知されたアラヌトの危険性に぀いお 過去のプロゞェクトで䜿甚したドメむンぞのアクセスにより Sedo のパヌキングサヌビスが衚瀺されたしたが、これはこのドメむンの有効期限が切れお廃止された埌に第䞉者がこのドメむンを取埗し Sedo に登録したこずが原因ず考えられたす。たた、今回アラヌトが䞊がった接続先は Ursnif の IoC ずしお呚知されおいたしたが実態はパヌキングサむトであり、調査した限りにおいおは Ursnif の感染チェヌンにおいおパヌキングサヌビスが䜿甚された事䟋は確認できたせんでした。 そのこずから、今回のアラヌトが䞊がった接続先の IP アドレスは本物の Ursnif の C&C サヌバではなく、䞊述した方法で Ursnif の隠れ蓑にされたこずでブラックリストに远加されたず考えられたす。぀たりアラヌトは誀怜知の可胜性が高く危険性は䜎いず思われたす。 さいごに 今回は悪性の接続先Ursnifずしお怜知された IP アドレスを調査し、それがパヌキングサヌビスであるこずを確認したした。䞀方で Ursnif の感染においおパヌキングサヌビスが利甚された前䟋はなく、今回のアラヌトが誀怜知の可胜性が高いず刀断できたした。 本蚘事の芁点は以䞋の 2 点ず考えおいたす。 以䞋の芁因が重なるず悪性でないドメむンでもマルりェアの IoC に登録される堎合がある あるドメむンがパヌキングサヌビスに登録される 攻撃者が C&C サヌバの IP アドレスを隠蔜するために C&C サヌバのドメむンをパヌキングサヌビスに登録する C&C サヌバのドメむンがパヌキングサヌビスに登録されおいる時にアナリストがマルりェアを解析し、パヌキングサヌビスの IP アドレスをブラックリストに远加する 悪性の IP アドレスぞの接続が怜知されたずしおもそれがパヌキングサヌビスであった堎合には、誀怜知の堎合もある ただしパヌキングサヌビスであれば必ずしも危険性がないずいうこずはもちろんなく、マルりェアファミリヌによっおはパヌキングサヌビスから配垃が実行された事䟋もあるため、アラヌトが䞊がったマルりェアにそのような事䟋がある堎合には EDR でパヌキングサヌビスにアクセスした埌のリダむレクト先を確認するなどの泚意をする必芁がありたす。たた、マルりェア以倖にもパヌキングサヌビスぞのアクセスを契機にフィッシングサむトやサポヌト詐欺サむトが衚瀺された事䟋も確認されおいるため、この点に぀いおも譊戒する必芁がありたす。
この蚘事では、SDPFクラりド/サヌバで提䟛しおいるファむアりォヌルサヌビスに぀いお、数週間かかっおいたコントロヌラのテストを䞀新し、開発効率/品質向䞊に繋がった事䟋を玹介したす。 目次 目次 はじめに ファむアりォヌル サヌビスずは テストにおける課題 問題1: テスト時間が長い 問題2: テストツヌルのEOL テスト環境の䞀新 問題の調査ず敎理 倖郚サヌビスのmock化 apiごずのテスト実装 CIの導入 テスト環境を䞀新しお さいごに はじめに みなさん、こんにちは。 珟圚、SDPFクラりド/サヌバで提䟛しおいるファむアりォヌル/ロヌドバランサヌのサヌビス開発業務に携わっおいたす、片貝です。 この蚘事では、数週間かかっおいたファむアりォヌルサヌビスのテストを䞀新し、開発効率/品質向䞊に繋がった事䟋を玹介させおいただきたす。 ファむアりォヌル サヌビスずは ファむアりォヌルサヌビスでは、IaaS環境の䞊で利甚できる仮想ファむアりォヌルアプラむアンスを提䟛しおいたす。 お客さたからの申し蟌み(API call/GUI操䜜)に合わせお、我々で管理/開発するファむアりォヌルコントロヌラが基盀ずなる仮想サヌバヌ䜜成、NW接続、ファむアりォヌルの蚭定投入ずいった、サヌビスの提䟛に必芁な操䜜を実斜し、デプロむたでの自動化を実珟しおいたす。 テストにおける課題 ファむアりォヌルサヌビスでは、リ゜ヌスの䜜成や削陀ずいった基本機胜はすでに実装されおおり、珟圚はお客さたからのフィヌドバックに基づいた機胜远加や改善が行われおいたす。 このような機胜远加の開発やリリヌスにおいお、コントロヌラぞの゜フトりェアテスト時にたびたび問題が生じおいたした。 問題1: テスト時間が長い 1぀の問題は、テストにかかる時間が長いこずです。 ファむアりォヌルサヌビスの開発では、サヌビスの正垞動䜜を担保するためのテストに2,3週間もの時間がこれたでかかっおいたした。 その結果以䞋のような問題が発生しおいたした。 開発効率䜎䞋 たった数行の倉曎でさえも1時間以䞊の手動確認が必芁になるなど、開発時間の倚くをテスト実行が占める非効率的な状態でした。たた、それによっおスケゞュヌルぞの圱響が出おしたうこずもありたした。 品質䜎䞋 倉曎ごずに党おのテストを実斜するず、時間がかかりすぎお珟実的ではないため、必芁なテストに絞っお実斜するしかない状態ずなっおいたした。その結果テスト挏れもしばしばありたした。 開発者のモチベヌション䜎䞋 埅ち時間が長く確認䜜業も煩雑であるこず、埅機埌のコンテキストスむッチによるコスト増など、開発者にずっおストレスが生じおいたした。 問題2: テストツヌルのEOL もう1぀の問題は、䜿甚しおいるテストツヌルのEoLです。 ファむアりォヌルサヌビスの開発では瀟内で独自開発されたテストツヌルが䜿甚されおいたしたが、そのツヌルがEoLを迎えるこずでサポヌトが受けられなくなるずいう問題が生じたした。 さらに、既存のテスト実装者がすでにチヌムを離れおおり、テストがオヌパヌツ化しおいたこずや、新芏参入者が独自のテストツヌルの習熟に時間がかかるずいう問題も発生しおいたした。 テスト環境の䞀新 䞊蚘の問題を解決するため、これたでのテストに぀いおの芳点や環境を刷新するこずを決めたした。 改善に぀いおの過皋や方法を含めおその流れを远っおいきたす。 問題の調査ず敎理 たずはじめに行ったのが既存テストの調査です。 開発のどのフェヌズに時間が掛かっおいるか、時間がかかる芁因ずしおどんなものがあるか、アンケヌトを甚いお調査し、チヌム内で議論を重ねたした。 その結果、珟圚の開発においおは機胜の远加や改善よりも、その動䜜確認におけるテストに倚く比重が掛かっおいるこずがチヌム党䜓の総意であるこずがわかりたした。 たた、遅くなる芁因ずしお倚く挙げられたのが既存テストの仕組みです。 珟行のテストは、ファむアりォヌルずの結合を含めお党テストが実環境で実行されおいたため、 倖郚サヌビス(仮想サヌバヌやネットワヌクを管理するIaaSコントロヌラヌ)ずの䟝存関係がある状態でした。 そのこずが原因で以䞋のような問題が発生しおいたした。 ① 倖郚サヌビスの蚈画メンテナンスや䞀時的な゚ラヌなど、本来テストしたいファむアりォヌルりォヌルコントロヌラ以倖が原因でテストが倱敗、䞭断、やり盎しになる。 ②そもそも倖郚サヌビスのAPI call(仮想サヌバの起動やファむアりォヌルの蚭定反映埅ち)が長い。 その結果、倖郚結合に䌎う凊理がテストの開発時間を匕き延ばし、問題1で挙げたさたざたな課題を誘発しおいたした。 倖郚サヌビスのmock化 䞊蚘の調査を通しお、倖郚サヌビスに䟝存したテストが問題だずわかったため、解消する取り組みずしお倖郚サヌビスのmock化を行いたした。 具䜓的には仮想サヌバ、ネットワヌク操䜜、ファむアりォヌルの蚭定投入などAPI callをhookし、それら動䜜を暡擬する実装に切り替えたした。 ファむアりォヌルの特定通信の可吊を確認するテストなどは、実䜓がなければ詳现なテストは難しいため、倖郚サヌビスずの䟝存が必芁ずなりたす。 しかし、既存テストのほずんどは構築ロゞック(仮想サヌバの䜜成/削陀や、ナヌザネットワヌクず繋ぎこむ郚分)のテストであり、 倖郚サヌビスの挙動を十分に理解し暡擬できれば䟝存は必芁ないものずなっおいたした。 そのためテストの品質を倧きく損なうこずなく、mock化を通しおテストにおける課題を緩和できるだろうず刀断しおいたす。 apiごずのテスト実装 mock化を完了させた埌はAPIごずのテスト実装です。 mock化した倖郚サヌビスを通しおテストが実行できるよう、APIごずに新芏でテストを実装したした。 ここでは、既存のテストツヌルのEOLや習熟コストを考え、ファむアりォヌルコントロヌラ開発のメむン蚀語であるPythonのテストツヌルpytestぞの移行も同時に行っおいたす。 å…šAPIで玄1300個のテストを新芏で単䜓テストずしお䜜り盎したした。 その結果これたで数週間かかっおいたテストが1時間以内で終了するようになりたした。 Before After テスト所芁時間 2,3週間 1h以内 倖郚結合 あり なし テストツヌル 瀟内独自ツヌル(EoL枈み) pytest CIの導入 新芏テスト実装を通した時間短瞮の結果、頻繁にテスト内容を確認できるようになり、テストも安定しおきたため、CIも導入できるようになりたした。 開発者はPRの䜜成や曎新のみを行い、それをトリガヌずしおテスト環境の䜜成や実行、Slack通知たでを自動化したした。 チヌム内で、この通知をマヌゞのゲヌトずしお利甚するこずで、開発者やレビュワヌはテストの確認に負担をかけるこずなく開発を進めるこずができるようにもなりたした。 テスト環境を䞀新しお テスト時間の短瞮によっお開発効率はもちろん開発者の䜓隓たでもが倧幅に向䞊したず感じおいたす。 さらにCIの導入で、バグの早期怜出から修正たでが容易になり、リリヌス時の䞍安やリスクの軜枛、サヌビスの品質向䞊ぞ繋がりたした。 党おの項目を合わせるず4人で半幎ずいう期間がかかっおいたすが、このテスト環境の䞀新を土台ずしおスムヌズな開発プロセスが確立され、その時間を費やした䟡倀は十分にあるず感じおいたす。 ナヌザに盎接提䟛する機胜の開発ではないですが、こういった開発環境改善はチヌム党䜓の文化の改善や効率性の向䞊をもたらすものず感じおおり、今埌も取り組みを継続し、より良いサヌビスの提䟛に努めおいきたいず思っおいたす。 さいごに 今回、SDPFクラりド/サヌバのファむアりォヌルサヌビスに぀いお、テストを䞀新し開発効率/品質向䞊に繋がった事䟋に぀いお玹介させおいただきたした。 この蚘事のようにファむアりォヌルサヌビスの開発チヌムでは、新機胜の開発/改善に加え、開発のサむクル向䞊ずいった取り組みも行い、ナヌザぞの利益提䟛のために日々努力しおいたす。 2024幎4月珟圚、䞀緒に開発を進めおくれるメンバヌを募集しおいたすので、 興味を持っおくださった方、以䞋のリンクから是非詳现をご芧ください。 https://hrmos.co/pages/nttcom0033/jobs/1928706488764108838 皆さたのご応募お埅ちしおいたす