ファイルサーバーをタワー型からメロン箱型へ

(ファイルサーバーとして使うには)無駄にやかましく、放熱もバカにならない DELL XPS 420 から、コンパクトな HP ProLiant MicroServer へ移行しました。

ProLiant MicroServer のいいところ。

とにかくちっさい!それでも、HPのちゃんとしたサーバー!
本体が4GBメモリに、500GBHDDで、15,000円くらいと格安っ
これに、オプションのリモートアクセスカードを追加して、キーボード、マウス、ディスプレイ無しで運用OK。 “ファイルサーバーをタワー型からメロン箱型へ” の続きを読む

VPSってどのくらいのサイトまで運用できるんだろう

平日は、あまりVPSいじってる時間がありません。

ところでVPS(今回のさくらのVPS)一台(?)で、どのくらいのサイトを運用可能なんだろう?

サーバースペックをスコアリングして、どんなサービスなら○○点以上必要とか、そんな指標ってないですかね。

さくらの場合、リアルタイムのパフォーマンスグラフが見れるから、運用中のそれは、なんとなく分かりそうなんですが、できれば運用前、サーバー選定の段階で案件とそれに必要なスペックが分かるとスゴイ便利なんですけど。

ggrksってみよっと

さくらのVPS借りてみたので使ってみる【二日目】

さくらのVPS借りてみた二日目。

今回は前回の続きで、FTPのセットアップをします。

今回は、vsFTPd をyumで一発インストール!
ソースからやれとか、他のFTPがいいとか言う人がいますが、とりあえずとにかく簡単にセットアップしたいんで yum で簡単にいれときます。

# yum install vsftpd

そしておもむろに、startすれば、匿名アクセスが出来てしまいます。

# /etc/rc.d/init.d/vsftpd start

でもそれじゃあ、実用する上でマズイので、ユーザーを作って、そのユーザーでFTPアクセス出来るようにします。

# vi /etc/vsftpd/vsftpd.conf

vsfttpd.conf を修正する前に念のため、ファイルをバックアップしておきます。

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.ORG

ファイルをバックアップしたら、改めて vsftpd.conf ファイルを編集します。

# vi /etc/vsftpd/vsftpd.conf

設定する項目は非常に多岐に渡るので、詳細はggrksですね。

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
user_localtime=YES
force_dot_file=YES
hide_ids=NO

設定する内容は、匿名アクセス(anonymous)を拒否し、user_listにあるユーザーは、接続を拒否するという設定です。

あとは、 user_list と、chroot_list にFTPユーザーにするユーザー名を登録します。

それから、useradd でFTPユーザーとして使用するユーザーを作成し、ホームディレクトリを /var/www/html に設定したらOKです。

今回、バーチャルホストの設定まで行こうと思いましたが、思いのほか、vsftpdの設定に手こずられたので、今日はここまで!

【次回予告】バーチャルホスト設定

さくらのVPS借りてみたので使ってみる【一日目】

さくらインターネットのVPSを借りてみた。

第一回目の今回は、初期状態からウェブサーバーを立ち上げるまで。

久しぶりに、(ほぼ)空のLinuxサーバーをいじるので悪戦苦闘です(笑)
VPSのいいところは、コンパネから簡単にOSの再インストールが出来るところですね。コンパネからrootパスワードを設定したら、ものの数分で初期状態のサーバーが立ち上がります。これは、便利!

ではでは私がやってみた手順をババッと

SSHにrootでアクセスしない

SSHにrootでログインできるようにしておくとセキュリティ上、マズイのでSSHログイン用のユーザーをつくります。

ここから、しばらくは「VPSコントロールパネル」のリモートコンソールから作業します。

# useradd –m USERNAME
# passwd USERNAME

※USERNAME…新しく作るユーザー名に置き換えてください。

そしたら、今作ったユーザー名でSSHログインできるか確認します。問題なくログインが出来れば、次にrootのSSHログインを停止する作業です。

/etc/ssh/sshd_config ファイルを編集します。

PermitRootLogin no

既にコメントアウトされた PermitRootLogin yes の行があると思いますので、その近くに記述しておけばいいでしょう。

さらにSSHで使用するポートの変更もすれば、セキュリティ的には少し安心かもしれません。

Port 10022

例)SSHポートを 10022 にする設定(初期値は 22 )

SSHを再起動!

/etc/init.d/sshd restart

SSHを再起動したら、設定が反映されているか確認します。rootでSSHログインできなくなっているか?(ポートを変更した場合)変更したポートでSSHログインできるか?などなど。

