前回に引き続き、ハートビーツさん主催の勉強会に行ってきました。
【 GAEについて - 柴田さん 】 ---- - スケーラブルなサイトを簡単に ・ Google Moderator オバマ大統領がオンライン討論会の質問を決めるのに利用 数時間で7000の質問。うん十万の投票。 ・ 衆議院選挙のキャンペーンサイト ・全裸Bot 全裸でって付けてリツイートしてくれる - クラウドの種類 ・saas インフラ+ビジネスロジック ・paas インフラだけでなくプラットフォーム ・iaas インフラだけ GAEはpaas。 WindowsがやってるAzureもpaas。GAEの対抗。 - DataStore(BigTable) RDBMSではない。アンチ正規化。JOINのような機能がない。 RDBMSはいい感じにクエリするためにコンピュータが頑張るが、 スケーラビリティを考えると。単一クエリをいかに効果的にやるか。 GAEはクエリに時間がかかるとエラーになっちゃう。 テーブルのロックはボトルネックになりがちなので、Serial型がない。 ロックの機会を最小限にすることでスケーラブルなシステム。 たくさんあるサーバに仕事を分散させる感じで。 一個のマルチコアのマシンでCPU100パーセント使い切るってのは難しい。 スレッド間のロックとか、メモリとか、IOがネックになったりとか。 → 複数のシングルコアのマシンに頑張らせる - 課金について CPU>帯域>データサイズ 10GBを1月置いといても1.5ドルくらい。 ・CPUは近年あんまり性能が上がってない→複数コアの方向で。 ・帯域を増やすのも結構大変インフラの工事が要るし。 ・データサイズ→ムーアの法則的に安い。 - 非RDBMSは怖くない→考え方変えたら? ObjectStore(ObjectDataBase)−Amazonとかで使われてる Cache-医療分野で使ってる。XMLを扱う。統一の規格があるらしい。 - Python 予約語(変数として使えない単語)の数 Perl 220, Java 50, Ruby 40, Python 31 言語の機能が整理されているシンプルで奥が深い Googleの使う言語 C++, Java, Python Google内の30パーセントがPythonで出来ている。 ・チープだけどスケーラブル Facebookアプリとかmixiアプリとかに使われてたり 低いレイアの運用コストがかからない ・全部Googleに委ねる必要がある 機密性の高いデータは扱いづらい 内部統制的にソースの所在は?とか言われるとちょっときつい。 ・箱庭の窮屈さ 外部とソケット通信とか出来ない Cでコンパイルされたようなライブラリを使うことが出来ない 長時間CPUを使うようなリクエストはキャンセルされてしまう ・スケールのされかたは? リニアにされていくの?ある程度たまったらボコって上るの? 設計によって。データが増えると長時間走行するような プログラム書いたらあんまりだよね。 同時に30個のクエリしか受け付けられないって制約があるけど? →衆議院選挙サイトはその制限をGoogleの人が外してくれたみたい ・その他 Googleの中の人に依頼するとー的な事がチョイチョイある(インデックスが削除できないとか) 日本のGoogleには担当の人があんまりいないから、 英語のメーリングリストに入ったりとか、 イベントにいったりして人脈広げるとかする必要があるらしい。
【バックアップの話 - 坪井さん】
- バックアップについて 最近あんまりハードは壊れない。 最近ではインフラ構成を冗長化したりする。 → 主に人災の時っていう用途が大きいんじゃないか。
- 増分と差分バックアップの違い ・増分・・・前回との差分だけとる。インクリメンタル。 ・差分・・・フルバックアップからの差分を都度全部とる。 ・リストアするには? 増分 - インクリメンタルに戻すような感じなので面倒 差分 - 前回のフルバックアップ+差分を戻せばいいので楽
- Amanda ・オープンソースのバックアップソフトウエア 91年から開発されているが、日本語のドキュメントが少なかったりして、 あんまり日本では使われていなかったりする。 外国ではかなり使われてて、大抵のディストリビューションには入ってる。 ・出来ること ダンプとかリストアとかtarとかの管理。 ・構成 - バックアップサーバとクライアント - テープサーバ - インデックスサーバ ハードディスクに置くときにも仮想テープ的な。 AmazonS3にバックアップを取る機能もあったりするらしい。 ・使い方 ホスト名を使って通信するので/etc/hostsの編集が必要 /var/lib/amanda/.amandahosts バックアップホストとFQDN バックアップセットの使い方 DailySet1をコピって使う/etc/amanda以下にセット毎にディレクトリ。 amanda.conf どんなサイクルで(世代管理も出来る。xxなタイミングでフルバックアップを上書きとか) 何をどこに 容量の設計や 帯域を絞ったり(本来のサービスに影響を与えないように) amcheckってコマンドでApacheのconfみたいにテストできる リストアの方法 amrecoverとamrestoreはinfofileっていうのが必要 mtとddコマンドが使えれば最悪なんとかなる(よく解らんなぁ。。) 便利なんだけど設定ファイルがかったるい Amanda Enterprise EditionっていうGUIがある(有償) ZmandaRecoveryManager MySQLの4系5系のスケジュールしたバックアップとか MySQLのバイナリログが有効になっている必要がある ZRMも有償のはGUIがある
どうやってバックアップとる? ・rsyncとsh ・darコマンド ・GAEのバックアップは? 1個データを取ると、マシン3台以上に置かれるので〜 dumpしてローカルに持ってくることもできる。
エピソード ファイルを誤って消しちゃったとかはリカバりやすいけど、 SQLのupdateとかは結構おっかない。
スナップショット 便利だけど、個別のファイルを扱いたい時とかはちょっと。