8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自作クラウドのインフラ構成が1周まわってHCIに落ち着いた件

Posted at

はじめに

インフラエンジニアとして、長年「なぜか遅い」「アップデートできない」という悲鳴を上げるレガシーシステムと向き合ってきました。

そんな中、私が抱いた野望は 「日本の基幹システムを、その苦しみから解放する自作クラウドを作る」 というものでした。

設計が一周し、理想と現実の狭間でトレードオフを繰り返した結果、ようやく納得のいくアーキテクチャに辿り着きました。本稿では、その葛藤のプロセスを詳細に記録します。

1. 理想の追求:Windows Server S2D という最強の選択肢

最初の設計思想は、 「究極の互換性」 でした。

多くの現場では、古い .Net Framework や Oracle Database が「動いているから」という理由で、石化するように残っています。これらを救うには、Microsoftのライセンス体系を逆手に取った戦略が最適だと思いました。

  • Windows Server Datacenter Edition の採用:
    • 物理ノードにライセンスを付与すれば、その上のVMに対するWindowsライセンスは無制限。これは「古いWindows Server OSをいくつでも立てられる」という、レガシー救済における最大の武器です。
  • S2D(Storage Spaces Direct)によるHCI:
    • 標準機能でソフトウェアデファインドストレージを構築し、RemoteAppを提供することで、クライアントの環境すら選ばないシステム環境を構想しました。

私の経験上、これが最も「ユーザーが喜ぶ」形だと確信していました。

現実という名の壁:2000万円の見積書

しかし、ハードウェアの見積もりを見た瞬間、思考が停止しました。S2Dの要件を満たす高信頼なサーバーは、1ノード500万円。4ノードで2000万円。

個人で始めるスタートアップには、あまりにも非情な数字でした。「ライセンスの正当性」と「初期投資の限界」。 数日間悩み抜いた末、私は魂とも言える「Windowsネイティブ環境の無制限提供」を、一度手放す決断をしました。

2. 転換と葛藤:Linuxへの舵切りと「捨てられない思想」

Windowsを諦めることは、主要ターゲットから .Net Framework を外すことを意味します。しかし、サービスインできなければ救えるものも救えません。

ターゲットを Tomcat / .NET Core / Node.js に再定義しました。

ここで、私は自分自身に問いかけました。

「ただのLinux VPSの集合体を作って、何が楽しいのか? それで誰が幸せになるのか?」

そこで、インフラに「付加価値」を組み込むことにしました。

「載せるだけで速くなる」ための Apache Ignite

OracleやSQL Serverからの移行先としてPostgreSQLを据えつつ、そのフロントに Apache Ignite を配置しました。

  • 単なるキャッシュではなく、分散データベースとしての永続化層(Native Persistence)への期待。
  • ユーザーが「このクラウドに移行するだけ」で、SQL資産を活かしたまま劇的なパフォーマンス向上を体験できること。
  • VMのオートスケーリングを実現するため、セッション管理を外部のIgniteクラスタへ強制的に切り離す設計。

「なぜ遅い?」をゼロにする Apache SkyWalking

現役時代、最も苦労したのは「どこがボトルネックか分からない」ことでした。

Apacheプロジェクト同士の親和性を活かし、SkyWalking を標準の観測基盤として組み込むことにしました。インフラ側でAPM(性能管理)まで面倒を見ることで、開発者が「コードのどこが遅いのか」を即座に特定できる環境を目指しました。

3. 回帰と確信:Proxmox + Ceph による「自営HCI」への着地

最初はハイパーバイザー、Ignite(キャッシュ)、DB、Ceph(ストレージ)の4層を別々のハードウェアで組む「4層構造」を検討していました。しかし、それではリソースの偏りや管理の複雑増大を招きます。

調査を進める中で、Proxmox上でCephをネイティブに動かすHCI構成が、今の私にとっての「銀の弾丸」であることに気づきました。

  • 25GbEという逆張り:
    • メモリやディスクが高騰する中、実は25GbEアダプターは驚くほど安価に流通しています。ここをケチらず25GbEを選択したことで、Cephの同期トラフィックを余裕を持って捌き、オールNVMeに頼らずとも十分なI/Oを確保する道が見えました。
  • 1ノード300万円への削減:
    • S2Dの呪縛から解き放たれ、OSSをベースにパーツ選定を見直すことで、性能を維持したまま1ノードあたりのコストを大幅に削減。これなら戦える、と確信しました。

4. 最終的な設計思想:モノリス救済PaaS

最終的に辿り着いたのは、 「巨大なモノリスをそのまま包み込み、最新の技術で武装させるPaaS」 です。

  • タイムマシンリカバリの標準実装:
    • 「運用者が最も怖いのはデータの消失と不整合」。1~5分おきにスナップショットを取得し、管理画面から「20分前の状態にアプリとDBを丸ごと戻す」機能。これは、私が現場で何度も「あればよかった」と切望した機能です。
  • Cloudflare Tunnel による要塞化:
    • グローバルIPという枯渇リソースを節約しつつ、外部からの直接攻撃を物理的に遮断する。クライアント証明書認証を組み合わせ、安価ながら軍事レベルのセキュリティを提供します。

今後の課題:.NET Core への架け橋

.Net Framework を直接動かすことは諦めましたが、それは「古いものをそのままにする」ことへの決別でもあります。

今後は、.Net Framework から .NET Core への移行をいかにシームレスにサポートするか。この「移行の痛み」を和らげるツール群をPaaSの一部として提供することが、私の次の戦場です。

おわりに

これから少しずつ開発環境で今回の構成を検証していきます。サービスインを応援して頂けると嬉しいです。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?