プロフィール

けい

Author:けい
公開したWebサービス・アプリ一覧はこちら

※2014年12月、私が個人で開発したWebサービス・アプリへの
累計アクセス数は8億を超えました。
負荷対策頑張ります。日々精進していきます!!


■■■ 業務経歴 ■■■
社会人1年目:携帯電話開発。画面周りを1年間
2年目 :海外向け携帯電話ミドルウェア開発
     ブラウザとプロトコルスタック周り
2年目後半~:携帯電話の通信専用チップ開発
3年目:カーナビ。画面周りの開発
3年目後半~:BDビデオカメラ
     組み込みLinux カーネルと
     ドライバの開発。
4年目12月:プロジェクト途中で退社
~ここまではC、またはC++で開発~

~ここからJavaがメインの開発~
4年目1月:Web系の会社に転職
       ~4ヶ月間の研修
5年目5月:製造業向け生産管理システム開発
6年目9月:証券会社向けシステム開発
7年目10月~携帯電話向けコミックサイトの運用・開発
8年目12月:プロジェクト途中で退社

~ここからPHPがメインの開発~
8年目1月~仲介手数料が無料の不動産屋の社内SEに転職
交渉しほぼ完全に裁量労働が可能な立場になる。
業務内容はシステム全般ですが、
最近はSEO対策の作業が多いです。
現在14年目 まだ、しばらくはこの会社に居るつもりです。

あと、全ての記事がリンクフリーです。

最近の記事

過去ログ

全ての記事を表示する

全ての記事を表示する

カテゴリー

FC2カウンター

RSSフィード

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.--    [ Myカテゴリ:スポンサー広告 ]

BBモバイルポイントの自動再接続ツールなんかをひっそりと公開しています。

タイトルどうり。せっかく契約したBBモバイルポイントがあまりにも不安定すぎるので
むしゃくしゃしてやった。それなりに安定して動いたので2chで配布した。今はビクビクしている。

ダウンロード(Ver 0.2 2009/09/01 更新)

Q:どんな場合に使えるの?
A:BBモバイルポイントで頻繁にログイン画面に飛ばされてしまうアクセスポイントの場合に有効です。
  頻繁に無線自体が切断されてしまうアクセスポイントではこのソフトを使っても意味がありません。

使い方
ActiveRubyのインストール(インストール済みの人は不要)
②接続バッチ.bat をメモ帳で開く
③ユーザー名とパスワード、アクセス先URLの箇所を編集する
 (アクセス先URLで指定したURLに毎秒アクセスを行います。
 空白にした場合にはデフォルト設定として毎秒私のサーバーにアクセスしにいきます。)
④保存して、接続バッチ.batを実行する。

プログラムがやっていること
 毎秒、アクセス先URLにアクセスを行い
 BBモバイルポイントに転送されたら、
 プログラムが自動でログインを行うというもの。

ActiveRubyについて
 ActiveRubyについては詳しく知りたい方は以下のURLを見てください
 http://arton.hp.infoseek.co.jp/indexj.html

今後について
 2009年8月時点では動作確認ができておりますが
BBモバイルポイントの契約を作者が止める予定なので、
その後の開発は継続できません。ご了承ください。
スポンサーサイト
コメント(0)   2009.08.27    [ Myカテゴリ:技術の話 ]

学校裏サイト・・・潰すの簡単じゃね?

どうも。最近子供たちの間で学校裏サイトなる物が流行っているそうです。
心配性な私は自分の子供(2歳)がターゲットにされたらと思うと・・・

あれ?潰すの簡単じゃね?

というのもシステム的には完全にWebですし、WinnyのようにP2P掲示板というわけではありません。
利用者も携帯電話を使ってのアクセスばかりだそうです。
インターネットを使った技術である以上、契約している会社というのが必ず存在するため
サービス形態としてはいくつかパターンがありますが
どのパターンでも簡単に潰せるような気がしました。

パターン(パターンはより一般的なパターンが上位)
1:掲示板サービスを提供している会社のサービスを利用する
2:レンタルサーバーを借りて、CGIを設置
3:自宅サーバーを設置し、CGIを設置

1の場合の潰し方
 事実上、中高生裏サイトとして運用するのは9割以上がこのパターンでしょう。
潰し方は簡単です。掲示板の管理人と警察に通報すればよい。
日本にはプロバイダ責任法があり
侵害情報の発信者を特定する情報を開示してもらうことが可能です。
その上で、賠償をしてもらうなり謝罪させるなりはご自由に

