ハードウェアからサーバ・アプリまでワンストップで開発

第2回 脱クラウドサービス

そのクラウドは大丈夫ですか?

こーゆー「暇ネタ」はあまりどんどん出すとネタが枯渇しがちになるのですが、他方いくつかエントリを用意しておかないと「作っただけ」になってしまいます。

そんなわけで、もうちょっと先に書こうと思っていたネタで行きます。

脱クラウド計画(0)でチラと書いた

またその他に「クラウドサービスを使う」ということそれ自体、何やら窮屈に感じることが増えて来ました。この辺はあまり深くここで書くことはしないでいずれ個人ブログにでも書こうと思っています。ただ何にしろ「なんでもかんでもクラウド」ということに問題を感じるようになったのは事実です。

について書きたいと思います。

クラウドは便利

クラウドは便利です。

弊社を始めた頃は、まだクラウドなんてものはあまり流行ってもいなかったので、何をするにもサーバを立てていました。公開するウェブサービス用のサーバは元より、ちょっとしたファイルサーバも全部オンプレでやっていました。まぁそんな時代でしたし、クラウド自体が海のものとも山のものともつかなかったですし、あまり廉価な感じもしませんでした。

そうやって何年もやって来て、「サーバ室」のために不動産物件を借りたりとかしていました。また技術としては、仮想化を上手に使うことを頑張っていました。ネットワーク分散のできるファイルシステムとかもいろいろ試しましたね。あと、熱についてもいろいろ考えて、下手に気温を下げるよりも風を送る速度上げた方がよく冷えるということに気がついて、そういった筐体を作ってみたりとか。

mayumiが入って来た頃、ちょうど比較的安定した仕事があったことと、「サーバ室」は人間が作業するには厳しい環境だったこともあって、今の事務所を借りることにしました。代わりに「サーバ室」はやめて、同時にたくさんあったサーバを廃棄しました。

もちろん必要があって所有していたサーバですから、単に「廃棄」というわけにも行かないわけですが、その移行先としてAWSを使ってみることにしました。また、一般的な「サーバ」は自前でサーバを立てないで、極力クラウドサービスを使うことにしました。

使ってみると結構便利なもので、基本的には「何でもかんでも」という感じにクラウドサービスに移行して行きました。東北の震災の時に停電とか破損とかが身近なものに感じられた後でもあって、「自前にサーバのない気楽さ」はとても心地良かったですね。ディスクの単価がオンプレよりも随分と高かったのですが、ちょうどAWSの単価がどんどん下がっている時期もあって、

もう自前でサーバを持つ時代は終わった

と感じたものです。

まぁそれは束の間の話で、同じ部屋にいるのにファイルの交換をクラウドサービス(DropBox)を使ってするのは何かムダですし、大き目のファイルとかだと厄介だし... ということで、ある程度のことについては、ローカルにサーバを置いてownCloudを使ってやるようにしました。もっともそれはサーバクラッシュですっとんでしまったので、あらためてクラウドの良さを感じることになりました。ハードウェア原因でディスクを喪失するようなことは、今時のクラウドにはないことですから。

そんなわけで、基本的には

クラウド推し

になっていました。

クラウドの不便さ

そんなわけで、基本的に何でもかんでもクラウドに置くことを基本にして、どうしても密にデータ交換があったりすること以外はクラウドを使うという運用になっていました。

しかし、そうやって使い込むと、だんだん問題にも気がつくようになりました。

いつの間にか重くなるクラウドの費用

さて、コロナと関係があったのかなかったのかは置いておくにして、コロナの騒ぎが始まった頃から、弊社の売り上げは激減状態となりました。無駄な支出を減らすことを考え始めたわけです。

そこでやっぱり「クラウド代」についての考察が始まるわけです。家賃の次くらいに大きな固定費ですからね。

とは言え、当初(2年前くらい)はそこまで深刻ではないと思ってたので、単に「不要なインスタンスを止める」「DBのマネージドサービスをAuroraからRDSに戻す」というような、普通の対応で解決を計りました。これでも結構コストカットになるもので、3, 4割は減ったと思います。

そのうち、円安が始まりました。そうすると、せっかく下げた払いがまた増えて来ます。別にインスタンス増やしたわけでも、DBを追加したわけでもないので、脱クラウド計画(0)で書いたように

