Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NetBox をオンプレミスから AWS へ移してみた
Search
[email protected]
March 05, 2025
0
700
NetBox をオンプレミスから AWS へ移してみた
NetBox というネットワーク上の様々な資産を管理する OSS があります。
これをオンプレミスで動かしていたのですが、 AWS へ移動してみた事例共有になります。
[email protected]
March 05, 2025
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
AWS CDKでもMacを 管理したい
moba
0
520
AWS Outposts 上のリソースを CDK する
moba
0
1.2k
AWS Outposts を AWS CDK で管理する話
moba
0
470
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
118
51k
Making Projects Easy
brettharned
116
6.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
For a Future-Friendly Web
brad_frost
176
9.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Become a Pro
speakerdeck
PRO
27
5.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Bash Introduction
62gerente
611
210k
How to Ace a Technical Interview
jacobian
276
23k
Transcript
© NTT Communications Corporation All Rights Reserved. NetBox をオンプレミスから AWS
へ移してみた NTT コミュニケーションズ 福田優真
© NTT Communications Corporation All Rights Reserved. 2 アジェンダ
1. 自己紹介 2. NetBox について 3. 移行した背景 4. 設計 5. 移行について 6. 移行してみて 7. 今後どうしていきたいか 8. まとめ
© 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…
© 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 を通して、ドコモグループ・コムグループの人材誘致・育成を推進
© NTT Communications Corporation All Rights Reserved. 5 NetBox について
© 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/
© NTT Communications Corporation All Rights Reserved. 7 移行した背景
© NTT Communications Corporation All Rights Reserved. 8 今まで ▪
我々の PJ では NetBox を NW 上の様々な資産や DC の管理として利用 ▪ NetBox はオンプレミス上のサーバーで動いていた ▪ NetBox は Docker Compose で稼動していた
© NTT Communications Corporation All Rights Reserved. 9 運用での課題
▪ バックアップ • DB のバックアップをとっていない ▪ 冗長性 • オンプレミスサーバーが法定停電で Down する際、乗っている NetBox も当然落ちる • その間機器情報を参照できず、情報確認や更新が実施できない • コンテナーが落ちたら自動で再起動はするが、ホストが1台しか稼動していない ▪ ログ • 永続的に保存していない ▪ シークレット値の保存方法 • サーバーに入れれば .env を見ることで重要な鍵や Admin ユーザーのパスワードを窃取できる状況だった ▪ 運用 • NetBox を動かすミドルウェアの管理やミドルウェアを動かす OS の管理もしていた
© NTT Communications Corporation All Rights Reserved. 10 AWS なら...
▪ 鍵やシークレット値はサーバー上の .env ファイルのみに記載されていた • AWS Secrets Manager で管理することでオペミスによる削除や上書き後も復帰できる ! ▪ DB もアプリもキャッシュサーバーも冗長化されてない • Amazon RDS や Amazon ElastiCache のマルチ AZ 機能などによる冗長性の確保ができる ! • AZ: DC のまとまり単位。自然災害・電力供給・ネットワーク等の面で独立するように作られている ▪ DB のバックアップがとられていない • Amazon RDS にバックアップ機能が組込まれている ! ▪ 動かしているサーバーの配置場所の都合から定期的に NetBox が落ちる • ダウンタイムの発生を極小化するよう提供してくれる !
© NTT Communications Corporation All Rights Reserved. 11 設計
© 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 やメトリクスの保管といった機能を提供する
© NTT Communications Corporation All Rights Reserved. 13 実現したい環境
▪ 一番の課題は冗長性 ▪ なので... • Amazon RDS, Amazon ElastiCache はマルチ AZ にして可用性確保 • NetBox も同じコンテナーを別 AZ に配置してロードバランシンスすることで可用性確保 • ロードバランサーもマルチ AZ に配置して可用性確保
© NTT Communications Corporation All Rights Reserved. 14 アーキテクチャ
© NTT Communications Corporation All Rights Reserved. 15 追加で考慮した細かいこと
▪ AWS Secrets Manager のローテーション機能で Amazon RDS の管理者ユーザーのパスワードをローテーショ ン ▪ 証明書は AWS Certificate Manager で管理 • 証明書を AWS がマネージしてくれるサービス ▪ セキュリティグループによるファイアウォールを設置してトラフィック制御 • インバウンド・アウトバウンドのトラフィックの制御もマネージしてくれる ▪ ALB は AWS WAF で保護する • SQL インジェクションや DDoS への対策 ▪ Amazon RDS には削除保護機能を実施 • オペミス対策 ▪ インフラのコード化を実施 • 将来構成がどうなっているのかをわかりやすくする対策
© 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
© NTT Communications Corporation All Rights Reserved. 17 移行について
© 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. を実施したらユーザーに周知
© NTT Communications Corporation All Rights Reserved. 19 移行してみて
© NTT Communications Corporation All Rights Reserved. 20 移行してどうなったか
▪ NetBox が定期的に落ちる期間がなくなった ▪ 可用性向上 • DB やキャッシュサーバーのレプリケート・マルチ AZ への配置 • アプリケーションのマルチ AZ への配置 ▪ コードになったのでインフラの状態がどうなっているか確認しやすくなった ▪ マネージされる部分が増えたので管理しなければならないものが減った • オンプレミスのサーバーで稼動している OS のパッチ適用やミドルウェアの管理からの解放 • DB へのパッチ適用が GUI でできる
© NTT Communications Corporation All Rights Reserved. 21 今後どうしていきたいか
© NTT Communications Corporation All Rights Reserved. 22 今後どうしていきたいか
▪ ログのダッシュボード化 • 現在は定常的に見る項目も毎回手作業で検索実施 • 毎回見てるものはダッシュボードにして省力化したい ▪ ヘルスチェックで問題があったらアラートを通知する基盤の構築 • いくら AWS でも絶対に落ちないというわけではないのでアプリを監視したい • NetBox へ接続できなくなったなど ▪ NetBox はチームで必要なものなので、移行した自分だけではなくチームで 管理できるようにハンズオンやノウハウの共有 ▪ 期間の過ぎたログの Amazon S3 への自動エクスポート • Amazon CloudWatch は費用が高いため直近分のみ保存するように期限を設定 • 期限が過ぎたログは Amazon S3 に保存することで安く長期的に保存をする
© NTT Communications Corporation All Rights Reserved. 23 まとめ
© NTT Communications Corporation All Rights Reserved. 24 まとめ ▪
やったこと • 物理サーバー1台で動かしていた NetBox を AWS へ移行 • ミドルウェア含めて冗長性がなかったので可用性を重視して設計 ▪ 共有内容 • AWS へ移行するにあたって可用性を確保したアーキテクチャについて共有 • 移行にあたっての考慮ポイントや移行方法を共有 ▪ 今後は • AWS 上に移行完了したので、以降は監視やバックアップ機能を充実させていきたい