2の場合の潰し方
 レンタルサーバーの契約会社が日本の会社ならば、1の方法で対処してください。
厄介なのが契約している会社が海外の場合ですが、
海外の会社の場合、通報が無意味だったり対応がまったくされないような状況もあります。
その場合はレンタルサーバーの特徴を利用した攻撃を仕掛けます。
いわゆるDoS攻撃ですね。

レンタルサーバーでは帯域に応じて料金が支払われるのが普通なので
国内なら1GB/月で100円から、海外なら10GB/月で1$ とかで料金が決定します。
よって、契約以上の帯域を使ってやればあっという間にアカウントが停止、
もしくはサービス停止です。

攻撃については法的にどうかという話にもなりますが、もし自分なら躊躇せず実行します。
被害者としてレンタルサーバー契約者が法的に出る場合には、契約者の身元が明らかになりますし、
「契約者 ≠ 誹謗・中傷した人」だとしても、管理者責任が問われる上に、
誹謗・中傷した人の個人情報が入手できるわけですから、
いずれにしろ、一方的に負けるようなことは無いと思います。

3の場合の潰し方
 正直、ここまでやらないだろ・・・学生がここまで執着して裏サイトを作るとは考えにくい。
これほど努力する人ならば、誹謗中傷って言うより、本当に恨まれているんじゃないかと思えてくる。
システムとしては最も自由度が高いが、潰すのは最も簡単。
IPアドレスがばれている為、警察に通報すれば一発で住所までわかる。

とここまで一通りの潰し方を書いたわけだけれども、
実際には学生が2,3なんてやらないだろうと思う。
手間だし知識必要だし、作るまでにもかなりの時間を必要とするから。


一応、突破方法としてプロキシを使ったりもできるけれども、
それもまぁ・・・特定方法が無いわけではなく、
自分だったら何とかできるなぁ。
とまぁ、結局携帯で利用できるP2P掲示板みたいなのが流行しない限り
大丈夫そうだなと思ったり。
コメント(1)   2009.08.24    [ Myカテゴリ:時事・駄文 ]

【仮想化】OpenVZが素晴らしすぎる件について

どうも。けいです。
現在サーバー復旧中です。
復旧ついでといっては何ですが、いくつかのお行儀の悪かったソフトウェアを
仮想環境で起動させるように変更しています。

以前まではパフォーマンスを重視していたため
VMWareやVirtualPCのような低速な仮想化からは大分距離を置いていたのですが
最近の仮想化は随分状況が異なってきているようです。

VMWareやVirtualPCを使っていたときは、大体30%程度動作速度が落ちており、
メモリ・HDDの使用量もネイティブで動かすときよりも多めに見積もる必要がありました。
そのため、リソース的にはなかなか厳しいものがありました。

その後、Xenのような準仮想化が可能なソフトウェアが登場し、
仮想化の大本命と絶賛されたものです。
そして、近年OpenVZのようなOSレベルの仮想化ソフトウェアが注目されています。
私は使ってみるまではOpenVZのようなOSレベルの仮想化ソフトウェアには
懐疑的だったのですが、
OpenVZのことを、 chroot + jail にいくつかの規制を加えたものだというように説明されたときには
「・・・仕組み的にも最もシンプルだし、それでいいじゃん」と妙に納得してしまいました。
仮想化するメリットはいくつかありますが、多くの場合、OSレベルの仮想化で十分なはずです。
また、使い方次第では驚くような利点があることがわかります。

【従来の仮想化の問題点】
OpenVZは従来の仮想技術とは違い、複数の仮想OSを起動したとしても使用するカーネルは一つです。
これにより今までと何が変わるのかというと、
従来では仮想OSのカーネル+付随する環境自体がメモリを使ってしまうため、
仮想OSでありながら、複数のアプリケーションを仮想OS上で動かす場面が多くありました。

例えば従来の方法で以下のような仮想システムを組んだとします。
仮想OS1:カーネル+必要なプロセス&スワップ(200MB) + Apache(128MB) + Tomcat(256MB) + MySQL(256MB) = 合計840MB
仮想OS2:カーネル+必要なプロセス&スワップ(200MB) + メールサーバー(128MB) + DNSサーバー(32MB) = 合計360MB

この構成では仮想OS上のApacheが下品な落ち方をした場合(OSを巻き込んで落ちた場合)
TomcatやMySQLも使えなくなってしまいます。
よりよい構成を求めるならば、全てのアプリケーションを仮想OSに分けるべきです。

