« April 2007 | Main | June 2007 »

May 28, 2007

情シス業務アウトソーシングの秘訣

今月分の@IT連載記事が掲載されました。タイトルは「情シス業務アウトソーシングの秘訣」です。

http://www.atmarkit.co.jp/im/cop/serial/kanrisha/15/01.html

ちなみにこの連載は来月最終回の予定です。

| | Comments (0) | TrackBack (0)

May 16, 2007

【雑記】 PCをしばらく使わないときにはモニターの電源を切ろう

昼休みの事務所の風景を見るとPCのモニターがつけっぱなしのまま放置されているものが多いです。1時間の昼休み中PCが使われることがないにも関わらずです。

深刻な環境破壊が問題となっている現在身近でできることとして、PCをしばらく使わないときにはモニターの電源を切るということを心がけるのはいかがでしょうか。1人1人のわずかな節約でも塵も積もれば山となります。

読者の皆さんの会社の社内掲示板などにも載せていただければ幸いです。

| | Comments (1) | TrackBack (0)

May 12, 2007

アプリケーションをインストールする方法の比較

※一番下に補足を加えました。(2007/5/13)

昔(WEBが登場する10年ほど前くらいまで)はUNIXシステムにアプリケーションをインストールする際はソースコードを持ってきてコンパイルするのが当たり前でしたが、現在は主要アプリケーションがパッケージ化されインストールが非常に簡単になりました。しかし、にも関らずプロのシステム管理の現場では未だに相変わらずアプリケーションをコンパイルして導入することが多いです。そこで今回はアプリケーションのインストール方法の比較をしてみたいと思います。

【yumやrpmなどでインストール】
Redhat系のLinuxでは他の人が作ってくれたパッケージを使ってアプリケーションをインストールすることができます。これらを利用してインストールするメリットは導入、アップデート、アンインストールが簡単ということに尽きます。例えば

# yum install httpd
# yum update httpd
# yum remove httpd

というような感じでアプリケーションを簡単に扱うことができます。

(ちなみにSolarisであればCompanion CDからのインストールになりますね)

【コンパイルしてインストール】
一方コンパイルしてインストールする場合は結構大変です。ソース配布元からソースコードをダウンロードしてきてインストールします。昔はアプリケーション毎にインストール方法が異なっていたのでREADMEファイルをしっかり読み込まないとコンパイルすらうまくいかなかったですが、最近では大抵の場合はconfigureしてmakeしてmake installするとインストールできるようになったので結構楽になりました。

コンパイルしてインストールする場合に大変なことはいろいろあります。まずは依存関係のあるライブラリがある場合です。単体で動かないアプリケーション、例えばphpなどがいい例ですが、最新版のphpをコンパイルしようとすると場合によっては依存関係のあるライブラリが足りないだとかバージョンが古いので最新バージョンを入れろだとかでコンパイルがストップします。この作業は非常に面倒くさいです。次にアップデートやアンインストールをする場合です。アップデートの場合は上書きで対応すると危険なので最新バージョンを別にコンパイルしておいて後で入れ替えたりします。アンインストールの場合はmake cleanした後残された設定ファイルを手動で消したりしていきます。

【プロが未だにコンパイルしてインストールする理由】
yumなどを使うと非常に簡単であることがおわかりいただけたかと思いますが、それでもプロが未だにコンパイルしてインストールする理由がいくつかあります。

まずは最新バージョンを使いたいからです。最新版のアプリケーションがrpm化されるまでには結構時間がかかる場合があります。特にセキュリティ案件だとそういったものがrpm化されるまで待っていられない場合もあるので、自分でコンパイルしてインストールしたほうが結果的には楽というのがあります。LAMP環境であればApache、MySQL、PHPだけはこうしてコンパイルして使う場合が多いです。

それから依存関係のあるライブラリのバージョンを管理したいからです。rpmの場合、誰かが一番最後にパッケージ化したときのバージョンがそのrpmの最新バージョンとなるため、必ずしもアプリケーション全てが最新バージョンのrpmが提供されているわけではありません。そういうのは管理がとても難しいので依存関係のあるライブラリも結局は自分でコンパイルしてインストールしたほうがバージョン管理ができて楽なのです。

