タグ

ブックマーク / ameblo.jp/principia-ca (24)

  • 『アメーバピグにおけるDB構成&対応記』

    2ヶ月前にインフルエンザとウィルス性胃腸炎でひどくダメージを受けた増田(@masudaK)です。アメーバピグは2009年2月に始まったサービスで、FLASH・Javaで作られています。そして、データストアにMySQLを用いてます。記事では、わたくしが2年ほど見続けているアメーバピグのDB環境について構成や、日々どのようにして問題と向き合っているかを紹介したいと思います。インフラ寄りの内容が多いため、アプリ寄りの話は弊社生沼の資料を御覧ください。 1. 構成と規模 1.1. 構成 まず構成ですが、読み書きはすべてマスターへ行うようにしています。そのため、スレーブには参照を向けず、ホットスタンバイとして使っています。バージョンに関しては2012年中旬までは5.0を使ってましたが、DC移転にあわせて5.5にあげました。ロック機能を用いたシャード構成をしてまして、2014年3月現在6シャードにな

    『アメーバピグにおけるDB構成&対応記』
    kamipo
    kamipo 2017/01/25
  • 『オンラインで安全にスキーマ変更可能なpt-online-schema-change』

    Amebaのソーシャルゲーム全般のインフラを担当しつつ賃貸マンションの間取りを眺めたり、 戸境壁の工法による防音性の違いについて日夜研究しています。 いつかD値が60以上のマンションに住みたいです。

    『オンラインで安全にスキーマ変更可能なpt-online-schema-change』
    kamipo
    kamipo 2016/10/29
  • 『画像システムの車窓から』

    2年半くらい画像システムを担当していたのですが、3月イッパイで異動することになりましたokzkです。 異動記念ということで、とりとめもなくエンジニアブログを書いてみます。長いです。よろしくお願いいたします。 画像システムのこれまでのストレージ事情最初にアメブロ(以下、単にブログ)のユーザ投稿画像関連でのストレージの歴史をアレコレをまとめてみようと思います。なお、以下swiftと書いたらOpenStack Swiftのことです。流行のプログラミング言語のことではありません。 はるか昔の状況昔は単純にWebDAVを複数台並べ、イッパイになったら更に次の世代のWebDAVを追加する、というような構成で、参照時に画像URLパスに含まれる年月ベースで適切な世代のWebDAVにルーティングしていました。 (参考:画像URLのパスの例) /user_images/20160401/00/shibuya/

    『画像システムの車窓から』
    kamipo
    kamipo 2016/04/21
  • 『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』

    サイバーエージェント公式ブログをご覧の皆さんこんばんは、インフラ&コアテク部の須藤(@strsk)です。普段はAmebaのソーシャルゲーム全般のインフラを見つつ、日語ラップの啓蒙をしながら弊社社員を素材にコラ画像をつくったりしています。好きなAAは麻呂です。 はい、というわけで今回はMySQLインデックスチューニングの基的な流れについてまとめてみました。 ソーシャルゲームは更新も参照もめちゃくちゃ多いです。数秒のレプリケーション遅延も致命的なので適切なテーブル、クエリとインデックス設計が重要です。(何でもそうですけど)インデックスが多くなると更新コストなどが懸念されますが、インデックスが正しく使われていないクエリを放置している方が悪です。そんなこんなで、割と例も偏ったりしてるかもしれませんがあしからず。 前提としてはInnoDBを想定しています。MyISAMはほとんど使っていません。

    『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』
    kamipo
    kamipo 2014/09/19
  • 『WebPの画質とファイルサイズを評価する』

    amebaは大量の画像をそのまま配信するだけでなく、ダイナミックに加工を行ったり画質を変えたりといった機能を備えたプロキシサーバも保有しており、そのアプリケーションの開発および運用を現在担っているのが私の属するチームになります。

    『WebPの画質とファイルサイズを評価する』
    kamipo
    kamipo 2014/01/10
  • 『burp suiteによる初歩のWeb監査』

    アメーバ事業部のセキュリティチームの伊藤と申します。 アメーバでは日々、新しいサービスを開発しています。セキュリティチームのお仕事には、それらのサービスにセキュリティ上の問題が存在していないかどうかを調査する(以下、監査)という事も含まれます。※監査専門のベンダに調査を依頼することもあります。 今回は、私たちセキュリティチームが、どのようにWebアプリケーションの監査をしているのか、その一部を簡単に紹介しようと思います。 ※エントリで紹介している手法は自分の管理しているサイト以外に適用しないでください ■Webアプリケーションの監査とは何を見ているのか 簡単にいうと、ブラウザ等から、Webアプリケーションサーバに対して送られるリクエストを変更して、サーバからの応答がどのように変わるのかを見ています。※ほかにもいろいろやっています。 ■具体的にはどうしているのか Webアプリケーションを

    『burp suiteによる初歩のWeb監査』
    kamipo
    kamipo 2012/10/12
  • 『MariaDB』

    はじめまして。サイバーエージェントインフラエンジニアをしていますSです。 よろしくお願いします。 現在、弊社ではMySQLの使用が多いのですが、 別のオープンソース・データベースとしてMariaDBを触ってみました。 MariaDBMySQLからフォークして立ち上げられたプロジェクトで、 インストール手順などはMySQLとほぼ一緒です。 MySQLを使用している方は何の違和感もなく導入できると思います。 その中で、今回は『MariaDB』の拡張機能や新機能を見てみました。 Storege Engine MySQLに含まれる(MyISAM、Blackhole、CVS、Memory、and Archive storage engine)のもの以外に以下をサポートしている。 ・Aria ・・・・・・・・・ MyISAMベースのMariaDB用ストレージエンジン ・PBXT ・・・・・・・ P

    『MariaDB』
  • 『大量のサーバを管理するために、IPMIのお話』

    ● OpenIPMIの導入IPMIは管理対象のサーバにドライバ等を入れておく必要はありませんが、OSからドライバ経由でIP設定などする場合は必要ですので、そういった場合は以下の手順でツールを入れてください。 yum install OpenIPMI.x86_64 yum install OpenIPMI-tools.x86_64 以下のデバイスファイルが作られていればハードウェアとして認識されています。 /dev/ipmi0 その場合は下記のように起動させてください。 /etc/init.d/ipmi start 認識されていない場合は以下のカーネルモジュールが読み込まれていないケースが多いと思います。手動でロードしてください。 /sbin/modprobe ipmi_si /sbin/modprobe ipmi_devintf 以下のようになっていればOKです。 # /sbin/lsmo

    『大量のサーバを管理するために、IPMIのお話』
    kamipo
    kamipo 2011/08/24
  • 『ピクシブ × サイバーエージェント 合同勉強会』

    こんにちはアメーバ事業部のブログDivでエンジニアをしているgenkiと申します。 今回は、今月開催されたピクシブ株式会社様との合同勉強会を初めて開催しまし たので、ご報告したいと思います。 ■勉強会の様子 ピクシブ株式会社様の受付には、数多くのイラストが展示されておりました。 当日は両社合わせて50名程度の参加者が集まりました。 プログラムは、セッション20分×4→LT×4→懇親会という流れでした。 以下では、セッションの発表内容をご紹介したいと思います。 ■ピクシブセッション1:「memcachedからKyotoTcoonへ」 久保達彦さん(twitter: @cubicdaiya)の発表になります。 memcachedからKyoto Tycoonへの移行までについてお話をしていただきました。 memcachedの運用では、UNIX Domain Socketでアクセスを行う事につい

    『ピクシブ × サイバーエージェント 合同勉強会』
    kamipo
    kamipo 2011/08/03
    Vagrantが良さげだった
  • 『Control Group、Linux Containerの紹介』

    Control Group、Linux Containerの紹介 | サイバーエージェント 公式エンジニアブログ はじめまして、ピグを開発しているfkeiです。 技術関連のブログ執筆を依頼されましたので、2月にアメーバ テクニカルナイト #2 で発表したControl Group、Linux Containerの紹介をしたいと思います。 cgroups(Control Groups) cgroupsは特定のプロセスグループ(1つ以上のプロセス)を分離し、リソース管理を行う仕組みです。 現在、OSレベルのサーバー仮想化やコンテナタイプのサーバー仮想化ソフトの内部で一部利用されているcgroupsですが、一般的にはLinuxのプロセスグループ制御を汎用的に行うための技術です。 外部から利用するためのライブラリには、libcgroup.soが用意されておりlibvirtや後述するLinux Co

    『Control Group、Linux Containerの紹介』
  • 『varnishについて』

    みなさん、こんにちは。 2010年9月入社のUDAGAWAです。 今回は、reverse proxyのvarnishに関して記事を 書かせていただきます。 ■varnishとは 高性能HTTPアクセラレータです。 同じような機能を持ったsquidより10~20倍高速だということが 売りのひとつだそうです。 ■背景 Amebaの画像配信システムは、reverse proxyとして squid2.7 STABLEのCOSSを使ったシステムを利用しています。 squid2.7自体が古いバージョンなので、できればバージョンアップしたいところ なのですが、現状 squid3系からはcossが使用できないこともあり varnishを検証しておこうと考えたのがきっかけです。 ■テスト環境 CentOS5.5 Kernel 2.6.18-194.3.1.el5 Varnish 2.1.3 ■インストール

    『varnishについて』
  • 『クックパッド × サイバーエージェント 合同勉強会』

    こんにちは、CAMP事業部システムG(以下CAMP)の畑史彦といいます。CAMPのシステムの開発・運用をしています。 ちなみに、サイバーエージェントというとAmebaのイメージが強いですが、このブログには遠山などCAMPのエンジニアも以前に何度かエントリを書いております。 さて、今回はいよいよ私がCAMPのシステムの裏側を・・・ではなく、先月末に開催された当社とクックパッド株式会社様との合同勉強会について報告させて頂きます。単にブログを振られただけで運営に携わっていたわけではないので、どちらかというと純粋に勉強会を楽しんでおりました。 ・勉強会の様子 当日は、外部の方を含めて80名以上の方にご参加頂きました。プログラムは セッション20分×4 → LT×3 → 懇親会 という流れでした。発表の後ろでは、なんと併設されたキッチンにおいて同時並行で懇親会用の料理が作られました。すごいですね。

    『クックパッド × サイバーエージェント 合同勉強会』
    kamipo
    kamipo 2011/06/17
  • 『大規模サービスを支える仮想ネットワーク』

    エンジニアブログをご覧の皆さんこんにちは、インフラエンジニアのすとーです。 僕はインフラの中でもネットワークチームで長らく働いてきたため、 今回はAmebaのネットワークまわりのお話をさせていただこうかと思います。 そこで、「ネットワーク基盤の変遷の歴史」を一歩踏み込んで、 その時々でポイントになった(と思っている)技術を、簡単な設定例と共に紹介していきます。 前提として、弊社ではルーティングはスタティックに行っており、 機器についてはCiscoとH3Cを7:3の割合ぐらいで利用しています。(ざっくり) 其の一 「VRF」 VRF(Virtual Routing and Forwarding)とは、ひとつのルータ内で仮想的に 複数のルーター(ルーティングテーブル)を作れる機能です。(ざっくり) 主な目的は、初期アメーバの余剰なネットワークリソースを、 マルチレイヤスイッチの導入で解消すると

    『大規模サービスを支える仮想ネットワーク』
  • 『アメーバで利用しているLuceneのMergePolicyについて』

    こんにちは。アメーバで検索を担当しているYASUDAです。 今日は、アメーバで利用しているオープンソースの検索エンジンであるLucene/Solr の新機能の一つをご紹介します。いつもLucene/Solrの恩恵を受けているので、少しでも普及に繋がると嬉しいです。 紹介するのはLucene 3.2以降のバージョンで利用可能となるTieredMergePolicyです。 以下に、LuceneにおけるインデックスのSegment構成、MergePolicyの概要、TieredMergePolicyの特徴とアメーバの対応について記述します。 ■ Luceneにおける転置インデックスのSegment構成 Luceneの転置インデックスは、各々が独立したSegmentという単位で構成されており、ドキュメントの追加分をflushする際、新しい世代番号を付けたSegmentを生成していきます(図1)。

    『アメーバで利用しているLuceneのMergePolicyについて』
  • 『株式会社ミクシィ様と合同勉強会を開催しました。』

    こんにちわ Ameba Technology Laboratory (以下ATL) 所属、通称アキバ組 の hattori です。 秋葉原オフィスの話もしたいところですが…今回は、先週末の金曜日に弊社渋谷オフィスにて 株式会社ミクシィ 様と合同勉強会を初めて開催しましたので、その際の様子を報告したいと思います。 ■ 勉強会会場の様子 当日は業務時間後の開催にも関わらず、両社合わせて90名程度の参加者が集まりました。 上写真のように結構な規模。 勉強会のプログラムとしては「 前半戦 : 30分セッション × 4 」+ 「 後半戦 : LT × 5 」という流れで、結構な長丁場でしたが、発表分野も多岐に渡り非常に内容の濃い勉強会でした。 以下では各セッションの発表内容を紹介していきたいと思います。 ( private な勉強会だった事もあり、全ての発表資料を公開する事はできませんがご了承くださ

    『株式会社ミクシィ様と合同勉強会を開催しました。』
    kamipo
    kamipo 2011/05/18
  • 『SSDをキャッシュデバイスとして使用できるFlashcacheの紹介』

    こんにちは。アメーバでインフラエンジニアをやっているSakamotoです。 今回はSSDをキャッシュデバイスとして使用できるFlashcacheについて書きたいとおもいます。 ■Flashcacheとは Facebookが開発したSSDをキャッシュ領域として使用し、 データを書きこむ際にHDDと同時にSSDに書き込み(ライトバック)を 行うことができるカーネルモジュールです。 データの読み出し時もSSDを参照するため高速になります。 Device-Mapper(論理/物理デバイスのマッピング機構)を使用しており、 OSからはキャッシュで使用する領域とデータとして使用する領域が 論理的に一つのスライスとして認識されます。 MySQLのInnoDB用に開発されたようですが、 上記のことから他アプリケーションでも通常のディスクとして キャッシュ領域を意識することなく使用することができます。 今回

    『SSDをキャッシュデバイスとして使用できるFlashcacheの紹介』
  • 『【研究レポート抜粋】P2P Replicated File Store の実装』

    上記表の通り、仮想ノードにより偏りは少なくなったが、仮想ノードの導入により以下の問題が発生する。 ノード追加時のデータコピーの局所性物理ノードだけでコンシステントハッシングを行う場合、ノードを追加した際は新ノードが配置される場所の次に位置するノードからデータをコピーするだけでよいという特徴がある。 しかし仮想ノードを導入すると仮想的なノードが入り混じる形で配置されるので、結果的に全ての物理ノードにデータコピーが発生する。 そのため、P2P Replicated File Storeではオンラインでのノード追加機能を諦め、ノード追加時には再起動による再配置に絞ることにした。 耐障害性 レプリケーション P2P Replicated File Store では、ファイルの格納時にノード側でレプリケーションを自動的に行う。 上図のようにシーケンシャルにファイルレプリケーションを行う。 非同期での

    『【研究レポート抜粋】P2P Replicated File Store の実装』
    kamipo
    kamipo 2011/01/27
  • 『サーバの構築作業やシステム管理を自動化する「Chef」』

    皆様、はじめまして。2010年9月に入社した並河です。 インフラ周りの話題を・・・ということで、今回はサーバの構築やシステム管理作業を楽にしてくれるツールである「Chef」について紹介します。 ■ Chefとは「Chef」は、サーバOSでのインストール・設定・各サービスの状態管理等、諸々のシステム構築や運用作業を自動化してくれるRuby製のシステム管理ツールで、オープンソースとして公開されており、既に、37signalsやEngine Yard、RightScaleなどでも使われており、利用実績も出始めています。 Ruby製のシステム管理ツールといえば「Puppet」を思い浮かべる方も多いのではないでしょうか。ChefはPuppetの競合ソフトウェアとなる位置付けで、出来ることだけでいうと、特別大きな差はないと感じていますが、Puppetは外部DSLとして設定を記載するのに対し、Chefは

    『サーバの構築作業やシステム管理を自動化する「Chef」』
    kamipo
    kamipo 2011/01/26
  • mysqlコマンドをより便利に安全にするための小粒なTIPS集|サイバーエージェント 公式エンジニアブログ

    初めまして。2010年の3月に入社した oinume です。新年1月からウィルス性胃腸炎に罹りながらもなんとかこのエントリーを書いています。今回は、mysqlコマンドに関する自分が今まで学んだ&教えてもらった細かい実践的なTIPSを紹介します。小粒ですが何かの役に立てば幸いです。 edit (¥e)コマンド mysqlプロンプトにいながら任意のエディタでSQLが編集できちゃいます。具体的には、mysqlコマンドでプロンプト待ちの状態で mysql> edit のように edit または ¥e と入力すると、環境変数EDITORで設定してあるエディタが立ち上がりSQLが編集可能になります。編集が終わったらエディタを終了して ; とやればSQLが実行されます。viなどターミナルで動くエディタに慣れている人は長いSQLを編集する時に重宝する機能でしょう。この技は前職の同僚に教えてもらって、以降便

    mysqlコマンドをより便利に安全にするための小粒なTIPS集|サイバーエージェント 公式エンジニアブログ
    kamipo
    kamipo 2011/01/19
  • 『アメーバを支える自作サーバのいままでとこれから』

    初めましての方は初めまして。知ってらっしゃる方はありがとうございます(※)。 アメーバでインフラエンジニアをしている桑野章弘と申します。id:akuwanoと言ったり、@kuwa_twでtwitterもやっています。 ※M.S.注...「桑野トラップ」でご存知の方、その節はどうも申し訳ありませんでした。 twitterではどうでもいいことかカレーの事をメインにつぶやいております。(って言ったら誰もフォローしませんよね、、、参加した勉強会の実況等もしています) 色々話したいことはあったりするのですが、今回は私の最初のエントリということもありまして「アメーバの自作サーバのこれまでとこれから」についてお話しさせていただければと思います。 え?キャッチーだからとかじゃ、、、ないですよ? ■ミルフィーユサーバの紹介 、、、それでは、気を取り直して。 まず、現在アメーバで主に使われている自作サーバと言

    『アメーバを支える自作サーバのいままでとこれから』
    kamipo
    kamipo 2011/01/19
    クワトロンかっこいい