はてなキーワード: spfとは
これまで他の人に用意してもらったサーバで自分のプログラムを動かしたことはありましたが
自分自身で一からサーバをセットアップしたことはほとんどなかったので、いろいろとハマりました。
作業を進める上で困ったり考えたりしたことを書いていきます。
ちなみにサーバ自体はさくらのクラウド、OSにはCentOSを使用しているので、それ前提のお話になります。
最初にサーバを起動してから速やかにSSHとファイヤーウォールの設定を変更しました。
はてブなんかでも定期的に話題になっているのでおなじみですね。
・SSHやHTTP(S)など、どうしても公開しなければならないポート以外は遮断する
さらっと書きましたが、設定をミスって自分自身もログインできなくなり、何度かOSの再インストールを繰り返しています。
後から気付いた事ですが、さくらのクラウドではクラウド管理画面のリモートスクリーン経由でローカルログインできるので
別にOS再インストールしなくてもiptablesの設定を変更できたんですよね...
逆に言うといくらファイヤーウォールとSSHを設定しても管理画面にパスワードログインの環境が残ってしまうので
パスワードの管理には引き続きしっかり気を使う必要がある。ということでもあります。
httpd,php,mySQL,memcachedなど必要なサービスをインストール、設定し
作成したWebアプリのプログラムを乗せて動かしてみました。が、動作が重いような...
開発環境ではさくさく動いていたのに、本番環境ではどのページ遷移ももっさりしています。
abで計測してみたところ、開発環境のおよそ2分の1のスコアとなってしまいました。
開発環境が仮想2コアのメモリ1Gだったのに対し、本番環境が仮想1コアのメモリ2Gと
CPUの性能について半減しているのでそのせいかな、と思いつつ設定を見なおしていたところ
特に使っていないと思われたipv6を停止した途端にパフォーマンスが改善されました。
ページ遷移に伴うもっさり感が解消され、abの計測結果も開発環境と遜色ない結果が出ています。
デフォルトで有効になっていたipv6の影響により余計な処理が走っていたのかもしれません。
パフォーマンス改善に喜んだのも束の間、会員登録などの処理でWebアプリからメールを送信したところ、Gmail宛のメールがことごとく迷惑メールと判定されるという事案が発生。
spfの設定を行なう、メールの内容について吟味するなどの回避策を試してみましたが一向に改善されません。
試しにHotMailとexciteのメールアカウントに送信したところ、そちらではそもそもメールを受け付けてもらえずエラーコードが返って来る始末。
困り果てていたところ、エラーの内容からサーバのIPがspamhousにスパム送信元として登録されていることが判明しました。
postfixのホスト名の設定がデフォルトで「localhost.localdomain」などとなっており、それをそのまま使っていたためにGmailがスパム送信元として通報してしまったようです。
設定を修正し、spamhousに解除依頼を提出。事なきを得ました。
クラウドを利用すれば、サーバを停止することなく簡単な設定でスケールできるようになる。
と、自分で勝手に思い込んでいたせいなのですが、消えては困るデータの一部をmemcachedに保存する実装を行なっていました。
実際のところさくらのクラウドではサーバを完全に停止しなければプラン変更を実施できないし
そもそもサーバが落ちたらどうするんだよ。ということで、急遽KVSを変更する必要に迫られました。
速度の低下が気にかかったため、いくつかの候補を実際に動かし
phpのスクリプトから1万件のデータ読み書きを行うという形でmemcachedと比較してみたところ次のような結果に。
サービス | 1万件書込 | 1万件読込 |
memcached | 2.55秒 | 2.30秒 |
handlersocket | 21.23秒 | 2.71秒 |
InnoDB | 20.23秒 | 5.10秒 |
kyotoTycoon | 8.22秒 | 7.72秒 |
さすがに読み書きそれぞれmemcachedが最速ですが、読み出しについてはhandlersocketも負けていません。mySQLから普通にSELECTしてもmemcachedの2倍程度の時間しかかからないという結果が意外でした。
しかしながら書き込みのほうではhandlersocketもmemcachedの10倍近くの時間がかかっており、少々速度的な影響が気になってきます。memcachedの倍のパフォーマンスを記録したという記事を見たことがあるので、設定、チューニングについて生かしきれていない部分があるのかもしれないとも思いましたが、知識が不足しているところで無理をすると問題が発生した時に対処できないと考え、候補から除外することとしました。
結局、今回の用途では読み込み処理より書き込み処理のほうが圧倒的に多いことも考慮し、kyotoTycoonを採用しました。実際の利用箇所に組み込んでabで計測してみたところ、だいたい30%程度のパフォーマンス低下にとどまっており、これなら許容範囲かと考えています。
実行系と参照系に分ける形でmySQLのレプリケーションを行なっていたのですが、度々レプリケーションが停止する現象が発生しました。
一部のテーブルについて肥大する可能性が考えられたため、参照系に接続するプログラムで使わないテーブルをレプリケーションから除外していたのが原因です。
例えばtabelAをレプリケーションし、tableXをレプリケーションしないという設定にしたうえで
実行系でINSERT INTO `tableA` SELECT `value` FROM `tableX`などといったクエリを発行すると、参照系にtableXが無いためエラーが発生して止まってしまいます。
レプリケーションするテーブルを限定する場合はプログラム側でも注意を払わないと危険です。当たり前ですが。
監視といえばcactiやnagiosが定番なのかもしれませんが、設定が複雑そうで尻込みし、monitを使用することにしました。
簡単な設定でloadaverageやメモリ、HDDの使用量をチェックできるほか
httpdやmysqldなどといったサービスのプロセスを監視し、もし落ちていたら自動で起動してくれるので助かります。
パスワード保護を行うとしても、サイト全体の管理画面など自分しか使わないプログラムはWebに晒しておきたくない。
というわけで、一部のWebアプリを秘匿する設定を行いました。
管理画面のWebアプリを9999番など閉じているポートに設置した上で、SSHを利用したトンネルを掘ります。といっても
上記のようなコマンドで管理画面のWebアプリを置いたサーバへログインするだけです。
ブラウザのアドレス欄にhttp://localhost:9999/と打ち込めば、接続が開いている間のみアクセス可能になる感じですね。
サーバにログインできる人でなければ実行できないことなので、気分的にある程度安心します。
自動でログのバックアップを行いたいと考えたのですが、パスワード無しの鍵でログインして転送する形には抵抗がありました。
調べてみたところ、authorized_keysに公開鍵を記入する際の設定で、その鍵でできることを制限するという手段があるようでした。
具体的には、authorized_keysに
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="some commands" ssh-rsa AAAAB3NzaC1yc2EAAA...
などとして公開鍵を追加しておくと、その鍵でログインした直後にcommand=""の部分で設定したコマンドを実行して接続を終了する挙動となり
接続のフォワードもできなくなるため、パスワード無しでも鍵の流出に関するリスクを最低限に留めることができるというわけです。
commandの実行結果は標準出力から受け取ることができるので、例えばcommand=""の部分にファイルの内容を表示する処理を設定していたとすれば
ssh -i .ssh/no_password_key user@xxx.xxx.xxx.xxx > /path/to/file
などとしてログインの結果をファイルに書き込むだけで、簡単にファイルの転送が実現できます。
他にも大小さまざまな問題に行きあたりましたが、忘れてしまったor書ききれないのでここまでとします。
たった1つのサイトを公開するにしても問題というのは尽きないものだと実感させられました。
今は基本的な情報だけでなく、ちょっと突っ込んだ内容でも検索で解決していけるので嬉しいですね。手がかりを残してくれた先達に感謝することしきりです。
現状ではひとまずの見切りを付けて公開していますが、より堅牢で負荷に強いサーバとなるよう、随時チューニングを行なっていこうと考えています。
個人サイトや小規模な商業サイトなどプロモーションにあまりお金をかけられないサイトを主な対象とした、無料で出稿できる広告ネットワークサービスです。
既存のサービスで近いのは「あわせて読みたい」や「zenback」、各社提供のRSS相互リンクサービスなどになるでしょうか。
広告としての体裁がある分、それらより若干積極的な性質になるのではと考えています。
現時点ではサービス本体のプロモーションに苦心するという本末転倒そのものの状況でありますが、もしよろしければ見ていただけると嬉しいです。
「無菌豚」てのはSPF豚のことだと思うのだけど。
危険なので、なんにせよ豚肉を生で食べるのはやめましょう。
Q:「SPF豚肉は生で食べられるのでしょうか?」
A: 豚肉を生で食べることにどのような意味があるのでしょうか。いくら清潔な環境のSPF豚農場で飼育された豚の肉であっても、生で食べるべきではありません。古来、「豚肉は良く加熱しないと危ない」といわれてきましたが、昨今問題視されているE型肝炎などの感染から身を守るためには、SPF豚肉といえども加熱調理は必要です。SPF豚肉を安心して美味しく食べるためには加熱し過ぎに注意しつつ、正しく調理することが肝要です。SPF豚肉の芳醇な風味をお楽しみ下さい。
日本SPF豚協会「SPF豚に関するQ&A」http://www.j-spf.com/Q&A/Q&A.htm
dwang厨が無謀にもfroyoを入れてみる記録のページ。
結局CM6-RC1+yay-gapps で落着きそうな雰囲気。
dwang-1.17.1
→ eMonster用に使ってた sandisk 2GB (メモ)
7/9 にリリースされているもの
ext partition 要対応? とおもったら仏語じゃねーか
@kenmood
Wifi OK
どっかから落した20090801-docomo-ht-03a.rar のうち、boot, cache, data, system のみをnandroidで復旧してみる。nandroid.md5 の復元も忘れずに。
手順
追加手順:
http://www.androidinforum.fr/htc-dream-android/froyo-french-connection-100-t1742.html#p6156
partition: swap 160M, ext 500M, 残り vfat がおすすめとな。
何度か丹念に「目標をwipeしてreboot」を繰り返してたら安定した気がする。
豆腐をfont入れ、localeをlibicudata.so の入れ替えで対処 (できるかな? reboot中)
→ libicudata.so は入れかえちゃダメ。起動しなくなる。recoveryで起動して/systemをマウントしてことなきを得る。
2010-07-11 追記
2chでも報告されているとおり、wlanが使えない。あと細かい話だけど、live wallpaperが使えない気がする。メモリが足りないだけかもしれないけど。
marketが死にまくる (acoreが死ぬ)。ほかにも死にまくるけど、何故かはよくわからない。とりあえず体験はできるけど、まだ常用には至らないかも。
(安定している、と言っている人もいる)
2010-07-11 追記
zip落してきて上書きinstallしてみた。なんか日本語fontが消されたんだけど(ぶー!)
ちなみに日本語fontはM+を利用してます。
数時間つかった限りでは、他人にお勧めできるほどじゃないけど何とか使いものになるかも。dwangの環境はnandroidでしかバックアップしていないので、手作業でアプリなどは手作業で復帰する予定。
(2010-07-11 午後5時追記)
どうもSPF Connectionが安定しないのと、ベースがCM6ということで、まずはベースに近いほうが良いだろうと
CM6-RC1を焼いてみる(この項続く)
http://www.cyanogenmod.com/home/cyanogenmod-6-0-0-rc1
E/AndroidRuntime( 2000): FATAL EXCEPTION: UpdateCheckinDatabaseService
E/AndroidRuntime( 2000): java.lang.SecurityException: Permission Denial: writing com.google.android.gsf.settings.GoogleSettingsProvider uri content://com.google.settings/partner from pid=2000, uid=10036 requires com.google.android.providers.settings.permission.WRITE_GSETTINGS
すぐ直りそうではあるけど。
(エラー内容から察するに、installされたapkの記録をgoogle accountに書き込めない)
c.f. http://forum.xda-developers.com/showpost.php?p=7139560&postcount=109
■メキシコの豚インフルエンザに関する石破農水相の発言が、あまりにもデタラメで大嘘だったから警告の意味も込めて
■文末にはオマケで豚インフルよりも怖い日本の食肉衛生検査所の裏話付きです。
※以下、某食肉衛生検査所の友人との会話
私「石破農水相が『豚肉は出荷時に完全に滅菌・殺菌されているから安全』とか言ってたけど、あれ意味分かんないんだけど。」
友「俺も分からん。ってか『豚肉を出荷時に完全に滅菌・殺菌』する方法なんて無いよ。こんがり中まで肉焼いていいなら別だけど。もしそんな方法俺が知ってたら、公務員やめて会社立ち上げるよw」
私「そういや、電話応対忙しいんだっけ?」
友「忙しいってほどじゃないけど、日に何件か『メキシコ産豚は安全ですか?』『出荷時に完全殺菌ってどうやるんですか?』って電話は来る。」
私「どう答えてるんだっけ?」
友「のらりくらりと逃げてる。それでも駄目なら『分かりません』で。まさか石破さんが嘘ついてるなんて言ったら、国と喧嘩になるし。ってか、農水相にきいて欲しいよ。」
私「ってかさ『出荷時に完全に滅菌・殺菌』なんて面白技術があったら、食肉衛生検査所自体不要じゃん。」
友「次の就職先を探さないとな、ってコラ(笑)」
※ふたりとも、一応プロフェッショナルなので一般の方にも分かりやすいように一部言い回しを脚色してあります、SPFの説明口調とか
■以下、豚インフルよりも怖い番外編
私「気付いたけど『出荷時に完全に滅菌・殺菌』なんて出来たらSPF[(specific pathogen free=特定病原体不在)]豚の立場無いよねw」
友「SPFはコストカットの側面もあるし、抗生物質をほとんど使わないから、全く意味を失うわけじゃない。でもSPF豚でさえあくまで規定の特定病原体が居ないだけで生食はNG。『出荷時に完全に滅菌・殺菌』出来るなら、メキシコ豚をスーパーで売る時に『生食出来ます』ってシール貼れるよなw 横にワサビつけてさ。実際に豚肉を生で食べたら肝炎とか怖い病気になるから絶対ダメだけどね。」
私「抗生物質といえば、検査所って残留薬品の検査とかもやってるんだよね」
友「うん、残留してたら出荷出来ない。廃棄になる。」
私「でもいわゆる『お目こぼし』はあるんでしょ?」
友「ちょ、うちはマジで無いって。でも●●(他の検査所の名前)は結構やってるみたい。あそこの人達、畜産家から貰った焼酎を仕事中も飲んでるからね。」
私「何その時代錯誤」
友「真面目な話、この国で安全な動物性タンパク質は、卵と牛乳とそれらからの生産物くらいしか無いよ。スーパーのSPF豚だって偽装かもしれないしさ。」
Return-Path: <direct@mini-saki.com>
Received: from gmail-smtp-in.l.google.com ([202.75.37.206])
by mx.google.com with SMTP id v39si9729804wah.44.2008.01.29.03.18.31;
Tue, 29 Jan 2008 03:18:33 -0800 (PST)
Received-SPF: neutral (google.com: 202.75.37.206 is neither permitted nor denied by best guess record for domain of direct@mini-saki.com) client-ip=202.75.37.206;
Authentication-Results: mx.google.com; spf=neutral (google.com: 202.75.37.206 is neither permitted nor denied by best guess record for domain of direct@mini-saki.com) smtp.mail=direct@mini-saki.com
Date: Tue, 29 Jan 2008 03:18:33 -0800 (PST)
From: ジェントルマン木下 <direct@mini-saki.com>
To: 俺@Gmail
Subject: 毎日土下座していますか?
Message-ID: <8O4X33M53Z.9222@mini-saki.com>>
どうも。ジェントルマン木下です。
どのくらいジェントルマンかと言うと、デートマナーマニュアルを
12冊読破し、車のドアも女性には開けさせず自分の手で開けて乗せ、
運転席にかけて行くくらいジェントルマンです。
私のジェントル魂はそれだけでは飽き足りずテーブルマナーも覚え、
そんな苦悩に満ちた日々を送っていた時、ある人物が目に入りました。
その人物はなんと女性の目の前で土下座してセックスを懇願しているのです。
そう思いながらその光景を冷ややかな視線で傍観していたのですが、
なんと女性はOKしているじゃないですか!!
ジェントルマン改め、ジェットマンに変身して
大空に飛び出しそうなくらい驚きました。実際、飛んでましたね。
そして大空を羽ばたきながら気がついたのです。私は外国かぶれな人間だった…、
そうさ日本人じゃないか…と。日本にもこんなにもジェントルマンな作法があったのだと。
その日を境に、私はありとあらゆる土下座を試してきました。なかでも一番効果があった
土下座中もドアがバタンバタンと私の体を挟み、音を立てて演出効果を高めます。
それをされた女性は必ずOKします。
あまりのジェントルマンぶりにOKせざるを得ないからです。正直なところ女性も「セックスを
する口実」が欲しいのだと思います。「あそこまでされたら仕方ないよね」って。
そして、その成功率の一番高かったところがここです。
(URL 省略)