‘apache’ タグのついている投稿

ヨドバシカメラ問題のゆくえ

2008 年 10 月 31 日 金曜日
おわびニュース

前回記事『ヨドバシ事件 ~CMSと表示速度~』で取り上げた「ヨドバシカメラ問題」が明るみに出るにつれて、方々で色々な指摘が出てきた。
その中で特に興味深かった、「なるほど」と思った指摘をピックアップしてみる。
まずは『ヨドバシドットコムのリニューアル失敗から学ぶべきたったひとつのこと』より。

教訓と野次

だから、ここまでの話はすべてどうでもいい。すべて外野席の酔っ払いによる野次にすぎないので本当にどうでもいい。前置き長くてすまんね。

サイトの大小によらず、過去に集めたユーザーによるトラフィックがリニューアル後も継続して発生する前提において、Webシステムの基本的なアーキテクチャを変更してリニューアルする場合に、必ずやらなければならないたった一つのことそれは、性能試験である。負荷試験とも言う。

簡単なことだ。たとえばapache benchみたいな簡易ツールでも、トップページに集中アクセス浴びせたら平均何秒で帰ってくるか?なんてのは1分でできる。いろんなページに同時アクセスしたときにサーバのロードアベレージがどうなるか?なんてのも、たとえばそのへんのパソコン10台にapache入れてab.exeをいっせーのせで叩くといった原始的手法でもいい。少なくとも今回みたいな状況になることを事前に再現できただろう。そうすれば、リニューアルオープンを遅らせて既存システムを延命するなりしつつ落ち着いて対処できたはずだ。
ヨドバシドットコムのリニューアル失敗から学ぶべきたったひとつのこと

なるほど。性能テスト。このリニューアル会社が性能テストをしなかったということはさすがにないと思うんだけど、その手法が現実的でなかったか、もしくは本番環境がさらに想定外だったのだろう。

あとこの指摘では、「前置き」の部分がブラックで面白い。むしろこっちが言いたかったことなんじゃないか?というくらい。

…キーになる社員が限界に達して失踪したらしいねシステム構築プロジェクトではよくある話だよとか、 K社がかついでるパッケージソフトってFatwireじゃんこれCMS(コンテンツマネジメントシステム)であってECサイト構築パッケージとは似て非なるものでしょつまり油絵を書くプロジェクトに絵の具じゃなくてノミとトンカチ持ち出したみたいな?とか、 そもそもK社(とその関連会社)って90年代後半に雑誌関係から転進したWeb制作会社であってシステム屋じゃないんだからヨドバシクラスの巨大ECサイトのシステムを作らせたこと自体が間違ってね?とか、 httpのレスポンスヘッダを見るとSS_X_JSESSIONIDっていうクラスタ構成のWeblogicを使ってるときの独特のセッションIDクッキーが発行されているところを見ると本当にK社がかついだCMSパッケージでヨドバシのサイトを作ってるぽいね、とか、…
ヨドバシドットコムのリニューアル失敗から学ぶべきたったひとつのこと

ネットワーク側から

次は、ネットワークのプロから見た分析。

1. DNSは問題なし
2. icmp応答/MTUも大丈夫
3. 表玄関も生きてるっぽい
4. 近くのサーバも生きてるっぽい
やっぱりCMSの問題?
ネットワーク側から見たヨドバシカメラ問題 - なぷさく

この問題発見の視点、プロセスは参考になる。
ただ、技術的な問題以前に、この「もうひとつの失敗」こそが、単純なシステムエラーや機会損失よりも、もっと大きな、本質的な問題なのだろうと思った。

ヨドバシカメラの場合は障害発生イコールすなわち他のショッピングサイトへの乗り換えにつながる。

現状は重さのあまりに価格を比較することすらろくにできないわけで、ヨドバシは最初から購入検討の比較の土俵にすら上らない。「ヨドバシが安いみたいだけど、今つながりにくいから待つわ」とはならないのだ。これではサイトが最初から存在しないのと同じである。
ヨドバシカメラのもうひとつの失敗 - なぷさく

「サイトが最初から存在しないのと同じ」
確かにそうだ。今の時代、価格サイトで比較すれば、すぐに最安値が見つかる。そんな中、ヨドバシを選ぶ人というのは、かなりロイヤルティの高い顧客と言えるだろう。しかしいつまで待っても繋がらない、買えない。実店舗とポイントカードで果たしていつまでもつなぎ止めておけるかどうか。

飲食店でも、苦情をいってくれるお客さんというのは、ありがたい存在である。大抵の客は、「サービスが悪い」「まずい」と感じても、特に何も言わずに帰る。そして二度と来ない。こうして客がいなくなる。

英語翻訳版ブログ

2008 年 9 月 25 日 木曜日

ウェブの機械翻訳を通すことによって、擬似的に英語ページができあがる。
いくつかのサービスで、英語版を模索してみた。

Google
System training blog

Yahoo
System ascetic practices blog» A blog archive» WordPress vs Movable Type

Yahooの方が翻訳の自然度は高いんだけど、Googleの軽さはすごい。Yahooあdとページ遷移ごとに翻訳待ち画面になるところが、Googleはほとんどリアルタイムで繋がる。当サイトでは軽さを重視してGoogleを採用。

