UbuntuとCentOSどっちがいいの?正しいサーバOSの選び方

サーバOSを選定する上で一番大切なことは何か、それはもちろん安定性とセキュリティである。それも将来に渡ってのということになる。

セキュリティに関しては、万が一OSにセキュリティホールが見つかったとしても、それが世界で最も使われているOSでオープンソースであればすぐにパッチが用意され重要アップデートを自動更新する設定(Ubuntu においてもインストール後に設定するのが定石)によってすぐに適用される。

では将来にわたっての安定性とはなにか、これは今世界中の特にオープンソースコミッタ達の間で最も使われているものなのかどうか、世界中の企業のサーバで使われているものなのかどうか。これが将来にわたっての安定性を左右するということにつながる。OSのトレンドが変わればそのとき乗り換えばいいという人がいるかもしれない。

ただし、もしOSを乗り換えなければならない時にあなたのサービスが巨大なユーザーを抱えていたらどうだろうか。OSの再インストールしなければならないサーバーは一体何台になっているだろうか。
そしてテストしなければならない規模は?OSの入れ替えによってモジュールごとのバージョンも微妙に変わってくるので、その時に書き換えなければならないソースコードは一体どのくらいで、結果どのくらいのコストと時間がかかるだろうか。そして、あなたが使っているOSのシェアが下がってから移行するまでの間のセキュリティは大丈夫だろうか

つまり、サーバOSはシェアの多いものがいい。さらにいえば将来的にシェアが多いもの、これがわかるのであればこれを使うに越したことはない。
何かライブラリをインストールして使おうとした時もおそらくインストールドキュメントは最もシェアのあるOSに向けて書かれているはずだ。

では、今シェアが多く将来的にシェアが多いOSとはなんなのかということを調べていこうと思う。
Ubuntuにはデスクトップバージョンがあり、これによって統計数値に影響が出る可能性があるのですべての検索語句に「サーバ」「server」という複合キーワードをつけています。

英語で検索をしない日本人によるGoogle検索ボリュームの比較

まずは日本国内での比較。

日本国内は CentOS > Ubuntu になっている。そしてそのシェアはかなり均衡している。これだけを見るとこれからシェアがどうなっていくのか予想するのは難しい。
そう、これが国内のエンジニアの見解と一致している。

CentOSのメリット
デファクトスタンダード

経験者が多い。上の人にUbuntuと言っても知らない。
本番サーバでUbuntuは見かけたことがない。
医療系では見たことありますが、バージョンアップ費で稼いでいる図式なので、そういった側面ではいいでしょう。
Q.「本番サーバ」でUbuntuとCentOSどっち使えばいいの?A.CentOSです。

※2015/09/27 追記 リンク先の記事を非難しているわけではなく、「デファクトスタンダード」の部分が私の周りでよく聞く日本人エンジニアの声とも一致しているので引用してます。

日本からの英語検索によるGoogle検索ボリュームの比較

一方、国内でも英語を常用している(エンジニアスキルも高い)人たちの比較。

反転してUbuntu > CentOS になっている。ここで誰もが最初の考えがおかしいということに気づくのだが、狭い国内の範囲でしかものを考えない非英語圏エンジニアにはそもそもこのデータが見えてこない

事の真相:世界での検索ボリューム

では、世界に検索範囲を広げるとどうなるのか。

結果は、Ubuntu >> CentOS
圧倒的な差をつけて世界で一番使われているサーバーOSがUbuntu だということ、さらにすぐにはシェアがひっくり返らないということがこのグラフから分かる。

ここまで見てきたのはあくまでGoogleトレンドの検索ボリュームだったので、他にもこれを裏付けするデータとして2011年に企業で使われているOSがRHEL=CentOS からUbuntu にシェアが移ったという有名な記事などを参考にしてほしい。
Ubuntu vs RHEL in enterprise computing

2013年のQ&AでUbuntu CentOS7 を比較した記事では、実際にDropbox, Quora, the Obama campaign, SamsungなどはEC2+Ubuntu で動いていると書かれている。これもひとつの判断基準になるだろう。
What Linux server should I go for: Ubuntu or CentOS?

