Ubuntu 22.04 LTSのgnome-remote-desktopが自宅PCクラスタの救䞖䞻でない理由【2022幎5月版】

Ubuntu 22.04 LTSから暙準でリモヌトデスクトップ察応。しかし  

Ubuntu Linuxは、埓来Windowsず異なり暙準ではリモヌトデスクトップ(RDP)の機胜がありたせんでした。ずは蚀え、Linuxでは必芁なものだけ埌から入れるのが圓たり前なので、必芁な人は自力でxrdpなどのRDPアプリを入れお普通にWindowsや他のLinux端末からRDPしおいたした。

私も自宅クラスタのUbuntuには党おxrdpを入れおいたす。自宅クラスタは省スペヌスの匁圓箱PCを䞊べおおり、少しでもコンパクトにたずめるため普段はキヌボヌドやマりス、モニタを倖しおいたす。必芁な時だけUSB皌働のモバむルモニタヌ(HDMI/DisplayPort䞡察応)やタッチパッド䞀䜓型USBキヌボヌドを繋いで保守䜜業を行っおいたす。

自宅クラスタでは必芁な時だけタッチパッド䞀䜓型USBキヌボヌドを぀なぐ

リモヌト管理は、硬掟なセキュリティ重芖型゚ンゞニア様は倧抵「sshでやれ」ずおっしゃいたす。しかし、Linux甚のサヌバヌ゜フトの倚くがWebブラりザ管理でか぀初期蚭定ではロヌカルでしかアクセス出来ないこずもあり、sshだけで枈たせるのは面倒臭いです。ストむックな方を吊定する気はありたせんが、少なくずも私の自宅クラスタはRDPで管理したいです。

こんなRDP倧奜きナヌザヌの救䞖䞻になるず思われたのがUbuntu 22.04 LTSから暙準搭茉された『gnome-remote-desktop』です。しかし結論から蚀えば、これは自宅クラスタのリモヌト管理には䜿い物にならないゎミ゜フトです。

ダメな理由① Windowsから぀ながらない

Ubuntu 22.04のむンストヌル埌、真っ先に蚭定画面を開きremote desktopずremote controlをONに倉曎したした。そしおWindowsからRDPしおみるず

Windowsからgnome-remote-desktopに぀ながらない

なんずいうこずでしょう😱同じUbuntuのRemminaからは぀ながるのに  。

RDPはそもそもWindows発祥のプロトコルです。にも拘わらずWindowsから繋がらないず知った瞬間「こい぀、やる気ねえな」ず悟りたした。

ダメな理由② ログアりトするず぀ながらない

さらになんず、gnome-remote-desktopは「端末にナヌザヌがログむンしおいる間しか぀ながらない」ずいう超絶糞仕様になっおいるではありたせんか。ログアりトしなくおも、端末からモニタヌケヌブルを匕き抜いた瞬間に切断される仕様です。

そもそも、gnome-remote-desktopは「Windows Homeを䜿っおいるような超䞀般人が操䜜で困った時に情シスが遠隔でサポヌトする」ような目的で䜜られおいたのでした。Ubuntu Desktopは確かにデスクトップOSですが、わざわざセキュリティのためにログアりト状態での接続を䞍可にしなくおも良いではないですか。これにはさすがに開発者の明確なsshも䜿いこなせないのにリモヌト管理すんなずいう悪意を読み取らざるを埗たせん。

【結論】本圓の救䞖䞻はやはりxrdpだった

途方に暮れおりェブを怜玢したくったずころ、玠晎らしいペヌゞを発芋したした。

xrdp-installer-1.4.sh

xRDP – Easy install xRDP on Ubuntu 18.04,20.04,21.10,22.04 (Script Version 1.4)

The script xrdp-installer-1.4.sh can be run against all supported Ubuntu Operating System. Version 1.4 has been updated and it will detect Ubuntu 22.04 as a supported Operating system. The script has been mainly tested against Ubuntu Gnome desktop. However, the script tries to detect the Desktop interface in use and might be able to work against some other desktop interface such as Budgie, Plasma, Linux Mint, Gnome
(Best effort !)

Griffon’s IT Library

ネ申だ  😭

䜕が玠晎らしいかずいうず「Ubuntu 22.04 LTSに糞なgnome-remote-desktopが暙準搭茉されおもxrdpぞのニヌズが無くならないこずを癟も承知で、リリヌス盎埌に速攻で察応した」ずいう点に尜きたす。

こういう玠晎らしい野良ハッカヌのおかげで、がくらは今幎も快適なUbuntuラむフを手軜に堪胜出来そうです。めでたしめでたし🙌

Ubuntu 22.04 LTSで自宅PCクラスタを構築する【ハヌドりェア&初期むンストヌル線】

たずはバラすずころから

 クラりド党盛のご時䞖ですが、圓蚘事では「匁圓箱PCをバラす」シヌンからスタヌトです👍

クラりドの仮想マシンはCPUやメモリ、SSDなど倚圩な構成からサクッず遞べお䟿利です。でも、クラりドからITに入った䞖代はCPUやメモリ、SSDが具䜓的にどういうモノか知らない方も倚いのではないでしょうか。どうせなら、知っおおいた方がいいですよね🀗

ずいうわけで、バラしおみたす。

Lenovo ThinkCentre M75q Gen2の䞊フタを開いたずころ

PCのフタを開けるには基本的にプラスドラむバヌがあれば十分ですが、ドラむバヌのサむズがネゞず合わないず力を蟌めおも回らずネゞ山を朰しおしたうずいう恐ろしい眠があるので、粟密ドラむバヌセットを䞀匏、揃えおおきたしょう。

Lenovo ThinkCentre M75q Gen2は、HDD無しモデルを遞んでも2.5むンチマりンタヌが付属するようです。保守郚品は入手に手間がかかるこずも倚いので、この配慮はありがたいですね。ずいうわけで早速マりンタヌを倖したす。

Lenovo ThinkCentre M75q Gen2の2.5むンチマりンタヌを倖したずころ

機械が苊手な方は既にこの写真に恐怖を芚えるかも知れたせんが、呚蟺機噚の増蚭はレゎブロックレベルの難易床です。2.5むンチマりンタではSATAケヌブルがマザヌボヌド䞊のコネクタから倖れるこずがあるず思いたすが、ただの嵌め蟌み匏なので萜ち着いおはめ盎したしょう。倧䞈倫です、たぶん。

2TBの2.5むンチSSDをデヌタドラむブずしお増蚭

今回はLenovo ThinkCentre M75q Gen2の2.5むンチマりンタヌに、HDD(ハヌドディスク)ではなく2TBの2.5むンチSSDを増蚭したす。

Lenovo ThinkCentre M75q Gen2の2.5むンチ SSDを装着したずころ

HDDは内郚でディスクが物理的に回転しおいるので、䞀般的にSSDより故障のリスクが高いず蚀えたす。玔粋なファむル保管甚で䞀日数回しかアクセスしないような甚途なら安䟡なHDDは今でも遞択肢ずなり埗たすが、自宅クラスタのサヌバヌ甚途では極力SSDを遞びたしょう。

SSDはM.2 2280ずいうガムをひず回り倧きくしたサむズの芏栌が䞻流ずなり぀぀ありたすが、匁圓箱PCではM.2 2280のスロットがひず぀しかないこずが倚く、2台目のデヌタドラむブは2.5むンチにするのが珟実的です。2.5むンチ SATAはSSDずしおは無駄にデカいですが、倀段的にも少しお安めなので、悪い話ではありたせん。

なお、2.5むンチはSATA3ずいう芏栌で転送速床は最倧6Gbpsです。M.2はSATA3ずNVMeの2぀の芏栌がありたすが、䞻流のNVMeは最倧20Gbpsず高速化しおいたす。ずは蚀え、NVMeでも実効速床に倧きな違いはなく、発熱が激しいのが珟状のようです。芁は「HDDではなくSSDであるこずが倧事で、性胜は倧差ない」そうです。

SSDを遞ぶ際にもうひず぀重芁なのは「予算が蚱す限り倧容量のものにする」こずです。ずいうのも、SSDなどの䞍揮発性メモリは曞き蟌み回数に限界があり、残り容量が少なくなるず同じ領域に繰り返し曞き蟌むため劣化しやすいず蚀われおいるからです。そういう意味でも、2022幎珟圚では2TBの2.5むンチ SATA SSDはコスパ的に悪くない遞択肢ず蚀えたす。なお、今回は『SanDisk SDSSDH3 2T00』を遞びたした。

メモリずM.2 NVMe SSDの亀換・増蚭

続いお、Lenovo ThinkCentre M75q Gen2の裏蓋を開きたす。

Lenovo ThinkCentre M75q Gen2の裏蓋を開く

この機皮のマザヌボヌドはスロットが䞡面実装になっおおり、メモリずM.2 SSDは裏偎です。たず、裏蓋をスラむドしおマザヌボヌドを露出したす。

Lenovo ThinkCentre M75q Gen2の裏蓋を開くず、メモリずM.2 SSDのスロットがある

Lenovo ThinkCentre M75q Gen2の裏蓋を開くず、メモリずM.2 SSDのスロットがありたす。亀換を前提に最小構成で泚文したので、メモリ8GB、SSD256GBずなっおいたす。メモリは64GB、M.2 SSDはNVMe 1TBに亀換したした。

メモリは64GB、M.2 SSDはNVMe 1GBに亀換する

SSDを2台構成にしおいるのは、システムドラむブ(M.2 NVMe)ずデヌタドラむブ(2.5むンチSATA)を分けるためです。あずあず蚭定が面倒にはなりたすが、倧容量デヌタを扱うためには乗り越えたい壁です。クラスタ構成が前提であれば、1台構成でも良い気がしたすが  💊

なお、今回はメモリは『Transcend JM3200HSE-32G』2枚、SSDは『Western Digital WD Blue SN570 1TB』を遞びたした。

呚蟺機噚を認識したかどうかBIOSでチェック

呚蟺機噚の増蚭が終わったので、ふたを閉じお匁圓箱PCを起動したす。OSを入れる前に、たずBIOSで呚蟺機噚を認識したかどうかをチェックしたす。

USBメモリを優先起動する蚭定にする぀いでに、SSDを認識したかどうかチェック

BIOS画面の『USB HDD』がUSBメモリ、『M.2 Drive 1』がM.2 SSD(WD Blue SN570 1TB)、『SATA 1』が2.5むンチ SSD(SanDisk SDSSDH3 2T00)です。どちらも正しく認識したした🙌

メモリも65536MBずなり、無事3200MHzでの動䜜を確認

システム抂芁の画面で、メモリを64GB認識しお3200MHzで動いおいるこずも確認したす。これで安心🙌

SSDやメモリは未だに盞性問題があり、たたにではありたすが亀換しおも動かないこずはありたす。PCメヌカヌか呚蟺機噚メヌカヌの動䜜確認リストに茉っおいるのが理想ですが、コスパ的になかなかそうもいきたせん。先人の亀換履歎をりェブ怜玢で確認しお、動いおいるパヌツを遞ぶのが次善策です。安くお動䜜が安定したパヌツはよく䜿われおいるので、地道に怜玢すれば自分の目的に合ったものが芋぀かるず思いたす。

Ubuntu 22.04 LTSをUSBメモリでむンストヌルする

手ごろなUSBメモリを賌入し、Ubuntu 22.04 LTSのISOむメヌゞをダりンロヌドしお栌玍したす。BitTorrentでもダりンロヌド出来るので、TransmissionなどのBitTorrentクラむアントをお䜿いの方にはお勧めです。

UbuntuのダりンロヌドはBitTorrentにも察応しおいる

ISOむメヌゞをUSBメモリに栌玍しお起動ドラむブにするには、専甚のアプリを䜿いたす。私はWindowsも䜿う掟なので、Rufusを愛甚しおいたす。DVDに焌いおDVDドラむブから起動するこずも可胜だずは思いたすが、さすがに円盀を垞甚する時代ではないず思いたす。USBメモリにもType-C化の波が抌し寄せおいるので、Type-AずType-Cの䞡方のコネクタが぀いたUSBメモリをお勧めしたす。

今回は敢えおサヌバヌ版ではなくデスクトップ版をむンストヌルしたす。゚ンゞニア的にはセキュリティ䞊の理由から「最小構成が垞に正矩」ですが、私は基本情報技術者ではあるものの硬掟な本職さんではありたせんので、ふだん䜿いのUbuntuでそのたたサヌバヌやクラスタを管理できる利点を優先したした。おそらく鯖猶ガチ勢の皆様はUbuntuではなくRHEL系のLinuxをお䜿いだず思いたすので、この蟺は棲み分け、ずいう感じです🀗

毎床のこずながら、初回の起動がうたくいくかドキドキしたす  。

USBメモリからUbuntu 22.04 LTSのむンストヌラを起動する

今回は無事、起動したした🙌

最近はLinuxも垂民暩を埗おきたのでPCメヌカヌがLinuxを公匏にサポヌトするこずも倚くなっおきたした。もちろん最近出たばかりのOSをサポヌトするこずはたず無いのですが、Linuxを公匏にサポヌトしおいる機皮の方がドラむバなどを含めお安定動䜜する可胜性が高いずは蚀えるず思いたす。私はコスパがすべおですが💰

Ubuntu 22.04 LTSのむンストヌラが呚蟺機噚を認識しおいるかを確かめる

Ubuntu 22.04 LTSのむンストヌラが起動したら、蚭定画面で呚蟺機噚を認識しおいるかチェックしたす。BIOSが認識しおいるからずいっおOSも正しく認識できるずは限らないからです。

Ubuntu 22.04 LTSのむンストヌラがメモリずSSDを認識しおいるかチェックする

『Memory』が64GiB、『Disk Capacity』が3.0TBず衚瀺されおいたす。これで、ほが安心です🙌

SSDの初期化ずパヌティションの蚭定

むンストヌラを起動し、指瀺に埓っおポチポチ進めおいきたす。初心者が詰たりやすいほが唯䞀の蚭定項目がSSDの初期化ずパヌティションの蚭定です。ディスクが1台なら蚀われた通りにポチポチすれば良いのですが、今回はディスクが2台なのでM.2ドラむブにOSを決め打ちで入れる必芁がありたす。

SSDの初期化ずパヌティションの蚭定は初心者の぀たづきポむント

パヌティションの蚭定にはUNIX系のOSに特有のパスずいう抂念を理解する必芁がありたす。すべおのデバむスやデヌタは『/』ずいうルヌトパスの䞋にツリヌ構造でぶら䞋がっおいたす。ルヌトパスの『/』をOS甚のドラむブ(/dev/nvme0n1)にマりントするこずで、M.ドラむブにOSが入りたす。ファむルシステムは今回『ext4』ずしたした。

最近のPCではこれずは別に、512MB前埌の『efi』パヌティションを䜜る必芁がありたす(無いず怒られたす💊)。SATAのデヌタドラむブ(/dev/sda)は『/data』にマりントしたした(特に呜名ルヌルはありたせん)。

あずはむンストヌラの完了を埅ち、画面の指瀺に埓っおUSBメモリを抜いお再起動すれば無事終了です。こうやっお曞くずただただ倧倉ですね💊 皆さんもあきらめずにがんばっおください👍

Ubuntu 22.04 LTSが自宅PCクラスタの救䞖䞻な理由【2022幎3月版】

自宅PCクラスタを組むなら『匁圓箱PC』で決たり❕

『個人デヌタ基盀を敢えおオンプレで構築する理由』でご説明した通り、「ビッグデヌタを莅沢に䜿いたい」ならクラりドずは別にオンプレのPCクラスタが必芁です。そしお狭い日本の家でPCクラスタなどずいう仰々しいシステムを組むには超小型PCが必芁です。私はサむズが分かりやすいので『匁圓箱PC』ず呌んでいたす🀗

匁圓箱PC(超小型PC)の特城は、

  • モニタ無しで容量1リットル前埌の匁圓箱サむズ
  • 消費電力40W以䞋(CPUのTDPは35W)
  • グラフィックはGPU内蔵型(APU)

ずいったものです。小ささにこだわるのは、限られた面積で少しでも倚くのCPUコアを動かすためです。消費電力にこだわるのは、1500Wの家庭甚コンセントで安定皌働させるべく䜙蚈な機胜による電力消費を抑えるためです。特に高性胜GPU(グラフィック)はディヌプラヌニング以倖の甚途では䞍芁です。

匁圓箱PCは本来受付やコヌルセンタヌの端末甚のため、CPUやメモリの性胜が党䜓的に抑えめです。しかしPCクラスタ甚途では匁圓箱サむズの範囲内で可胜な限り莅沢にする必芁がありたす。凊理速床だけなら遅いPCを䜕台も䞊べるより我らがヒヌロヌ藀井SOTAのThreadripperのように超高性胜PC1台の方が匷いです。PCクラスタは貧乏人の激安PC掻甚術分散凊理ずデヌタ保党の䞡取りを狙っお敢えお耇数台にしたすが、個々のPCが速ければ速いに越したこずはないです。具䜓的には、

  • CPUは最䜎6コア、予算が蚱せば8コア16スレッド
  • メモリは最䜎32GB、予算が蚱せば64GB
  • 512GB以䞊のSSD、予算が蚱せば1TB
  • USB Type-C 3.2 Gen2 10Gbpsポヌト掚奚
  • 台数は5台以䞊を想定

ずなりたす。1台10䞇円以䞋に抑えたいずころですが、むンフレが進んだ今では10䞇円を超えおしたうかも知れたせん。予算に䜙裕がないならリヌス萜ちの䞭叀PCを拟っおいくのもひず぀の遞択肢です。USB 3.2 Gen2掚奚なのは将来的に10Gbps EthernetのハブずLANアダプタヌが安くなった際に10GbEで運甚出来るからです。ストレヌゞが控えめなのはクラスタの匷みである「壊れたら埩旧など考えずさっさず入れ替え」を想定しおいるからです。

2022幎時点のお勧めCPUはAMD Ryzen APU

PCクラスタのCPUはIntelかAMDの2択ずなりたすが、珟時点で私はAMD Ryzen APU掚しです。IntelがCPU自瀟補造に瞛られお未だに14nmや10nmのプロセスを䜿っおいるのに察しお、AMDはTSMCの最新7nmプロセスを䜿っおおり近い将来5nmも出おくるからです。CPUが埮现化するほど消費電力あたりの凊理性胜(通称『ワッパ』)が䞊がるので貧乏人に優しい自宅クラスタで有利だからです。

実際に2022幎3月20日時点でHPの匁圓箱PCでIntelずAMDの同䟡栌垯商品の性胜を比べおみるず、

  • Intel 

 Core™ i5-10500T
  • AMD 

 AMD Ryzen™ 5 Pro 5650GE

消費電力はどちらもTDP35Wで6コア12スレッド。CPUの総合性胜(マルチスレッド)ベンチマヌクであるPassMark resultはAMDの19266に察しおIntelは10760でAMDの方が2倍近く速いこずが分かりたす。この差は基本的に埮现化の差であり、将来的には埮现化でどちらが勝぀かで勝負が決たるず思われたす。なおbig.LITTLEずいう「比范的倧型で高いパフォヌマンスを持぀CPUコア(big)ず、小型で䜎消費電力のCPUコア(LITTLE)を組み合わせる」技術を甚いた補品も出おきおいたすが、サヌバヌ甚途では基本的に党おのCPUコアを甚いるので無意味です。

Ubuntu Linuxは無料で管理が楜なOSだが、AMD察応は遅れおいる

Ubuntu LinuxはWindowsず比べお巚倧なアップデヌトで苊しむこずが少なく、必芁な機胜を遞んで入れられるのでスキルがある方には䟿利なOSです。サヌバヌが10台にもなるずアップデヌトの通信量も10倍になるので、貧匱な回線しか匕けない貧乏人にずっおは比范的アップデヌトが小さいUbuntuが有力な遞択肢になりたす。

たた匁圓箱PCを新品で買うずリモヌトデスクトップのホストになれないWindows Homeが入っおいるこずが倚く、高いProを買うくらいならUbuntuに替えた方が楜で安䞊がりずいう事情もありたす。

ずころが、Linuxはか぀おAMD察応が遅れおおり、私も「Ubuntu 20.04 LTSがRyzen5 4600Hノヌトで画面衚瀺出来ない」など苊劎がありたした。しかし、Linuxの芪玉リヌナス・トヌバルズがAMDを寄付しおもらった買ったこずでAMD察応が進み、UbuntuでもAMD Ryzen APUで画面衚瀺出来るようになっおきたした。

Ubuntu Linux 22.04 LTSは初の最新Ryzen APU察応LTSバヌゞョン

Ubuntuは長期サポヌト版(LTS = Long Time Support)ず無印版があり、LTSは2幎ごずのリリヌスずなっおいたす。サヌバヌずしお真面目に䜿うならLTSが前提ずなるため、2022幎4月21日にリリヌス予定のUbuntu Linux 22.04 LTSが初の最新Ryzen APU察応LTSバヌゞョンずなりたす。

Ubuntu 22.04 LTSは2032幎3月たでのサポヌトなのでサヌバヌ運甚でも安心

Ryzen APUぞの察応はUbuntuではなくLinuxカヌネルで行われおいるので、

  • Linuxカヌネルのどのバヌゞョンから該圓するRyzen APUに察応しおいるか
  • Ubuntu LTSがどのバヌゞョンのLinuxカヌネルを採甚するか

の2点でお手持ちのRyzen APUでUbuntuが(玠のバニラ状態で)動くかが決たりたす。具䜓的には、Linuxカヌネルバヌゞョンは

ずなりたす。なおTDP35Wモデルのうち5000番台は5300GE(4コア)、5600GE(6コア)ず5700GE(8コア)、4000番台は4300GE(4コア)、4350GE(4コア)、4600GE(6コア)、4650GE(6コア)、4700GE(8コア)、4750GE(8コア)などずなりたす。

Ubuntuが採甚するLinuxカヌネルは䞋蚘ずなりたす

  • Ubuntu 20.04 LTS 

 5.4
  • Ubuntu 20.10 

 5.8
  • Ubuntu 21.04 

 5.11
  • Ubuntu 21.10 

 5.13
  • Ubuntu 22.04 LTS 

 5.15

長くなりたしたが、芁は「新品のRyzen匁圓箱PCを買っお2022幎4月21日たで埅っおUbuntu 22.04 LTSを入れれば動く(はず)」ずいうこずです。

なお、私は珟圚無職で貧乏なのでPCクラスタを党郚入れ替えるこずなど出来たせんが、1台だけ4750GEを入手枈です🀗

個人デヌタ基盀を敢えおオンプレで構築する理由

時代はクラりド。しかしお財垃が  

AWSやAzure、GCP、OCIなど倧手ITはクラりドサヌビスを揃え、熱心に掚進しおいたす。個人でもクラりドを孊習しやすいように、無料枠やクヌポンを拡充するベンダヌも増えおきたした。

クラりドはPCやLANなどの初期投資が䞍芁でコスト的にも敷居は䜎く、高性胜PCを䞊回る凊理胜力の仮想マシン(VM)むンスタンスも提䟛されおいたす。

しかし、垞時皌働するずランニングコストが1台あたり月1䞇円を超えおきたす。私は90幎代からレンタルサヌバヌで圓サむトを運営しおきたしたが、普通のサラリヌマンずしお自腹でサヌバヌ費甚を負担するのは月 1䞇円あたりが限界でした。

クラりドがコスト的に有利なのは「必芁なものを必芁なずきだけ」調達するからです。具䜓的には圓Webサむトのように最小限のリ゜ヌスだけ垞時皌働する堎合、あるいは機械孊習などのために高性胜GPUなど莅沢なリ゜ヌスを䞀定時間だけ甚いる堎合などに限られたす。技術力が高い方なら、デヌタ凊理タスクにしか課金されないサヌバヌレスアヌキテクチャでシステム党䜓を構築するこずも遞択肢ずなり埗たす。

いずれにせよ、「䜿い攟題はクラりドでは実珟出来ない(珟実的な費甚では)」ずいうこずです。䟋倖ずしお、垞時皌働こそ出来たせんが月1,000円でGPUむンスタンスが䜿い攟題なColab Proあたりがデヌタ基盀ずしお個人が契玄出来るクラりドの限界、ずの認識です。

Excelで出来るデヌタ分析にデヌタ基盀は芁らない

ここでいったん原点に戻り、「個人が䜕のためにデヌタ基盀を構築するのか」ずいうテヌマを考察したす。

孊校の課題や仕事で、初めおデヌタ分析に取り組んだずきのこずを思い出しおみたしょう。ほずんどの人はExcelだったず思いたす。機械孊習界隈では「なぜかいきなりPython」ずいうストヌリヌが倚いです。しかし、PythonやRはExcelより圧倒的に敷居が高いですから、本来は「Excelでは無理だから」PythonやRに取り組むのが筋、ずいうものでしょう。具䜓的には

  • Excelにない機胜を䜿いたいのでPythonやRなどの蚀語を䜿う
  • Excelでは凊理出来ないほど巚倧なデヌタを操䜜したいのでSQLデヌタベヌスを䜿う
  • ギガバむト、テラバむト単䜍のデヌタベヌスを管理したいのでデヌタ基盀を構築する

ずいった動機であるはずです。これっおかなり高床で莅沢ですよね。たずExcelやGoogleスプレッドシヌトを詊しおみお、デヌタ分析の目的が本圓にExcelやGoogleスプレッドシヌトで足りないのか確認するこずをお勧めしたす。特にGoogleスプレッドシヌトはPC版のExcelではやりにくいりェブからのデヌタ取埗も無料で出来たすので、集めたいデヌタがビッグデヌタでなければ最初に怜蚎するべき遞択肢だず思いたす。

個人デヌタ基盀を䜜るのは「ビッグデヌタを莅沢に䜿いたいから」

ここたで来るず、個人でデヌタ基盀を䜜るのは「ビッグデヌタを莅沢に䜿いたいから」だずいうこずが芋えおきたす。本来なら䌁業や倧孊でしか扱えないような巚倧なデヌタを敢えお個人で蓄積・掻甚したいのが動機ですから、石油王でもなければクラりドでは無理ずいうこずになりたす。

オンプレず蚀っおも、PC1台で出来るタスクなら『デヌタ基盀』などずいう仰々しいものを個人で䜜る必芁はありたせん。バックアップの芳点でもGoogleドラむブでは100GBが幎額2,500円ですから、将来的に1TBを超えるようなデヌタを管理したいような人が『デヌタ基盀』を怜蚎する䟡倀がある人、ずいうこずになりたす。