パケットフィルタの設定

さくらのVPSは初期状態で、「全開」状態になってます。
まあ、公開用サーバーとして使うので、そんなに気にしなくてもいいのかもしれませんが、気持ち悪い感じがするかもなので必要なパケット以外はフィルタしちゃいます。

今回は、WWW(80)、FTP(20)、SSH(22)、それとDNS(53)を許可する設定にします。

適当なところに、iptables 設定用のスクリプトを書いておきます。
コマンドラインから、1行ずつ実行しちゃダメですよ。コマンドでやってると最初の INPUT DROP の後から、何もできなくなっちゃいます!

vi /home/USERNAME/IPTABLES_SH

#!/bin/sh
iptables -F
iptables -X

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 20 -j ACCEPT

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p udp -m udp –sport 53 -j ACCEPT
iptables -A INPUT -p udp -m tcp –sport 53 -j ACCEPT

service iptables save
service iptables restart

ip6tables -F
ip6tables -P INPUT DROP
ip6tables -P OUTPUT ACCEPT
ip6tables -P FORWARD DROP

service ip6tables save
service ip6tables restart

スクリプトの説明をブロックごとに簡単に…

  1. 最初のブロックで iptables に関する設定をクリア(初期化)します。
  2. 出力(OUTPUT)を許可(ACCEPT)し、入力(INPUT)とパケット転送(FORWARD)を破棄(DROP)する。
  3. ローカルの出力と入力をともに許可します。
  4. 宛先ポート(–dport)ごとに許可するパケットを指定します。
  5. セッション確立したパケットは許可します。
  6. DNS(53)はudpを使うので、5の許可では通信できないので別途指定します。
  7. ここまでの設定を保存(save)し、iptables を再起動(restart)します。
  8. 8,9番目のブロックは、IPv6に関する設定ですが、今回は特に使用しないで、出力以外は破棄(DROP)にしておきます。

スクリプトの記述ができましたら、パーミッションを変更して実行します。

# chmod 744 /home/USERNAME/IPTABLES_SH

# /home/USERNAME/IPTABLES_SH

ウェブサーバーパッケージのインストール

ウェブサーバーに必要なパッケージは、とりあえず、httpd、php、mysqlくらいでしょうか、必要になったらあとで追加しましょう。

ちゃちゃっとやってしまいたいので yum で簡単にインストールしちゃいます。

# yum install httpd http-devel
# yum install php php-mbstring php-mysql php-gd php-pear
# yum install mysql mysql-devel mysql-server

それぞれ、実行するとインストールするパッケージの一覧と(y/n)表示されますので、 y を押してインストールを完了します。(-y オプションをつけてやっちゃっていいかも)

自動起動スクリプトをつくる

「つくる」とか言っちゃってますが、シンボリックリンクを作成するだけです。

yumでインストールしたパッケージの起動スクリプトが /etc/rc.d/init.d 以下に保存されていますので、そこから必要なパッケージをランレベル3( /etc/rc.d/rc3.d )にシンボリックリンクを作成します。

# cd /etc/rc.d/rc3.d
# ln –s ../init.d/httpd S40httpd
# ln –s ../init.d/mysqld S41mysqld

できたら、おもむろに reboot してみましょう。

そして起動したらブラウザでサーバーにアクセスしてみます。
Apacheのテストページが表示されれば、セットアップ完了です。

とりあえず、今日はここまで。

【次回予告】FTP、バーチャルホストの設定 の予定

無線LANはやっぱり遅いんだね。

会社のノートPCをWiFi接続して使ってて、Ajax的に、スクロールしたら続きのコンテンツを自動的に読み込むようなページをグリグリしてると時々つっかかるような動きをするんですね。

で、読み込み完了すると、そのつっかかっている間にグリグリした分だけ、ズバーっとスクロールしちゃうもんだから、逆にグリグリして戻って・・なんてしてたんだけど。

もしかして~っと思って、LANケーブルを引き回して繋いでみたら、全くつっかからない!

スゲー快適!

というわけで、無線ルーターは、やっぱりゲストPCと携帯端末用となりました。

社内SNSは情報共有ツール?囲い込みツール?

発端はこちらの記事から。

ブログ、SNSは会社に届出してもらおうかな

イチ従業員と言えど、もしクライアントさんにブログやSNSの文章を見られたときに、嫌な思いさせる可能性は、極力絶ちたいですね。