私がこの記事を書いたのは、何も英語ができないエンジニアを愚弄するためではない。エンジニアたるもの広い視野を持ち、未来を見据えて、自分の関わる人々がハッピーになるような選択をして仕事してほしいからだ。
世界のエンジニアリングに日本のエンジニアリングが少しでも近づくことを願って。


追記:
「どうして、Ubuntuがそんなに支持されるほどすごいんですか?」という質問をもらったのでこちらでお答えしておきます。

Ubuntuのサポートやトレーニングプログラムを有償で実施して収益化しつつ、開発者やコミュニティーリーダーをUbuntuプロジェクトに送り込むことで開発を促進しているカノニカルがすごいです。これによってUbuntuは無償でも企業のサポートを安定して得られるのでここまでのクオリティが維持されてます。
http://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%8E%E3%83%8B%E3%82%AB%E3%83%AB

5分でわかるイスラム国、的な記事リスト

テレビをつけると、後藤健二さんとイスラム国のテロのニュースを掘り下げもせず何度も繰り返し流している。

一方、ネットの掲示板に目をやれば、『なぜだかわからないが(イスラム国が)むかつく』という書き込みがやたら目立つ。これは理解を諦めている人間の本音であり、興味深い。

一緒くたにして申し訳ないが、これらを私なりにどういう現象か解釈すると、要はテレビ関係者も2ちゃんねらも中東に無知なのである。実際イスラム世界や過去の歴史、中東の現在の情勢を報道関係者ですらほとんど理解できていないのではないか。

「なぜイスラム国が生まれたか」、「何が本当の目的なのか」、「なぜあんなに拡大してるのか」、「なぜあんなに武力があるのか」、このうちのどれか一つでも正確に説明できるのだろうか。というか、分かってるなら現地ジャーナリストの情報からちゃんとその辺が分かるような番組を作ってあげるのがせめてもの手向けなのだけれども。

時間のある方は、以下に比較的短くまとまった記事をリスト化しているので最低限の対立要素などを覚えてほしい。本当は善悪の正しい判断すら容易では無い状況だったりする。アメリカ側で考えるか、アメリカに都合の悪い側で考えるかによって全てのニュースが違った見方になる。

すでに人が死んでいるのだし、日本もテロの対象にされているのだから、どれだけ時間がかかってもいいから簡単に理解をあきらめないでほしい。この問題は何十年も前から続いてる話で、これから先もずっと終わらない。日本は下手な外交やオリンピックの件で世界の注目を集めており、今回の人質問題は偶然ではなく序章に過ぎない。


◆5分でわかるイスラム国、的な記事リスト作ってみました。全然足りないけど

<4ページで全体像をつかむにはぴったり>
中東問題やイスラム国問題を解消する簡単な方法
イラスム国が生まれた成り立ち。表現の正確性は置いといて、これを4ページで書けるのがすごい。こういう良質なまとめは本当にPVが少ないよなぁ


[追加]<イラク戦争ってイスラム国とどう関係あるの?って人向け>
「過激主義との戦い」が複雑になった理由が悲しすぎる。
民主主義大好きなアメリカが中東の民主運動を邪魔するわけないじゃんって思うでしょ。逆です、アメリカは王政を支援してます。そうすると果たしてどんな良いことがあるのか<日本外交のまずさを知らない方は必見>
安倍外交が「イスラム国」のテロを誘発した
平和なイラスム教世界とすら対立しかねない状況を引き起こした外交は、誰しも米国の圧力を感じざるを得ない。普通自分からはやんないでしょ<危機感の足りない若者のために>
悪魔の詩訳者殺人事件
8500km離れてたって、例えば反イスラムの書籍を翻訳するだけで、つくば大教授が殺害されたりとか、日本でも日本以外でもこんな例は枚挙にいとまがない。ほとんど報道されてないだけ。<反アメリカ派の言い分>
インディアンの大陸を実効支配するアメリカ合衆国を名乗る武装勢力のキリがない歴史
アメリカって反対側から見るとどういう国なの?過去に悪いことしたことあるの?って人向け。43ページあるので、時間がある時にゆっくり読む用


※歴史の手っ取り早い理解のために反アメリカ的な、日本メディアで報道されない内容が多めになってますが、イスラム国のやり方が正しいわけじゃないです。


イスラム国もアメリカも正しくない、そこが思考のスタート。要はガンダム的世界がそこにはある。悪者などいない。これを世界のたくさんの人々が真剣に考えなければ、解決しない問題だと思う。食わせ物のストーリーで揉み消せるレベルではもはやない。

リーンスタートアップの終焉。

2011年にEric Riesが提唱してから既に丸3年が経った。

いつも世界から3年遅れで何かが流行り始める東方のある国ではちょうど今年流行っていたかもしれない。それはつまり世界では過去のものになっていることを意味する。


特に気をつけたほうがいいのが、この部分
>ビジネスモデルを、必ず「イノベーター」「アーリーアダプター」に最初にヒットさせるように作りこむ
これが失敗を誘発する地雷になっている。

...2011年以前、人々は検索によって能動的に情報を得ていた。Googleで検索し、判断し決断を下していた。
→今はもう違う。FacebookTwitterがインフラとなり、新しいものが「いい」かどうかはすでに決められている。そして「いい」ものだけが受動的に届けられるページをユーザーは毎日飽きもせずぼうっと眺めている。

...2000年台前半、ネットがインフラとして機能し始めた時にコトラーマーケティングが通用しなくなった。
→今はどうか、FacebookTwitterがインフラとして機能し始めたことにより、エリックのリーンスタートアップが通用しなくなった。


先日、友人に以下の記事を教えてもらい、私が漠然と感じていた違和感の正体が姿を現し、連鎖的に不可解な謎も解けていった。

詳しくは以下の記事がわかりやすいので割愛するが、「イノベーターの消失」と「マジョリティの多様化」が同時に起きてるとすると、「キャズムの壁」も同時に消失していることになる。

よって、アーリーアダプターとマジョリティは連続する同一平面上にいるわけではなく、これらは多様化によって生じた、空間における別々の平面にお互いに決して交わることのないベクトルを持ったまま存在している。

簡単にまとめると、

アーリーアダプターを狙って作られたプロダクトは、成功しない
・成功したいのなら、最初からマジョリティを狙うだけだ

どうやっていきなりマジョリティを狙うのか?

そんなの簡単だ。最初から圧倒的ないいね!やリツイートを集められるものを提供すれば良いのだ。

これこそが現代のマジョリティを構成する最も重要な要素となっているのだから...

参考:私たちがネットで失ったもの/YouTuberが必要とされるわけ
http://rootport.hateblo.jp/entry/2014/12/07/213533

『ガンダム Gのレコンギスタ』の日本の未来における重要性(1)

久々にブログを書こうと思ったのも、富野由悠季が作ったガンダム最新作『ガンダム Gのレコンギスタ』を観たことがきっかけである。


一回では書ききれないので、何回かに分けて順番に書いておこうと思う。

目次 『ガンダム Gのレコンギスタ』の日本の未来における重要性

(1)失われた【G】の技術の意味と現代に実在する"トワサンガ"

    1. 前置き
    2. 失われた【G】の技術について
    3. 富野由悠季に伝えたいこと
    4. 続く

(2)日本がアニメやコンテンツ産業において国土回復しなければならない本当の理由
(3)海外における日本のコンテンツ産業においても国土回復しなければならない理由

前置き

この作品について、簡単に説明しておくと

  • 演出や作画が古めかしい
  • ヒロインや主人公が魅力的
  • 声優の抜擢は歴史に残るレベル

こう書くと、たいして面白く無いのかなと思って見るのをやめてしまう人がいるかもしれないが、私としては今期もっとおすすめしたいアニメである。その理由を順番に説明していく。

この作品を未視聴の方には意味の分からない表現が度々出てくると思うので、以下の説明サイトを参考にして頂ければと思う。

失われた【G】の技術について

続きを読む

『Ubuntuのシェアが減ってる』というマイナビの記事を鵜呑みにしてはいけない

Linuxをひとくくりにしないで

こういうリテラシーの低い記事をメディアに書かれると、将来を考えてOS選びをしたり、その選択理由をクライアントに説明しなきゃいけないサーバエンジニアとしては大変迷惑なので、記者の方は記事を書く前に数字の意味を理解してから書いていただきたいと思うわけです。

報告されているグラフによると、
2005年からトップの座にあるUbuntuは徐々に値を低下。
2010年から2011年の間にLinux Mintに抜かれている。