何もしないのに支出が増えた

わけです。最初のコストダウンが消し飛ぶくらいになりました。

オンプレ環境では電気代が上がるとそうなったりしますが、ここまで極端なことは滅多にない... と言うより、それが起きてしまったら、多分他で暴動でも起きるでしょう。

こういったわかりやすい話だけではなく、クラウドには案外な費用を有無を言わさず要求するものが少なくありません。そして、それには滅多に関わることがなくても、何かの転みでびっくりさせられることが起きます。

いつの間にか来るクラウドのリスク

まぁ費用だけのことであれば、要は「お金」の話に過ぎませんから、ある程度ならどうとでもなります。しかし、それだけで済まないことも少なくありません。

例えばGitHubの問題、随分前に個人ブログのエントリで扱いましたが、こんなことがありました。

GitHubがイランなどからアクセス不可に、米国の経済制裁により。CEOのフリードマン氏「望んでやっているのではない」

また、最近の話では、こんなことが。

遠隔診療のため幼児の股間を撮影した父親、Googleアカウントを永久消去される

ちょっと前には、

ツイッター社、トランプ氏の個人アカウントを永久凍結 各社がSNSパーラーを凍結や削除

いずれも、利用者が思ってもない時に突然アカウントが削除されたり使えなくなったりするということです。また、

Gmail Scans Caught a Sex Offender Who Left No Trace Elsewhere Online

こういったことや、

中絶関連の罪で10代娘と母訴追、警察がFBから2人のやり取り入手 米

こういったこともありました。

ここでは個々の事件の善悪は問いません。ここで共通するのは、「巨大な私企業が自分達の論理で利用者をコントロールする」ということです。それぞれは、それぞれなりの理由のあることであって、個々の原因の善悪は問いませんが、

いつ使えなくなるか

という問題と、

何らかの手段でコンテンツが第三者に漏洩するかも知れない

という問題はクラウドには常につきまとうというのは事実だと言えるでしょう。

クラウド化の見直し

そんなことで、かつてのように無邪気にクラウドサービスを信じることは出来ないということに気がついてしまいました。

つまり、もう少し冷静にメリットデメリットを理解した上で使った方が良いということです。盲目的に信用するのは愚かだと気がついたわけですが、他方盲目的に否定するのも良くないだろうということです。

以下は、私の考えた基準です。誰もがこうするべきとは言いません。

  • IaaS, PaaSは必要を感じたら使う
  • SaaSは便利なものは使うが依存は危険
  • SNS等は遊戯まで

IaaS, PaaSは必要を感じたら使う

必要ないものは使わないのは当たり前なのですが、IaaSやPaaSは要するにかつての「サーバ」の進化形です。そういった意味であれば、

サーバでやっていたことは何でも使える

ものです。いろんな運用の手間を考えれば、「安易に」使ってしまって良いでしょうし、そう言っている評論家は少なくありません。個人的には「金の心配がなければ使っても良い」と思っています。

とは言え、経営的には「そんなものラズパイでも出来るんじゃない?」みたいなものまで、お金を払ってIaaSやPaaSを使うこともないとも言えます。

たとえば、

  • (うちのような)零細企業のホームページ
  • クラウド利用を前提としてないアプリケーションの開発
  • まだ海のものとも山のものともつかないサービス

といったものであれば、ラズパイであってもWSLであってもそれ程困難はありません。RDSやAuroraのようながっつりマネージされたDBがなくても、それほど運用に支障をきたしません。こういった

ショボい環境でもどうにかなるもの

をクラウドに置くのは、あまり投じる費用に対して得られるものが少ないように思います。ですから、「資源的に必要かどうか」を吟味してから採否を決めた方が良いと思っています。また、その方が「気軽にサービスを開始できる」というメリットもあります。ビジネスは下手な鉄砲でも数撃った方が勝ちやすいのです。

SaaSは便利なものは使うが依存は危険