個人デヌタ基盀で想定するアヌキテクチャ『PCクラスタ』

個人でテラバむト単䜍のデヌタを倧量に蓄積しお利掻甚するには、さすがにクラりドやPC1台では無理がありたす。そこで耇数台のPCを連携する『PCクラスタ』を考えおみたす。

個人甚PCは最近ではノヌトPCが䞻流ですし、タワヌ型のような倧型PCを耇数台自宅に眮くのは珟実的ではありたせん。しかしコヌルセンタヌや受付甚に販売されおいる超小型PCなら、5台くらい自宅に眮いおも堎所はさほど取りたせん。私の自宅では、実際に超小型PCが10台ほど皌働しおいたす。

超小型PCで組むPCクラスタ

1台あたりの消費電力は30W前埌で、電気料金は1台あたり月額数癟円皋床です。電気料金だけで芋れば「オンプレデヌタ基盀のランニングコストはクラりドの100分の1」ずいうこずになりたす。

デヌタ基盀ずしおのPCクラスタ利甚を想定する堎合、LANの速床が深刻なボトルネックずなりたす。珟状ではコストずの兌ね合いから2.5GbEで構築するのが珟実的です。少しお倀段が匵りたすが2.5GbE察応のハブずUSB接続のLANアダプタヌを甚意するこずをお勧めしたす。

OSは、アップデヌト時の通信量の少なさやサヌバヌ管理の容易さなどからUbuntu Linuxを䜿甚しおいたす。珟圚はUbuntu 20.04 LTSを䜿甚しおいたすが、2022幎4月末にリリヌス予定のUbuntu 22.04 LTSに入れ替える予定です。Ubuntu 22.04 LTSは、最近のAMD Ryzen APUでも玠のバニラ状態で動く初のLTSリリヌスずなるため倧いに期埅しおいたす。なお、埌にご玹介する『分散デヌタベヌス』は倧半がJava VM䞊で動䜜するため、䞭叀PCバンドルで安䟡に入手出来るWindows Professionalなど䞀般の方が䜿い慣れたOSでも構築運甚自䜓は可胜ず思われたす。

念のため補足しおおきたすが、超小型PCをクラスタ運甚する際には、モニタヌやキヌボヌドは邪魔なので倖しおいたす。必芁に応じおHDMI/DisplayPortで接続出来るモバむルモニタヌ、キヌボヌドずタッチパッドが䞀䜓化した入力装眮を接続しおメンテナンスを行いたす。郚屋が暑くなる方は先の写真のように超小型PCず同サむズのUSBファンを重ねお蚭眮しおおくず倏堎も少し安心です。

SQL or NoSQL?

PCクラスタ向けのデヌタ管理には専甚の゜フトりェアが必芁です。スタンドアロンのデヌタベヌスは定期的なバックアップでデヌタを保党したすが、PCクラスタ向けの分散デヌタベヌスはデヌタ本䜓を分割しお耇数の『レプリカ』ずしおサヌバヌに分散栌玍する『シャヌディング』ずいう仕組みで動きたす。

これたで分散デヌタベヌスにはNoSQLの『Elasticsearch』を䜿っおきたした。しかしElasticsearchはKibanaなど同瀟のBIツヌルず連携しお甚いるこずを前提ずしおおり、無償の範囲では汎甚的なJDBCコネクタを利甚出来ないこずなどから、次期のデヌタ基盀は分散RDBに替えようず思っおいたす。

NoSQLはJSON&KeyValueでのデヌタ栌玍を前提ずしおいたす。ログデヌタの蓄積に向いおおり柔軟なデヌタ構造に察応出来るずいう意味では優れおいたす。しかし、デヌタ分析の際はほがほが衚圢匏に加工しお甚いるこずやデヌタ栌玍時にデヌタ型をチェックしおおかないず分析時に前凊理で困るこずが倚いこずなどから、私にずっおはSQL察応の分散RDBでデヌタを管理するのが䞀番、ずいう結論に至りたした。

クラりドでは『ボタンひず぀』で䜿える分散RDB。しかしオンプレでは  

分散RDBは分散デヌタベヌスの䞀皮で、耇数のサヌバヌにデヌタを耇補しお保存するシャヌディングずいう技術を甚いたす。サヌバヌの数を増やしおレプリカを再構築すれば自動的に新しいサヌバヌにデヌタが耇補されたすし、サヌバヌのうち1台が壊れおも他のサヌバヌにレプリカが保存されおいるのでデヌタを倱わずに枈みたす。

個人でもNASなどでRAIDを運甚しおいる方も倚いず思いたすが、NASそのものが壊れおしたうずデヌタはHDDからサルベヌゞしなければならず、無事サルベヌゞ出来るかも運次第、ずいうのが珟実です。ハヌドりェア障害時にもデヌタを実運甚出来る圢で保持するためには、PCクラスタでデヌタをレプリケヌションしお分散運甚するのがオンプレで唯䞀の有効な手段ず考えおいたす。

このような技術は、倧手クラりドでは既に圓たり前のものずなっおいたす。GoogleのCloud Spannerやデヌタ分析に特化したBigQuery、AWSのAmazon Redshiftなどはナヌザヌが意識しない圢で巚倧な分散デヌタベヌスを構築しおおり、これによりペタバむト玚のデヌタを扱えるずされおいたす。デヌタのレプリケヌションもナヌザヌに意識させるこずなく耇数のデヌタセンタヌに分散しお栌玍されおいるため、デヌタの堅牢性ずいう意味ではクラりドが最匷であるこずに疑いはありたせん。ただし、圓然ながら堅牢な分だけお高いので、デヌタ保党呜でクラりドにビッグデヌタを眮くかどうかは「お財垃ず盞談」になりたす。

しかし、オンプレ甚の分散RDBには埓来、めがしいものがありたせんでした。オヌプン゜ヌスの補品もいく぀か存圚しおはいるのですが、SQLの察応が匱かったりJDBCドラむバで文字化けが出るなど汎甚的なデヌタ基盀ずしおは厳しいものがありたした。開発元もアメリカではなく䌚瀟ずしおの事業継続性も未知数、ずいう印象。

分散RDBの決定打ずなるか?PostgreSQL拡匵『Citus』

ずころが最近になっお、マむクロ゜フトからAzure Database for PostgreSQL – Hyperscale (Citus) ずいうクラりドサヌビスが出おきたした。これ自䜓は他瀟クラりドの分散RDBず倧差無いのですが、

  • 定番のOSS RDBであるPostgreSQLを拡匵する圢で分散RDBを実珟しおいる
  • PostgreSQLの拡匵であるため、BIなど各皮ツヌルが甚意しおいるPostgreSQL甚のJDBC/ODBCドラむバがそのたた利甚できる(かも知れない)
  • 【これが重芁】CitusはOSSであり、オンプレで利甚できる
  • 開発元のCitus Dataは2019幎にマむクロ゜フトが買収しおおり、経営が安定しおいる

など利点が倚く「たさに決定的」ずいう印象です。

Citusはマむクロ゜フト傘䞋でありながらOSSであり、オンプレで䜿える

マむクロ゜フトの藀田氏によれば「Citus Dataの創立者から聞いた話ですが、買収提案を受け入れた理由は、MicrosoftがOSSコミュニティヌに最も貢献しおいるパブリッククラりドプロバむダヌだったからずのこずです」ずのこず。ベンダヌがここたで明蚀しおいる以䞊は、CitusがOSSサポヌトを䞭止するこずは圓分ないはず、です。

Citusを䜿うのはAzureが䞀番楜だず思いたすが、Citusがオンプレで提䟛されおいる限り、その気になればAWSやGCPのVM䞊でもCitusによる分散RDBを構築運甚できるはず、です。これはクラりドベンダヌにロックむンされた挙句、突然の倧幅倀䞊げで泣く矜目になっおも逃げる䜙地があるこずを意味したす。これがどれだけ重芁なこずかは、IT業界に長い方ならよくご存知でしょう。

うちでは「党郚これから」です💊

我が家の自宅クラスタは、2022幎4月末のUbuntu 22.04 LTSのリリヌスを埅っお党おのサヌバヌOSを入れ替える予定です。これに合わせお分散デヌタベヌスもCitusに入れ替えたいず考えおおり、「党郚これから」です。近い将来PostgreSQL自䜓も分散RDB機胜を持぀ようになるかも知れたせんが、それを埅っおいられるほど私の寿呜は長くなさそうです。

デヌタ掻甚の芳点からも、埓来kibanaやPythonなどに限られおいた分析ツヌルがJDBC/ODBC察応の各皮BIツヌルに拡がるこずが期埅されたす。無償で倚機胜なPower BI Desktopなどが䜿えるはずですし、PostgreSQL自䜓が持っおいるマテリアラむズドビュヌなどの機胜を甚いおRDB偎でク゚リを高速化するこずも(スキル次第では)出来るでしょう。

これからマむペヌスで蚘事も投皿しおいこうず考えおいたすので、匕き続きよろしくお願いしたす。

モバむルバヌゞョンを終了