Ubuntuシェア減止まらず、Mint急浮上 - Royal Pingdom報告
http://news.mynavi.jp/news/2011/11/25/047/index.html

デスクトップとかノートPCの方が数多いのは当たり前

この記事の元になっている数字はこちらです。

...The counters are no longer displayed on the individual distributions pages, but all visits are logged. Only one hit per IP address per day is counted.
http://distrowatch.com/dwres.php?resource=popularity

ディストリビューションページへのユーザーのアクセスをカウントしているというわけです。

サーバとして運用するつもりのユーザーよりデスクトップとして運用するつもりのユーザーの方が圧倒的にアクセスされているのは当たり前なので、つまりこの数字からは、(主に)デスクトップ用のOSとしてUbuntuよりMintのアクセスが増えているということくらいしか分かりません。

しかもGoogleトレンドを見てみると、Googleでの検索回数ですらUbuntuの方がMintより圧倒的に多いみたいだし、distrowatchの統計は甚だ疑問が残ります。
http://www.google.co.jp/trends?q=mint%2C+ubuntu&ctab=0&geo=all&date=ytd&sort=0


Linux技術者にとって大事なサーバOSのシェア

では、ここで視点を変えてこちらのグラフを見てみましょう

こっちのグラフには以下のように書いてあります。

..websites that recently changed between Ubuntu and other Linux technologies.
http://w3techs.com/technologies/changes/os-ubuntu

こっちの数字はLinuxによって運用されているWebサイトの数の統計です。緑色のバーが他のOSからUbuntuに乗り換えている割合を表しています。つまり、サーバOSとしてはUbuntuが今この瞬間も延び続けているということが分かります。

先ほどの記事ではUbuntu減ってるなんて書かれてたのにおかしいですよね。


はっきり言ってLinux技術者にとってはこっちの『サーバOSとしてのディストリビューションのシェア』の方が数百倍も大事なんです!

数字は正しく伝えよう

データの提供元があいまいに提示したデータに乗せられて、ほいほい記事を書いちゃうのはきわめて良くないです。そういえばニールセンの統計関係でも最近似たようなことがありましたよね。こういう記事がたくさんの誤解を生んで、私の周りでも本来いらないたくさんの手間が発生してるので、ほいほい記者の方は反省してください。

Ubuntu 11.04でPropelを使った時に"Could not perform XLST transformation"が出る時の対処法

エラー内容

$ symfony propel-build-all         
...
[propel-sql] Processing: generated-schema.xml
[propel-sql] Could not perform XLST transformation.  Make sure PHP has been compiled/configured to support XSLT.

解決方法

# apt-get install php5-xsl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libxslt1.1
The following NEW packages will be installed:
  libxslt1.1 php5-xsl
0 upgraded, 2 newly installed, 0 to remove and 26 not upgraded.
Need to get 178 kB of archives.
After this operation, 602 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ natty/main libxslt1.1 amd64 1.1.26-6build1 [165 kB]
Get:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ natty-updates/main php5-xsl amd64 5.3.5-1ubuntu7.3 [13.1 kB]
Fetched 178 kB in 0s (8,156 kB/s)
Selecting previously deselected package libxslt1.1.
(Reading database ... 33399 files and directories currently installed.)
Unpacking libxslt1.1 (from .../libxslt1.1_1.1.26-6build1_amd64.deb) ...
Selecting previously deselected package php5-xsl.
Unpacking php5-xsl (from .../php5-xsl_5.3.5-1ubuntu7.3_amd64.deb) ...
Processing triggers for libapache2-mod-php5 ...
 * Reloading web server config apache2                                   [ OK ]
Setting up libxslt1.1 (1.1.26-6build1) ...
Setting up php5-xsl (5.3.5-1ubuntu7.3) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

Ubuntu 11.04でPropelを使った時に"Unable to return 'affix' for unknown CreoleType"が出る時の対処法

エラー内容

$ symfony propel-build-all         
...
[phingcall] Unable to return 'affix' for unknown CreoleType:

解決方法

# vim /usr/share/php/symfony/vendor/creole/CreoleTypes.php
        const TEXT = 17;
      ↓
        const TEXT = 30; //php 5.3.0 fix, using an unused int