しかし、もし仮に分けた場合には、
カーネル+必要なプロセス&スワップ(200MB)がアプリケーションの数だけ必須となってしまうため
200MB * 5(アプリケーションの数)で合計、1000MB分もとられてしまうことになり、
アプリケーションが多くなればなるほどリソース的に圧迫されるものでした。
そのため、複数のアプリケーションを仮想環境で動かさなければならないという状況が
現実的には多かったのです。

また、見積上では仮想OS1のメモリ使用量は840MBとなっていますが、
実際には相当数のアクセスがない限り、これほど多くのメモリは使いません。
しかし、実際に仮想OSを作成する場合のメモリ使用量は何かあったときのために
多めに見積もっておくのが普通でしょう。
そして、従来の仮想化では仮想OSの840MBは占有されてしまい
ネイティブのOSのリソースがごっそりと取られてしまいます。

->OpenVZならばこれらの問題を解決することができます。
OSレベルでの仮想化であるため、「カーネル+必要なプロセス&スワップ」は
ほとんど無いに等しいからです。
試しに最低限の仮想OSを作成しプロセスを見てみました。

# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 1980 692 ? Ss 05:01 0:00 init [2]
root 342 0.0 0.2 1692 620 ? Ss 05:01 0:00 /sbin/syslogd
root 349 0.0 0.3 5272 1024 ? Ss 05:01 0:00 /usr/sbin/sshd
root 367 0.0 0.3 2036 876 ? Ss 05:01 0:00 /usr/sbin/cron
root 379 0.0 1.0 8016 2704 ? Ss 05:09 0:00 sshd: root@pts/0
root 381 0.0 0.5 2760 1492 pts/0 Ss 05:09 0:00 -bash
root 428 0.0 0.3 2296 896 pts/0 R+ 05:42 0:00 ps aux

initの次はもうサービスです。
最小限の環境ならば10MBもあれば十分でした。

#top
top - 05:46:49 up 45 min, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 7 total, 1 running, 6 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 262144k total, 8940k used, 253204k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 1980 692 592 S 0 0.3 0:00.00 init
342 root 20 0 1692 620 508 S 0 0.2 0:00.00 syslogd
349 root 20 0 5272 1024 668 S 0 0.4 0:00.02 sshd
367 root 20 0 2036 876 704 S 0 0.3 0:00.00 cron
379 root 20 0 8016 2704 2224 S 0 1.0 0:00.12 sshd
381 root 20 0 2760 1496 1184 S 0 0.6 0:00.00 bash
429 root 20 0 2256 1060 872 R 0 0.4 0:00.00 top

これだけリソースの消費が少なければ、
アプリケーションごとに仮想環境を割り当てることが十分可能です。
また、従来のように仮想環境に
メインOSのリソースがごっそり奪われるということはありません。
例えば、2Gのメモリが乗っているマシンに、
2Gのメモリを割り当てた仮想環境を複数起動したとしても
まったく問題なく動きます。
その他、ゾンビプロセス問題などが発生しても、アプリケーションごとに
システムが分かれているために、再起動もやりやすくなります。

ここまでいいことづくめで書いてきましたが、残念ながら
全てのアプリケーションが仮想化できるわけではありません。
仮想化できなかったソフトウェアもいくつかあります。
それは特定のデバイスの使用を前提に作成されたソフトウェアなどです。
例を挙げるなら、OpenVPNやAsteriskで使用するzaptelなどです。

/dev/ 以下の使用を前提としているため
OpenVPN だと /dev/net/tun が無ければ動作をすることができません。
そのため、私の環境ではいくつかのアプリケーションはメインOS上で動作させざるを得ませんでした。
理想としてはメインOSではSSH とOpenVZだけをサービスとして提供させたかったのですが、
致し方ないところですね。

※2009/09/13
一ヶ月以上使用してみたのだが、予想以上に特定のデバイスに依存しているソフトウェアが多い。
ハードが低速だった頃に作られたソフトウェアの多くが
「カーネルに組み込むことも出来るし、組み込まなくても動かせる」 という作りになっているため、
わざわざカーネルパラメータを取得しに行ってしまい、FATALエラーになるとか・・・
NFSやsambaのsmbfs, cifsなんかも、OpenVZ上で動かすのは手間であるし情報も少ないので、
OpenVZ上で動かす場合特有のトラブルを覚悟しなければなりません。
コメント(0)   2009.08.03    [ Myカテゴリ:技術の話 ]
Template Designed By
ぐらいんだぁ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。