が、当然のことながらこういった対応の仕方はシステム管理者にとってかなりの負担で、特に大規模サイトにもなるとサーバ台数がものすごく多いので現実的でなくなってきます。いわば職人技的なこういった仕事ぶりを近代的にしていくことがこれからのシステム管理には必要なことだと強く思います。

※補足(2007/5/13)
このエントリーに対して数名の方から「いや、プロであればむしろ自分でrpm作るのが普通ではないか?」という意見をいただきましたのでこの件補足します。

まず「yumやrpmなどを使ってアプリケーションをインストールする」という意味は誰かがrpm化してくれるのを待ってインストールするという意味で用いました。その意味では「自分でrpm化する」というのは「自分でコンパイルする」という範囲に(このエントリーの趣旨としては)含まれています。

あと「プロが」と一般化しましたがこれは「私が」としたほうが良かったかもです。何故私が自らrpmなどのパッケージを作らなかったかについてですが、
  1.管理していたOSが多岐に渡っていたこと(&Linuxの比率が低かった)
  2.サービスによって利用するアプリケーションを変える必要があった
というのがその理由です。昔のことなのでうろ覚えですが、たしか30種類くらいのパターンがあった記憶があります。そんなに種類があるものをいちいちパッケージ化していられないという事情があり、当時はパターン毎にインストールメモを作る程度で済ませていました。

| | Comments (2) | TrackBack (2)

May 09, 2007

データベースで大文字と小文字の区別に注意を

経験豊富なシステム管理者であれば過去にきっと1度は経験するトラブルの一つに「DBで大文字と小文字の区別をしてくれない」というものがあります。これに関連するトラブルでよくあるのは「ユーザ登録時にUSERというユーザ名でアカウントを作ったはずなのにuserでもログインできてしまう」というものがあります。予めその現象をシステム管理者が知っていれば仕様という一言で済みますが、このことを知らなかったらきっと大騒ぎとなることでしょう。

もし大文字と小文字をしっかりと区別したいのであればその解決方法がしっかり用意されています。注:ただしこの辺り実は私はあまり詳しくないのでひょっとしたら間違っている、もしくはそれは昔のことで現在のバージョンでは別の解決方法が必要になっているかもしれないので参考程度に読んでください)。

・MySQLの場合はカラム型毎に挙動が違っているらしいです。例えばTEXT型は大文字と小文字を区別しないがBOB型は区別する。varcharは大文字と小文字を区別しないがcreate tableするときにvarcharの後にBINARYをつける。

・ORACLEの場合はselectするときにUPPERやLOWERを使う。(例:select * from test_tbl where upper(name) like '%D%';)

・SQLServerの場合はデータベース作成時に照合順序をバイナリに変更してください。

など。

また同様に半角・全角の区別にも気をつけてください(ORACLEであればTO_MULTI_BYTEやTO_SINGLE_BYTEを使う)。DBって面倒くさいですね。

| | Comments (0) | TrackBack (0)

May 01, 2007

コマンドリファレンス集

システム管理者にとってコマンドリファレンスは重要な商売道具の一つです。私がよく利用するコマンドリファレンスをご紹介します。印刷して持っておくと便利ですよ。データセンターなどに常備しておくのもお勧めです。

■Linuxコマンド集
http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230573/

■Linuxコマンド逆引き大全
http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230579/

■Windowsコマンド集
http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/

■UNIXコマンドリファレンス
http://www5.plala.or.jp/vaio0630/ftp/command.htm

■Emacs簡易コマンドリファレンス
http://park15.wakwak.com/~unixlife/emacs.html

■Vi機能別主要コマンドリファレンス
http://www.glasscom.com/tone/linux/Reference/Vi/ViReference1.htm

■awk reference manual
http://www.forest.shimane-u.ac.jp/nagayama/etc/awk.html


| | Comments (0) | TrackBack (0)

会議室を効率的かつ便利な空間にする

今月分の@IT連載記事が掲載されました。タイトルは「会議室を効率的かつ便利な空間にする」です。

http://www.atmarkit.co.jp/im/cop/serial/kanrisha/14/01.html

| | Comments (0) | TrackBack (0)

« April 2007 | Main | June 2007 »