仮想化基盤
CDSLには,7台の物理マシンがあります.上段真ん中の物理マシンが外部向け,それ以外の6台が内部向けの物理マシンです.
外部向けサーバーのスペックは次の表のとおりです.
CPU | RAM | Storage |
Ryzen 9 3950X (16コア) | 64GB | 1TB |
内部向けである,4台のサーバーのスペックは次の表のとおりです.
CPU | RAM | Storage |
Ryzen 7 2700X (8コア) | 128GB | 3TB (iSCSI経由でNASをマウント) |
Ryzen 7 3800X (8コア) | 128GB | 3TB (iSCSI経由でNASをマウント) |
Ryzen 9 3950X (16コア) | 128GB | 3TB (iSCSI経由でNASをマウント) |
Ryzen 9 5950X (16コア) | 128GB | 3TB (iSCSI経由でNASをマウント) |
Ryzen 9 5950X (16コア) | 128GB | 3TB (iSCSI経由でNASをマウント) |
Ryzen 9 5950X (16コア) | 128GB | 3TB (iSCSI経由でNASをマウント) |
各サーバーにはVMWare ESXiがインストールされ,仮想マシンが動作しています.実際にKubernetesクラスタやElasticsearchクラスタ,監視サーバが動作しています.必要に応じてコンテナや仮想マシンを作成することができます.
(参考) 新たに1台のサーバを増設しました.
NAS
SynologyのNASが2台あります.10TB * 12をRAID10で構成しています.このNASを6台のサーバーからマウントして利用しています.
iSCSIやNFSを使ってESXiからNASのボリュームをマウントしています.以降のアーキテクチャ図(通称,ポンチ絵)は,CDSLメンバーのオリジナルです.
(参考) かっこいいポンチ絵の書き方
ハイブリッドクラウド
パブリッククラウドとしてGoogle Cloud Platformを主に使用しています.現在,使用しているサービスはGCE(Compute Engine)とGKE(Kubernetes Engine)の2つです.研究室(オンプレミス)とGCPはOpenVPNで接続され,外部へ研究室内のサーバを公開することができます.
パブリッククラウドだけでなく,オンプレミスと併用したハイブリッドクラウドの構築を目指しています.クラウドを単に使うことで終わらず,新たに創ることを目標としています.
(参考) ASUSルータとOpenVPNでSite-to-Site VPNを構築 – Qiita
ネットワーク
ネットワーク・アーキテクチャは下図のとおりです.リバースプロキシとVPNにより,研究室外へコンテンツを公開できます.DHCPサーバとDNSサーバを組み合わせることで,リソースへFQDNを使ったアクセスが可能です.
(参考) ISC-DHCPD + PowerDNSによるDDNSでSlack通知 – Qiita
Elasticsearchクラスタ
研究室内にElasticsearch + Logstash + Kibanaによるクラスタが構築されています.特徴はHA(High Availability)を考慮した設計になっていることです.SPOF(Single Point of Failure)を排除しています.
(参考) HAProxyでHA化したElasticsearchクラスタを構築 – Qiita
ID管理基盤
ID管理にはSTNSを使っています.オンプレミスのサーバにGitHub Actions Self Hosted Runnerをインストールすることで,GitHubへの変更(Push)を起点に自動的なデプロイ(設定適用)を実現しています.これはGitOpsとよばれる技術です.詳細は以下のQiita記事に書いてあります.
(参考) STNSの設定をGitHub Actionsで自動ビルド&デプロイして優勝した – Qiita
踏み台サーバ
踏み台サーバをコンテナで再構築しました.詳細は以下の記事を参照ください.
テスト
サーバやストレージが正常に動作するかを検証するためにテストを行っています.Gossとよばれるサーバ向けテストツールとGitHub Actionsを組み合わせて,定期的なテストを実現しています.仮にテスト結果が変化(失敗→成功または成功→失敗)するとSlackへ通知がされる仕組みが用意されています.詳細は以下のブログ記事に書いて有ります.
(参考) gossとGitHub Actionsでインフラを自動テストした
バックアップ
詳細は以下の記事で紹介しています.
モニタリング
MaaS(Monitoring as a Service)や監視ソフトウェアを使用しています.使用しているサービスは以下です.
- Mackerel
- Zabbix(オンプレミス)
- Uptime Robot