うちがSaaSで一番良く使っているのは、DropboxとEvernoteだったりします。これらは前々から使っていて資産が結構あるということがあって、なかなか適当なものに移行できないでいます。特に、Dropboxは「社外の人とのやりとり用」としては随分と便利です。ownCloudやその延長のものは社内だけで使うには便利だったりしますが、今の時代ではなかなかに面倒臭いことが起きるので、「やっぱりDropbox」という感じではあります。まぁ、Dropboxは「ファイルが手元にもある」状態になっているので、仮にアカウントがbanされたにしてもファイルが消えたりはしませんから、「使える間は依存しておく」のでも良いんじゃないかと思っています。

Evernoteはあれこれあったので、いずれ自作のもので置換しようと思ってます。実際、新しく書くものについてはそうしています。

GitHubは使ってはいますが、あれはあくまでも「公開環境」としてだけで、社内用としては別途Gitサーバを持っています。また、GitHubのいろんな「便利なもの」はちょっと距離を置いています。活用すれば便利だとわかってはいるんですが、今のところなくても困ってないので。

GMailは最初から「予備用」としてしか使っていませんし、そもそも業務用としては全く使っていません。

「クラウド会計」の類、クラウドの業務システムの類は以前にも書きましたが、「ピンと来るものがなかった」という理由で使っていません。仮に使えていたにしても、一時利用で終わっていたと思います。使いこなせば便利だろうと思うのですが、「業務システムを外部に依存するのは怖い」「好き勝手が出来ない」という理由は無視できません。がっつり依存していたサービスがいきなり停止したら... 悪夢でしかありませんね。

SNS等は遊戯まで

これは個人的な思いが大きいとは思いますが、私にとってのTwitterは単なる遊戯に過ぎません。「業務利用」としては、時々ここのアップデートを流したりはしていますが、それによるアクセスはそれ程多くありませんし期待もしていません。いくつかの会社アカウントがありますが、「アップデート情報を流す」くらいの期待しかしていません。

facebookは私自身ほとんどアクセスしなくなっていますし、会社のfacebook pageはそれほど活用していません。自社ホームページがあれば良いですから。そもそもfacebookそのものがあまり好きでない上に、今のところB2Bの仕事の方が主なのでCにリーチする必要性がないですからあまりメリットも感じません。また、

シェアボタンを設置しました

のエントリでも書いているように、facebookはいろいろ使い辛いです。

そんなわけで、ここを軸にどうこうするつもりは、今のところあまりありません。

実はここを永く見ている人達は、ここのエントリが追加されるペースが上がっていることに気がついておられるかも知れません。実際、これは意識してやっていて、アクセスを増やす努力や内部SEO的なことも結構意識しています。アクセス解析を入れた当初からすると、倍くらいのアクセスになっています。これは実のところ

SNS等に依存しなくてもアクセスされる

ということを意識した結果です。世間では技術ブログはQiitaとかMediumとか使うみたいな感じがありますが、これらを使わないのはクラウドサービスを敬遠していることの他に、「独自のソーシャルを育てることが大事」ということを強く思い始めたからです。クラウドサービスを使うと確かにソーシャルは育てやすいだろうと思います。でも、それは自分達のソーシャルを他人に依存しているということになって、気持ちが悪いからです。何らかの理由で使っていたサービスが終わってしまったりアカウントがbanされたら、せっかく育てたソーシャルは消えてなくなるわけですからね。

まとめ

そんなわけで、いろんな「思い」から「クラウド依存」はあまり良くないと思うに至りました。今は既に書いたように「安易に使う」ことは避けて、本当に使う意味があると思えるものだけ使うことにしています。そして、特に根底の部分は外部に依存しないで済むような「システム(広義)」を構築しようとしています。

この考えは誰もに共感持たれるとは思いませんが、「歴史は一方向に進むわけではない」という意識と共に適当にクラウドと距離を置いて行こうと思っています。

また、実はそこにビジネスがあるんじゃないかとも思っています。オープンソースなローコード、ノーコードのサービスメニューでも書きましたけど、こういったものは「社内」に置いておきたいという気持ちは強いのではないかと。そして世の中には

素敵なオープンソースだけどクラウドサービス化されていないもの

は少なくありません。それらの恩恵にあずかるためには、オンプレでやるしかないわけですからね。

最近のエントリー

Hieronymusのインボイス番号対応について

会計システム「Hieronymus」の現状

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル