24 1月
admin

ココまでできるの!?Amebaを支えるMySQLシステム構築
というお題目でのデータベースセッション。


<アジェンダ>
1.レプリケーション
  データベースの運用でI/O負荷が問題でSELECTのレスが低下する。
  解決としてI/O分散のためスケールアップすることで簡単に解決できるが
  コストがかかる。
  データベースの改善策として、SQLのチューニング、インデックスの見直し
  レプリケーションを利用した分散。
  MySQLの特徴として、レプリケーション機能で簡単に負荷分散できる。
 1-1.レプリケーションを利用した分散について
  スキーマ別やテーブル別でSlaveサーバを構築。
  スキーマ別での分散は「アメばた会議」で利用。
  テーブル別での分散は「ブログ」、「なう」など多くのサービスで利用。
1-2.用途に合わせたレプリケーション
  導入からテーブル分割する必要はないが、設計段階からスケールアウト
  できる設計すれば迅速対応できる。
  データ量が多くなるテーブル同士でのJOINはさける。
 1-3.レプリケーションを効果的に使うための設計
 1-4.ストレージエンジンとレプリケーション
トランザクションを必要とする更新=>InnoDB
  SELECT発行が多い場合は、Slaveサーバのストレージエンジンを
  Memoryエンジンにすることで、パフォーマンスが出る。
  Memoryエンジンは、データ、インデックスをメモリ上で管理するので
  書き込み、読み込み共に、最もはやい。ただし、Memoryエンジンは
  MySQLの再起動でデータが消えてしまうので再起動方法や障害時の
  データ復旧など予め考えておくことが必要。
ピグでMemoryエンジンを使用。
  Masterサーバには不要な履歴などのテーブルがある場合はBlackHoleエンジン
  MasterサーバのI/O負荷を軽減できる。<=参照はSlaveでするから。
  MasterのDisk容量を確保、I/Oを減らせる。
1-5.多階層のレプリケーション
  ブログのデータをマイページ、プロフィールで使うなど。
  データセンターが違うとき。
2.MySQLの運用
  監視サーバからケータイにメール。
  MySQLサーバでは、PING監視、PORT監視、レプリケーション監視、
  RAID監視を行っている。ツールは「mon」。
  「mon」はデフォルトでPING、PORT監視をするコマンドがある。
  レプリケーション監視については、独自に作成。
   レプリケーション監視にはMySQLコマンドと「SNMP」を使用。
   SHOW SLAVE STATUS
 2-1.バックアップ
   mysqldumpでのバックアップは一般的だが、リストアに時間がかかるし、
   使える保証がない。
   LVM2 スナップショット機能でバックアップ。
 2-2.障害監視
  障害監視ツール「mon」以外に「Negios」を使用して
  ”Load Average”と”Diskの使用率”も監視しています。
 2-3.性能監視
  主にLoad Average、トラフィック量、Disk I/O、Memory使用量
  Disk使用量、レプリケーション遅延、vmstat
3.今後の取り組み
  新しいMySQLのバージョンの検証。ストレージエンジンのパフォーマンス
  サードパーティー系のストレージエンジン。
  KeyValue型の検証。
  
メモ:
Amebaでは年50台増えている。
DBサーバーは今は250台くらい。
ほぼすべてをmysqlで運用。
SQL発行回数2500回/secを超えたら詰まった。
監視を強化
3秒はスローログとする。

2500回/secを超えたら詰まったのは、
IBM/X336
4コアサーバでやっている。
DELL/R300
ではそれ以上だった。

XenでやったらI/Oがよろしくないから仮想やってない=単体サーバ。

アメブロはオラクルとハイブリッド。
現在使っているMySQLのバージョンは4.1.21と5.0系
5.1はバグが多いと。

comments

23 1月
admin

Ameba x ロクナナワークショップ One Day College行ってきた。


★マネージメント セッション
ブログ、芸能人、ピグ、モバイル…Amebaってどうやってビジネスしているの? †

1/22(金)に開催されたAmeba x ロクナナワークショップに出席
主催:株式会社サイバーエージェント
ロクナナワークショップ

サイバーエージェントがメディア事業として展開しているAmebaについて聞いてきた。
①メディアを育む ⇒②ビジネスエンジンの投入⇒③メディアに合わせて改善
自社開発のコンテンツを育てるには、プラットフォームと、コンテンツの両方の育成が
必要であり、ユーザーは自己実現欲を満たすことで、そのコンテンツに長く滞在し、
購入をする。その点がECで置き換えたときと全く同じであり、商品を出品するだけ
(器を用意するだけ)でなくコンテンツの充実もECサイトの成長には重要。





その他のブログでの記事

Ameba x ロクナナワークショップ One Day College 無事終了
http://ameblo.jp/lionbaby/entry-10440788661.html

Ameba×67WS イベント無事終了!
http://ameblo.jp/yana/entry-10440611721.html

Ameba x ロクナナワークショップ One Day Collegeまとめ その1(´・ω・)
http://ameblo.jp/konica/entry-10440758902.html

Ameba x ロクナナワークショップ まとめ その2(´・ω・)
http://ameblo.jp/konica/entry-10440788888.html

comments

10 1月

年末から続いている目標管理。

私自身のスキルアップを目的として、

今年やりたいことを年末にあげてみました。

目標達成に向けて、やれてます!

それには、毎日30分刻みで、スケジューリングをしておくこと。

できないことが2つくらい出てきますが、

最近は概ね予定通りで進んでいます。


Continue reading…

admin
comments

7 1月
admin

mysql> SELECT “u” AS フィールド名, store . * FROM store

comments

5 1月
admin
[root@centos ~]# mysql -u root -p ← MySQLへrootでログイン
Enter password:  ← MySQLのrootパスワード応答
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> grant all privileges on test.* to centos@localhost identified by 'centospass';
 ← testデータベースへの全てのアクセス権限を持った、新規ユーザcentosを登録
Query OK, 0 rows affected (0.00 sec)

mysql> select user from mysql.user where user='centos'; ← centosユーザ登録確認
+--------+
| user   |
+--------+
| centos |
+--------+
1 row in set (0.00 sec)

mysql> exit ← ログアウト
Bye

[root@centos ~]# mysql -u centos -pcentospass ← centosユーザでMySQLサーバーへログイン
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database test; ← testデータベース作成
Query OK, 1 row affected (0.00 sec)

mysql> show databases; ← データベース作成確認
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.01 sec)

mysql> use test ← testデータベースへ接続
Database changed

mysql> create table test(num int, name varchar(50)); ← testテーブル作成
Query OK, 0 rows affected (0.01 sec)

mysql> show tables; ← テーブル作成確認
+----------------+
| Tables_in_test |
+----------------+
| test           |
+----------------+
1 row in set (0.00 sec)

mysql> insert into test values(1,'山田太郎'); ← testテーブルへデータ登録
Query OK, 1 row affected (0.00 sec)

mysql> select * from test; ← データ登録確認
+------+----------+
| num  | name     |
+------+----------+
|    1 | 山田太郎 |
+------+----------+
1 row in set (0.00 sec)

mysql> update test set name='山田次郎'; ← testテーブル内データ更新
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from test; ← データ更新確認
+------+----------+
| num  | name     |
+------+----------+
|    1 | 山田次郎 |
+------+----------+
1 row in set (0.01 sec)

mysql> delete from test where num=1; ← testテーブル内データ削除
Query OK, 1 row affected (0.03 sec)

mysql> select * from test; ← データ削除確認
Empty set (0.00 sec)

mysql> drop table test; ← testテーブル削除
Query OK, 0 rows affected (0.00 sec)

mysql> show tables; ← テーブル削除確認
Empty set (0.00 sec)

mysql> drop database test; ← データベースtest削除
Query OK, 0 rows affected (0.00 sec)

mysql> show databases; ← データベース削除確認
+----------+
| Database |
+----------+
| mysql    |
+----------+
1 row in set (0.00 sec)

mysql> exit ← ログアウト
Bye

[root@centos ~]# mysql -u root -p ← MySQLへrootでログイン
Enter password:  ← MySQLのrootパスワード応答
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> revoke all privileges on *.* from centos@localhost; ← centosユーザから全てのデータベースへのアクセス権限を剥奪
Query OK, 0 rows affected (0.00 sec)

mysql> delete from mysql.user where user='centos' and host='localhost'; ← centosユーザ削除
Query OK, 1 row affected (0.01 sec)

mysql> select user from mysql.user where user='centos'; ← centosユーザ削除確認
Empty set (0.00 sec)

mysql> flush privileges; ← centosユーザの削除をMySQLサーバーへ反映
Query OK, 0 rows affected (0.01 sec)

mysql> exit ← ログアウト
Bye

参考:http://centossrv.com/mysql.shtml

comments

29 12月
admin

毎日同じでつまらないという人もいるが、

それ以前に、毎日同じ生活を送ることができない私がいる。

起きるのも、朝食も、寝る時間も、勉強する時間も。

かなり中途半端な生活だ。

たぶん、多くの人が、毎日同じことをすることなんて

嫌だし、できないんだと思う。

明日も同じことをするってのは無理だ。

だけど、同じことができるように努力してみる価値はあると思う。

<明日からやってみること>

☆起きる時間を毎日6時47分と決める。

あと5分寝てたい。って思うんです。そんなこんなで8時になっちゃって、朝時間を無駄にしてきた。6時47分っていうのは、適当だけど、それでやってみる。朝起きたら、Tweetしてみよう。

☆朝食は食パンを1枚。飲み物はお茶。

お腹を満たす量として毎日決めておけば、前日の夕飯の量で、次の日の体調が左右されるはず。

☆9時45分発の各駅停車に乗り、出勤する。

直通の電車があるけれど、各駅停車で途中乗り換えがあった方が、意識し続けられていいと思う。但し、土日祝日は時刻が異なる。

☆毎日13時45分から昼食。14時45分まで。

うちの会社は自由に昼食時間を決めていい。だけど早過ぎても遅過ぎても、夜までの間に、空腹だったり、満腹だったりしてしまう。とりあえず、その時間からにしてみようと思う。

とりあえず、明日から。

休みの日も朝起きる時間は同じで頑張ってみる。

comments

28 12月

そろそろ今年1年のまとめに入ります。そして来年やることリストを作成します。そのリストで一番重要なことは今日の夜から取り掛かろう。今日やらなくては来年になってもやらないさ。by neconi
ってTweetに触発されて、やろうやろうと思っていたのもあって、
今日まとめてみました。

今年起こったこと

  1. 政権交代
    • 民主党に入れた。自民党は殻に閉じこもったままか。
  2. 深刻化する不況
    • 円高ドル安が進んで、1000円以下のジーンズや、300円以下のお弁当など安いものが流行った。
  3. 新しいサービス、プラットフォームが誕生。
    • mixiアプリ、Android、Google Waveの発表他。
  4. クラウドという言葉が流行る。
    • AmazonEC2が代表的。

今年やったこと

改めて振り返ってみると、意外と新しいことに挑戦した気がする。

  1. Twitterログピはじめた。はてなハイクも始めて、猫専用にした。
  2. Cubase LEをいじってVSTってのはリアルにいい音がするのを今更知った。
  3. 転職活動(2社二次面接で終了、3社書類審査で終了)をしたが、惨敗。
  4. 自分のサイトがフィッシングの踏み台にされた。
    • サーバー会社からパスワード変えたとの連絡。
    • 勝手にファイルがアップされていた。
    • 中身を確認し、怪しいところを塞いだ。
  5. というのもあって、PHPセキュリティ講座を受けた。
  6. 短冊.inをシャレで7月6日作る。7月7日は2万UU/dayを超える。
  7. Linuxの勉強をはじめる。
    • 来年はLPIC受験。合格を目指す。

来年やりたいこと

  1. PHPフレームワークを軽く覚える。
    • 多くの人と同じく、話題性に乗っかるだけですが、転職に役立つ場合もありそうだ。
    • PHPフレームワーク入門PHPフレームワーク入門を買った。
    • sympony、Zend、CakePHPの順でやってみて、終わったらRuby On Railsを触ってみよう。
  2. サーバーの勉強をする。
    • LPICのレベル1取得=大したことじゃないんでしょ?このくらい取っておかなきゃ。
    • VMwareにCentOS入れてあらゆるパターンでつなぐ。
      • MySQLレプリケーションのパターンとか
      • APPサーバとDBサーバとか
  3. MySQLスキルのレベルアップ。
  4. 販売士3級に合格。
    • 昇格に必須なようなので。2月に試験なので意外と時間がない。
  5. 積極的に勉強会へ参加する
    • PHPかMySQLの勉強会。初級をSKIPしながらやってきたエセ中級だと思うから。先輩プログラマーがいないから、師匠を見つけよう。
  6. アウトプットを意識する。
    • 技術関連のブログ投稿を増やしたり、上級者に質問してみる。Twitterも活用。
  7. mixiアプリを作る。iPhoneアプリも作る。
    • 求人が多いので、mixiアプリ制作には早い段階でなれておきたい。取り急ぎ、数ヶ月前に短冊メーカーを作った。
    • iPhone SDK Programming Manual iPhone SDK Programming Manualを買ってある。ちょっと早過ぎたかな。

といった感じ。
あとはこれらのゴールを細分化して、時間軸にまとめる。再考。OKだったら、NOだったらと分岐をつけて進化させる。

今まで、いっつも自分のスケジューリングと実行がうまく行かないから
勉強方法について悩んでいたんだけど、その方法と、実行ができそうに
なれた本に出会えたから、目標を書きたかったし、書けたってのもある。

それがこの本。

28歳までに結果を出す-勉強のルール

  • 目次
  • ◆プロローグ 28歳までに身につけるべき2つのこと
    ◆1章 28歳までに「勝ちパターン」をつくる3つの方法
    ◆2章 ステップ1「ジブン銀行」に投資するインプット術
    ◆3章 ステップ2「学び」を「成果」につなげるアウトプット術
    ◆4章 「結果を出す人」だけが知っている3つの鉄則

たぶん、今まで読んだ本にも書いてあったんだと思います。
けれど、改めてこの本を読んで、明確化されたんでよかったと思えた。
◆3章 ステップ2「学び」を「成果」につなげるアウトプット術 だけでも
読む価値あった。

それと今の勤務先で勉強会やらないし、先輩プログラマーがいないから
成長が遅いことが自分の中でダメなことだというループにはまってた。
8年間ECサイトの企画、開発、運営に携わってきたのに、今の場所に
自分がいるのは、自分自身の行動が足りなかったからだと思えた。
それを転職活動でいった企業の方に「勉強会に参加すればいいよ」って
面接で言われて、兼ねてからそういうのに参加したいけど・・・って
気持ちで前向きになっていなかったことのが、はっとした瞬間があった。

それで、
勉強会へ行こう!――「会社を辞めても困らない人」になるスピード成長法勉強会へ行こう!――「会社を辞めても困らない人」になるスピード成長法
を見つけて、即買いしました。冒頭の部分で、「こんな人が読んでほしい」みたいなことが書いてあって、それに当てはまること多数。

帯に書いてある、

  • 新しい知識、スキルが身につけたい
  • 広い視野をもちたい
  • ビジネスにもつながる気心の知れた人脈がほしい
  • 「転職のアテ」を確保しておきたい
  • 「毎日同じことの繰り返し」から抜け出したい

という点もですが、まえがきの

  • このままいまの仕事をつづけていても、知識やスキルや人脈は身に付かない。
  • 自分の方が会社に貢献しているのに、上司や先輩よりも圧倒的に給料が安い。
  • 毎日が同じことの繰り返しでウンザリするし、不安になる。

そんな不安や不満、閉塞感から解放される方法が勉強会なのです。という始まりがすごく自分の気持ちにさくっと入ってきました。

読み終えた頃には、将来の不安よりも、勉強会へ行くことの不安の方が、ちっぽけで、『聞くは一時の恥』という言葉のとおりになりました。

なかなか自分の今求めている勉強会ってないんですが、講師が見つかれば
主催してもいいかなって思ってます。
(高校の頃から、ライブイベントを何度も主催してきた私なので運営には
自信があります。)

2010年には29歳になり、20代最後の自分が待っています。

無駄ではないけど、スローライフだった私を
イケてるビジネスパーソンとしての
私というひとりの人間を作っていくため、その決意を
ここに表しておきます。

参考:[雑記]今年やったことや来年やりたいこと | hellkite 日記と雑記とメモ。

admin
comments