ITに疎い社長さんには、社内SNSがオススメかもしれないという話をします。

今までは、「クライアントさんに嫌な思いをさせたらマズイ情報」ってのは、だいたい、飲み屋での愚痴だったり、家で晩酌の時間で済んでたと思うんですね。

それが最近では、会社帰りに飲みにも行かないし、独身で一人暮らしが多かったりして、そういう人たちってどこで愚痴(コミュニケーション)ってるのかっていうと、SNSだったりするんですよね。(GREEとか、モバゲーとか、mixiとか、twitterとか)

また、中高生なんか携帯でプロフなんかのサービスとか流行ってて、もはやインターネットがネイティブコミュニケーションになってたりする。
ホント、会話するようにつぶやく(ツイートする)んですよね。

今まで「口頭」で「その場限り」のはずの愚痴やダメ出しが、インターネットでは「ログ」というカタチでネット上に散在することになるんですね。

  • インターネットは、ログが残る。
  • インターネットは、基本的にオープンな場で、誰でも見れる(読める)。
  • ブログやSNSが、メディア同等の発信力を持ちつつある(もしくは、既に超えてる)。

社長や上長の目の届かないところで何を言われているのか分からない

分からないだけなら、今までの愚痴話と一緒なんですが、ネットの場合、「誰が聞いてるか(読んでるか)分からない」もし、会社の大切なクライアントさんが聞いていたら、ゾッとするんじゃないでしょうか。

このパッとしない時代、クライアントさんの機嫌を損ねてしまうのは、会社にとって大ダメージです。

なんとかして、「聞かれてはマズイ話」をクライアントさんの届かないところに持っていかねばなりません。いや、むしろそんな愚痴の出ない会社環境を作るのが理想なのでしょうが、それはそれとして。

