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

NetBox をオンプレミスから AWS へ移してみた

[email protected]
March 05, 2025
700

NetBox をオンプレミスから AWS へ移してみた

NetBox というネットワーク上の様々な資産を管理する OSS があります。
これをオンプレミスで動かしていたのですが、 AWS へ移動してみた事例共有になります。

[email protected]

March 05, 2025
Tweet

Transcript

  1. © NTT Communications Corporation All Rights Reserved. NetBox をオンプレミスから AWS

    へ移してみた
 NTT コミュニケーションズ
 福田優真

  2. © NTT Communications Corporation All Rights Reserved. 2 アジェンダ 


    1. 自己紹介
 2. NetBox について
 3. 移行した背景
 4. 設計
 5. 移行について
 6. 移行してみて
 7. 今後どうしていきたいか 
 8. まとめ

  3. © NTT Communications Corporation All Rights Reserved. 3 自己紹介
 ▪

    所属
 • NTT コミュニケーションズ/テクノロジー部門/AIインフラグループ/クラウド CoE プロジェクト ▪ 氏名
 • 福田 優真 ▪ 何しているか
 • クラウドネイティブ基盤の設計・構築支援 • AWS • Azure • Google Cloud • ハイブリッドクラウド検証 • AWS Outposts Rack/Server • Google Distributed Cloud Edge • Azure Stack Family • Infrastructure as Code (IaC) の支援 • Terraform • AWS CDK • Ansible • etc… 

  4. © NTT Communications Corporation All Rights Reserved. 4 所属チームについて 


    AWS / Azure / GCP 等の協業先ハイパースケーラー各社の クラウド + エッジ を含めた
 ハイブリッド環境下での ICT 基盤に関して、技術検証・技術開発・CoE 支援活動を通してドコモビジネスの事業に貢献 4
 事業部支援 
 技術相談, 新技術検証, 商用化見据えたPoC構築等
 クラウドCoE PJ 
 Public Cloud 環境 
 On-premise / Edge 環境 
 Testbed検証網 / OTEC / ドコモMEC / etc. 
 ミドル 
 ウェア 
 
 
 
 ハード 
 ウェア 
 GPU
 Server
 Edge
 Devices
 Multi Cloud Management / MLOps / Benchmark 
 FIC/ ICMS/
 ICGW BS本 
 SWB部, SS部 PS本 
 5GI, C&N, C&A 
 新事業PJ 
 技戦/プロデュース部門 
 各営業部 
 IC内
 各PJと連携
 z
 AI
 5G
 DevOps 
 Edge 
 ToT 
 Azure
 Stack
 Out
 posts
 クラウド 
 ハイブリッド 
 NTT東西CW連携 
 GDCE
 ドコモR&D連携 
 Testbed 
 EEPJ 
 ユース 
 ケース 
 Datalake
 IoT 5G
 … AI/ML 技術を磨く 場を作る 仲間を増やす 社内外 PoC 環境である Testbed やショーケース等へ技術導入し、 
 自社グループ内やお客様を巻き込んだ新規ビジネス創出を加速 技術蓄積、および対外 PR を通して、ドコモグループ・コムグループの人材誘致・育成を推進 

  5. © NTT Communications Corporation All Rights Reserved. 6 NetBox 


    ▪ Data Center Infrastructure Management (DCIM) や IP Address Management (IPAM) を 
 提供するアプリケーション 
 ▪ どんな DC をもっていてどの DC のラックをもっているのかや機器についている IP アドレス、 
 機器のどんなポートがどのポートにつながっているのかを管理できる 
 ▪ NW 上の様々なリソースを管理してくれる 
 ▪ NetBox は DigitalOcean が開発し、 OSS として提供している 
 https://netboxlabs.com/docs/netbox/en/stable/

  6. © NTT Communications Corporation All Rights Reserved. 8 今まで
 ▪

    我々の PJ では NetBox を NW 上の様々な資産や DC の管理として利用 
 ▪ NetBox はオンプレミス上のサーバーで動いていた 
 ▪ NetBox は Docker Compose で稼動していた 

  7. © NTT Communications Corporation All Rights Reserved. 9 運用での課題 


    ▪ バックアップ
 • DB のバックアップをとっていない ▪ 冗長性
 • オンプレミスサーバーが法定停電で Down する際、乗っている NetBox も当然落ちる • その間機器情報を参照できず、情報確認や更新が実施できない • コンテナーが落ちたら自動で再起動はするが、ホストが1台しか稼動していない ▪ ログ
 • 永続的に保存していない ▪ シークレット値の保存方法 
 • サーバーに入れれば .env を見ることで重要な鍵や Admin ユーザーのパスワードを窃取できる状況だった ▪ 運用
 • NetBox を動かすミドルウェアの管理やミドルウェアを動かす OS の管理もしていた
  8. © NTT Communications Corporation All Rights Reserved. 10 AWS なら...

    
 ▪ 鍵やシークレット値はサーバー上の .env ファイルのみに記載されていた 
 • AWS Secrets Manager で管理することでオペミスによる削除や上書き後も復帰できる ! ▪ DB もアプリもキャッシュサーバーも冗長化されてない 
 • Amazon RDS や Amazon ElastiCache のマルチ AZ 機能などによる冗長性の確保ができる ! • AZ: DC のまとまり単位。自然災害・電力供給・ネットワーク等の面で独立するように作られている ▪ DB のバックアップがとられていない 
 • Amazon RDS にバックアップ機能が組込まれている ! ▪ 動かしているサーバーの配置場所の都合から定期的に NetBox が落ちる 
 • ダウンタイムの発生を極小化するよう提供してくれる !
  9. © NTT Communications Corporation All Rights Reserved. 12 主な登場人物たち 


    ▪ Amazon RDS (RDS) 
 • RDB サービス • MySQL, PostgreSQL, Oracle, SQL Server 等 の RDB を提供する ▪ Amazon ElastiCache (ElastiCache) 
 • キャッシュサーバーサービス • Redis, memcached, Valkey などを提供する ▪ AWS Secrets Manager (Secrets Manager) 
 • シークレット値の保存や世代管理を提供するサービス ▪ Amazon Elastic Container Service (ECS) 
 • コンテナー環境を提供するサービス ▪ Elastic Load Balancing (ELB) 
 • ロードバランシングサービス • VM を提供する Amazon EC2 や ECS のロードバランシングを実施してくれる • L7 ロードバランサーである Application Load Balancer (ALB) や L4 ロードバランサーである Network Load Balancer が ある ▪ Amazon Virtual Private Cloud (VPC) 
 • 仮想ネットワークサービス • RDS や ECS といった各種リソースはこの VPC 上にデプロイする ▪ Amazon CloudWatch 
 • ログを保存するサービスである logs やメトリクスの保管といった機能を提供する
  10. © NTT Communications Corporation All Rights Reserved. 13 実現したい環境 


    ▪ 一番の課題は冗長性 
 ▪ なので...
 • Amazon RDS, Amazon ElastiCache はマルチ AZ にして可用性確保 • NetBox も同じコンテナーを別 AZ に配置してロードバランシンスすることで可用性確保 • ロードバランサーもマルチ AZ に配置して可用性確保
  11. © NTT Communications Corporation All Rights Reserved. 15 追加で考慮した細かいこと 


    ▪ AWS Secrets Manager のローテーション機能で Amazon RDS の管理者ユーザーのパスワードをローテーショ ン
 ▪ 証明書は AWS Certificate Manager で管理 
 • 証明書を AWS がマネージしてくれるサービス ▪ セキュリティグループによるファイアウォールを設置してトラフィック制御 
 • インバウンド・アウトバウンドのトラフィックの制御もマネージしてくれる ▪ ALB は AWS WAF で保護する 
 • SQL インジェクションや DDoS への対策 ▪ Amazon RDS には削除保護機能を実施 
 • オペミス対策 ▪ インフラのコード化を実施 
 • 将来構成がどうなっているのかをわかりやすくする対策
  12. © NTT Communications Corporation All Rights Reserved. 16 インフラのコード化 


    ▪ インフラ構成をコードにするというパラダイム 
 ▪ 略して IaC
 ▪ Chef や Ansible, Terraform などがよく知られている 
 ▪ AWS 自身が AWS Cloud Development Kit という IaC ツールを提供 
 ▪ 今回は AWS CDK で NetBox 環境を定義 
 • AWS CloudFormation という AWS 上のリソース管理サービスをバックグラウンドとして利用 • そのためインフラの状態も AWS がマネージしてくれる https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Instance.html

  13. © NTT Communications Corporation All Rights Reserved. 18 移行方法
 1.

    ユーザーへ移行期間を周知 
 2. まずはオンプレミス上のサーバーから NetBox のデータをバックアップ 
 3. Staging 環境をデプロイ 
 4. RDS へデータを移行 
 • RDS への接続環境となる VM を RDS と同じ VPC に設置して FW 開けしてそこから復元 • 我々が管理する NW 上の機器等のデータだけ管理していたのでデータ量も多くなく、数秒で回復できた 5. 動作確認
 6. 問題ないことを確認して Production 環境をデプロイ 
 7. ドメインを新しい NetBox へ向ける 
 8. 4. から 7. を実施したらユーザーに周知 

  14. © NTT Communications Corporation All Rights Reserved. 20 移行してどうなったか 


    ▪ NetBox が定期的に落ちる期間がなくなった 
 ▪ 可用性向上 
 • DB やキャッシュサーバーのレプリケート・マルチ AZ への配置 • アプリケーションのマルチ AZ への配置 ▪ コードになったのでインフラの状態がどうなっているか確認しやすくなった 
 ▪ マネージされる部分が増えたので管理しなければならないものが減った 
 • オンプレミスのサーバーで稼動している OS のパッチ適用やミドルウェアの管理からの解放 • DB へのパッチ適用が GUI でできる
  15. © NTT Communications Corporation All Rights Reserved. 22 今後どうしていきたいか 


    ▪ ログのダッシュボード化 
 • 現在は定常的に見る項目も毎回手作業で検索実施 • 毎回見てるものはダッシュボードにして省力化したい ▪ ヘルスチェックで問題があったらアラートを通知する基盤の構築 
 • いくら AWS でも絶対に落ちないというわけではないのでアプリを監視したい • NetBox へ接続できなくなったなど ▪ NetBox はチームで必要なものなので、移行した自分だけではなくチームで 
 管理できるようにハンズオンやノウハウの共有 
 ▪ 期間の過ぎたログの Amazon S3 への自動エクスポート 
 • Amazon CloudWatch は費用が高いため直近分のみ保存するように期限を設定 • 期限が過ぎたログは Amazon S3 に保存することで安く長期的に保存をする
  16. © NTT Communications Corporation All Rights Reserved. 24 まとめ
 ▪

    やったこと
 • 物理サーバー1台で動かしていた NetBox を AWS へ移行 • ミドルウェア含めて冗長性がなかったので可用性を重視して設計 ▪ 共有内容
 • AWS へ移行するにあたって可用性を確保したアーキテクチャについて共有 • 移行にあたっての考慮ポイントや移行方法を共有 ▪ 今後は
 • AWS 上に移行完了したので、以降は監視やバックアップ機能を充実させていきたい