翻訳自体については、歴史のあるエキサイト翻訳に一日の長があるんだけど、ファイルサイズに制限があるので、このページは翻訳できなかった。
英語翻訳 ウェブページ翻訳 - エキサイト 翻訳

ただ、技術的な調べ物をしてたりすると、たまに英→日の機械翻訳がひっかかってイライラするんですよね。こういうのとか。Apacheの警告namevirtualhost * : 80がないとエラーが発生virtualhostsスタート]ボタンを»私のデジタルライフ 日本語としてほとんど成立していないので役に立たないWebトラッシュです。
でもこのブログは自前で機械翻訳用意してるんだな。どうやってるんだろう…。

Linux serviceの開始と停止コマンド

2008 年 9 月 22 日 月曜日

apacheの設定を変更したときなど、よくservice httpd restartで再開を実行するけど、そういえばreloadなど他にも開始系コマンドがある。あとはサービスの状況によって動きが違うcondrestartというコマンドもあった。

  • reload…起動したまま再度startを実行する。一部のライブラリが再読み込みされる。
  • restart…起動状況にかかわらずstopとstartを実行する。全て再読み込みされる。
  • condrestart…“conditional restart”の略。起動しているかどうかをチェックし、起動していた場合は stop と start を実行して再起動。停止していた場合には何もせず、停止したまま。

自宅サーバ起動! hostsの設定

2008 年 9 月 10 日 水曜日

週末に所用があって実家に帰った時に、サーバを立ち上げてきた。以前、会社から譲り受けた不要マシンで立ち上げたFedoraサーバだったが、HDDが完全に死んで(徹夜で作った練習プログラムを道づれに)以来、部屋の片隅でオブジェと化していたのだけど、システム修行を再開するにあたり、新しいHDDを入れ直した。

1年前の僕なら、リナックスをインストールするところから始まり、3日くらいはかかっていたサーバの立ち上げが、インストール待ちを入れてもものの30分くらいでApacheのテストページを表示させるところまでサクッと進んだ。素晴らしい。(用途は未定。あと電気代払ってません。ごめん母さん)

設定ファイル(/etc/hosts.allow、/etc/hosts.deny)の編集

ところが、hosts.allow/hosts.denyを編集していなかったため(会社のIPが分からなかったから)、今見てみるとchドメインから不正アクセスの嵐が。

早速

/etc/hosts.allow

#Local Network
all : 192.168.

#Office
all : 210.XXX.X.XXX

#Apart
all : 125..XXX.X.XXX

と許可IPを追加、

/etc/hosts.deny

all:all

で全部弾いて完了。

cgi-bin以外のフォルダでもCGIが使えるようにする

2008 年 9 月 8 日 月曜日

テストでMovable Typeを設置しようとしたんだけど、mt-check.cgi(環境チェック用プログラム)を実行しようとしたらコードがズラっと表示されてしまう。あれ、おかしいな権限かな…。しかし権限が適切に設定されていない場合は500エラーになるはず…。

「そうか、CGIの設定がデフォルト(/var/www/cgi-bin/のみで実行)のままなんだ」

任意のフォルダでCGIを実行する設定

CGIは、通常CGI専用のフォルダで実行されるようになっています。ただしこういうテストの場合や、セキュリティに不安がない場合、他の場所で実行したいことがあります。
そんなときは、apacheの設定に1箇所追加します。CGIを実行したいディレクトリの.htaccessでも結構です。

Options +ExecCGI

これで、userユーザーのwww以下ならどこのフォルダでもCGIが実行されるようになりました。

あとは、Movable Typeでは.plの形式のファイルもあるので、拡張子の設定に.plを追加します。

AddHandler cgi-script .cgi .pl

[service httpd restart]でApacheを再起動して完了。
Hello Worldなどを好きな場所に置いて動作確認しましょう。

↓「Hello, World.」を表示するPerlプログラム

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";

Joomla!1.5のインストール方法

2008 年 9 月 2 日 火曜日

1.0の開発はすでに終了している(セキュリティアップデートはあり)ので1.5をインストール。1.5の方はまだプラグイン等が充実していないし、日本語のサンプルデータがなかったりするが、この辺はおいおい充実していくだろうと思われる。
以下はインストール手順。眠ってても出来るようにメモ。

  1. Webサーバにディレクトリを用意
  2. wget http://jaist.dl.sourceforge.jp/joomla/32528/Joomla_1_5_6_ja-JP_Stable.zip

     でダウンロード。(ダウンロード元は最新版を)その後、unzip で解凍。

  3. touch config.phpで空のコンフィグファイルを作成。joomlaのインストーラが書き換えられるように権限を701に変更。
  4. ディレクトリにアクセスすると、自動的に/installation/index.phpにリダイレクト、インストールが始まる。
  5. 画面の指示に従っていけば基本的にOK。サンプルデータ(初期データ)のインストールはご随意に。

これだけで終了。簡単すぎて怖い。1.0系のときはまだ色々とフォルダの書き込み権限を変更しなければ行けなかったけど、1.5は本当に簡単。
ただし /cache/ は、Joomlaが書き込みできるように、権限を755にするか所有者をapacheにしておくこと。(書き込めないと外部ニュースの表示などができない)

完了後は、installationフォルダを削除かリネームする。

サンプルデータを入れなかったら、ログインフォームがない!

慌てない慌てない。/administrator/に接続すればログイン画面が表示されるので大丈夫。