対策方法をいくつか提案すると…

  1. 飲みニケーションを活発化させる。
    (参考:杜の都信用金庫(仙台市)http://goo.gl/LXiU
    しかし、最近は飲まない(飲めない)人も多くなってるんですよね。
  2. 個人でのSNS、ブログの開設を禁止する。
    (参考:ブログ禁止令 http://goo.gl/wXVg
    機密保持や情報リークの恐れがあり、それが重要な場合、このような強硬手段もやむ無しですね。しかし、既にある場合はどうするんでしょうか。また、携帯を取り上げたりもするんでしょうか。
  3. 社内SNSを開設する。
    (参考事例が多いので「社内SNS」で検索 http://goo.gl/RbAF
    愚痴の場を社内に置いてしまおうっていう方法。しかし、社員規模が小さい会社では、全部、社長に監視されてるみたいで嫌がる社員もいるかも。

共通の仲間たちで立ち上げた小さな企業なら、1の飲みニケーションでかなり上手くいくと思うんですよね。会社の飲み会がイヤって人でも、友達とはカラオケや飲みに行く人っていますよね。仲間ってそういうもんです。

そしてそこから、そこそこ会社規模が大きくなると趣味・志向が異なる人たちが社員として入ってくるわけで、「飲みニケーション=アルハラ」みたいな感じになり、強要すればパワハラだし。酒が入って、ちょっとしたお世辞のつもりがセクハラになったりと、問題が出てきます。

そうなった時に(そうなる前に)、2か3の選択肢が出てくるんじゃないでしょうか。

まず、2「SNS、ブログの禁止」の問題点。

社長にとってすれば、簡単な手段でやりやすいんですが、非常に危険な状態にもなりかねません。

社員のストレス溜まりまくりですね。少なからず、仕事してりゃストレスも溜まります。発散の場を用意してあげるのも福利厚生ではあるし、会社の健全化には必須です。

これの解決には、やりがいで、対応するしかないんじゃないでしょうか。

  • 仕事にやりがいを感じ、誇りを持って働いてもらう。
  • ストレスを相当の報酬で、会社が買い取るかですね。

じゃあ、3「社内SNSを開設」した場合。

社内に活発なSNSがあり、そこで問題が解決できていれば、外で愚痴ったりはしないはずです。しかしながら、開設にあたって注意点もあります。

ストレスの多くは、コミュニケーション不足であったり、愚痴の捌け口がない為だったりします。その捌け口として、社内SNSでは、自由に発言していいルールにしておきます。

社長に対して、タメ口で書き込んでもその場はよしとします。これがもし、礼節を守って、稟議書と同様な扱いでは、何の役にも立ちません。またストレスの種が増えるだけです。

とにかく、Twitterでつぶやくように、匿名掲示板に書き殴るように、自由に発言してもOKという風にします。また、その内容で社員の査定をするとかは、もってのほかですね。

社長からすれば、社内SNSは、社員がクライアントさんです。そう思って運営しないとうまくいかないです。

また、そう思う事で、「社員の愚痴=お客様からのクレーム」という考え方ができるようになるので、会社の改善方針が見えてくるはずですね。

でわでわ

XMLの出力コストはどのくらいなんだろう?

ホストサイトでDB管理しておいて、パートナーサイトに情報を提供するカタチのシステムを組んでて、今回ホストからの情報渡しにXMLを使ってみた。

従来のシステムなら、phpにreadfile関数とかで、ホストのphpページを読み込んで、ホスト側で何ちゃらやってたんだけど。

あとは、パートナーサイト側で、受信したXMLをキャッシュさせて、トラフィックの軽減を図ってみたりするけど、システム全体でのパフォーマンスはどうかなあ。

いまだに、どのphp関数がどのくらい負荷かかってるのか、よく分かってないし。
とにかく、コードを短くシンプルにしようとはしてるけど。

ケータイサイト作るならChromeブラウザが便利だなあ

やっぱGoogleは、すごいなあ。

痒い所にいちいち届いているというか、アピールしてないのにしっかり作ってる。ぶっきらぼうな職人的(笑)

Chromeの拡張機能に「goo.gl URL Shortender」を入れると、現在表示しているURLをhttp://goo.gl のショートURLに変換してくれます。

拡張機能ボタンを押すと短縮されたURLが吹き出しに表示

サイトを表示した状態で拡張機能の「goo.gl URL Shortender」ボタンをクリックすると、短縮されたURLが吹き出しに表示されます。

例えば、このブログのURLなら、http://goo.gl/TQX4 になります。

吹き出しに表示されたURLの最後に「.qr」を付け足すと

そうして得られたURLをアドレスバーに貼り付けて、『URLの最後に「.qr」を付け足します』。

そうすると・・・

QRコードがブラウザに表示されます

なんということでしょう(笑)

短縮されたURLのQRコードがブラウザに表示されます。

ケータイブラウザでサイトチェックする

ケータイサイトを作ってる時って必ず要所要所で実機テストをしないといけないですよね。従来だったら、テストしたいURLをメールに書いて送ったり、あらかじめテストするURLを実機でブックマークしておいたりしてたと思います。

または、QRコード生成ソフトを別途立ち上げて、変換表示させたりしてましたね。

それがPCテストもしているChromeだけで、完結しちゃうんです。

こんなに便利な機能をGoogleはほとんどアピールしてないです。
機能拡張のページには、twitterやFacebookなどのサービスへの共有設定が書いてあるだけです。まだまだ知らない人も多いんじゃないですか?

死んでも残る

例えば「今日」もしかしたらこの投稿をした直後、私が死んでしまったとしたら・・

原因は、なんでもいい。
交通事故でも、突然の大地震でも、海外からのミサイルでも。

死んだその瞬間に私の時間は停止する。
その時間は、二度と刻まれることはない。

仕事やプライベートでも皆の記憶から少しずつ消えていく。
(消えるというより、私の占める割合が将来の時間を含めて少なくなっていく)

しかしそれでも、

私のGmailアカウントはメールを受信し続け

私のGoogle Adsenseは僅かながら受け取る者の居ない口座に貯金し続け

私のブログは、これからも時々来る来訪者に私の過去の記録を提供し続け

私のTwitterアカウントは、フォロワー達のつぶやきを表示し続け

私のモバゲーは、知人の日記を更新し続け

amazonは、私の過去の嗜好にあった商品を提供し続け

Youtubeは、おすすめ動画を提供し続ける。

もしかしたら、今日見たブログの管理者も、実は既に他界されているのだとして、私はその瞬間、確かにその人の存在を感じていた。

それは、どういう事かといえば、現実的には存在しない人が、ある人(私)の主観では、存在していることになったりする。

存在しない人間に対して、私はコメントを送信する。

リアルでは、ありえないコミュニケーションがウェブには存在する。

ウェブは、生命の存在を超えられる可能性を持っているのか。

・・・そう考えると、「インターネット」が2010年のノーベル平和賞候補に?というのも頷ける気がする。

自分のホームページなんかは、ホスティング期間が満了すれば、いつかは契約解除され、フォーマットされて、いずれは、誰かの新しいウェブサイトで上書きされるのだろう。