タグ

ブックマーク / codezine.jp (19)

  • クラウド・ネイティブのお作法(2)「リトライ」~効率的なリトライ手法「Exponential Backoff and jitter」とは何か

    こんにちは。アマゾンウェブサービス クラウドサポートエンジニアの小武です。Amazon EC2、Amazon RDS、Amazon Redshiftなどのサービスの他、AWSの内部を支える裏側の技術に日々Dive Deepしています。連載ではAWSサポートのエンジニアがそれぞれ「今一番AWSユーザーに伝えたいこと」を連載の形でお届けしています。 私の担当回では、AWSという巨大な分散システムを支える技術要素のうち、アーキテクチャ設計、プログラミング技術のいくつかについて見ていきたいと思います。これらは、AWSの内部を支える技術というだけでなく、皆さんのアプリケーションをダウンタイムゼロのシステムに近づけるための基礎技術、クラウド・ネイティヴなアプリケーションを構築する基礎的なテクニックとも言えると思います。 その基礎的なテクニックは大きく、下記の4つがあります。 非同期処理(Asynch

    クラウド・ネイティブのお作法(2)「リトライ」~効率的なリトライ手法「Exponential Backoff and jitter」とは何か
    hirose31
    hirose31 2018/05/24
  • AWSリージョン間通信向上と今後のエコシステム

    中国リージョンの開設アナウンスが記憶に新しいAWSですが、新規リージョンが増加することによってグローバルのインフラ展開、例えばマルチリージョンでのHA(高可用性)構成やDR(ディザスタリカバリ)サイトの構築で、より活用できる機会が広がったといえるのではないでしょうか。こうしたシステムを構築する場合、リージョンの選択肢が多いのは大きなアドバンテージとなり、クラウドの利便性からすぐに扱えるiDCがその分増えたということになるかと思います。 一方で、複数のリージョンでシステムを構築・運用する場合、リージョン間はファイル転送など何らかのデータのやり取り(DRサイトであればバックアップデータなど)が必要です。そのため、リージョン間転送における遅延などのコネクティビティ面に懸念があり、この部分に関しては、広帯域なプライベートグローバルネットワークを要するSoftLayerなどに優位性がある状況が続いて

    AWSリージョン間通信向上と今後のエコシステム
  • HTML5とCSS3を使ってスマートフォン向けサイトを構築 - iPhone版Yahoo!JAPANトップの開発事例紹介

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

  • グリーCTOが語る、大規模ソーシャルゲーム開発の舞台裏

    9月1日、ゲーム開発者向けカンファレンス「CEDEC 2010」において、SNSGREE」を運営するグリー株式会社(以下 グリー)が『大規模ソーシャルゲームのつくりかた ~60分でわかるサーバサイド技術~』と題するセッションを講演した。 一日あたり億単位のトラフィックを捌くインフラはどうなっているのか。技術者2名が解説したインフラ構築のノウハウや、ソーシャルゲームと一般のオンラインゲームとの違いについて紹介する。 オンラインゲームとソーシャルゲームとの違い 最近テレビCMでも目にする機会が多くなってきたSNS(ソーシャルネットワーキングサービス)の「GREE(グリー)」。2010年6月時点の数字で、会員数2059万人、月間353億ページビューという言わずとしれた大人気サイトだ。中でも携帯電話向けソーシャルゲームが特徴的で、専用機向けのゲームと比べるとコアゲーマー以外のプレイヤーも多く、利

    グリーCTOが語る、大規模ソーシャルゲーム開発の舞台裏
  • mixiアプリで始めるOpenSocial入門(1) ――OpenSocialの概要とmixiアプリ

    複数のSNSサイトで共通に使える開発プラットフォームを提供する「OpenSocial」。連載では、OpenSocialをサポートしているmixi上で実際にアプリケーションを作成しながら、OpenSocialのさまざまな機能に触れていきます。第1回は、OpenSocialの概要を紹介します。 OpenSocialとは SNS(Social Networking Service:ソーシャル・ネットワーキング・サービス)は、その名の通りソーシャルな(≒人間関係の)ネットワークを、インターネット上で構築するサービスです。2005年頃から着実に普及を続け、今や膨大な会員数と、さらに膨大な数の会員同士のネットワーク情報を抱えるようになっています。SNSの基的な機能としては、次のようなものがあります。 人を検索し、自分の友人として登録する機能 他の人とメッセージをやり取りする機能 自分のプロフィール

    mixiアプリで始めるOpenSocial入門(1) ――OpenSocialの概要とmixiアプリ
  • ファイルディスクリプタについて(1) ~ファイルディスクリプタの概要

    ファイルディスクリプタは、プログラムの外部との入出力を行う抽象的なインタフェースです。Unix/Linuxのファイルディスクリプタは、一般的なファイルだけでなくデバイスやソケットやパイプも対象としています。当連載は、ファイルディスクリプタの機能や管理方法などを提示します。第1回では、ファイルディスクリプタの概要を紹介します。 はじめに ファイルディスクリプタ(Windowsではファイルハンドル)は、プロセスや実行ファイルにとって外部の資源にアクセスしたりアクセスされたりする際に使用される抽象的なインターフェースです。 今日のプログラムは必ずと言っていいほど外部とのインターフェースを持っていますが、新しいディスクリプタや効率的な使い方がそれほど明確ではなかったりします。 当連載では、ファイルディスクリプタに関する調査・試行錯誤した結果、新しいディスクリプタを使用した感想や効率的な管理方法など

    ファイルディスクリプタについて(1) ~ファイルディスクリプタの概要
    hirose31
    hirose31 2010/03/08
    epoll eventfd timerfd signalfd
  • 分散キー・バリュ型データストア「kumofs」公開 memcachedと互換性のあるプロトコルを実装

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    分散キー・バリュ型データストア「kumofs」公開 memcachedと互換性のあるプロトコルを実装
  • 「膨大なデータを分析して見えてくること」ニコニコ動画データ分析研究発表会

    最大の動画投稿サービス「ニコニコ動画」は、動画上を流れるコメントや、自由に編集できるタグ機能といった特徴を持ち、単なる動画共有サービスにとどまらず、コミュニティサイトとしての側面も持つ。多くの人がアクセスする中で「アイドルマスター」「初音ミク(VOCALOID)」「東方プロジェクト」など、いろいろなムーブメントが生まれてきた。 今も毎日多くの動画が投稿されており、各動画は「再生数」「コメント数」「マイリスト数」などの情報がわかるようになっている。すでに投稿動画数は200万を超えるが、これら膨大なデータを分析することで、どんな現象やコミュニケーションが起きているのかを明らかにしようとするのが今回の発表会の目的である。 分析する際の2つの障壁 独自にデータ収集が必要であること しかし、そもそもニコニコ動画自体はデータを分析しやすいように広く提供しているわけではない。1つ1つの動画の再生数

    「膨大なデータを分析して見えてくること」ニコニコ動画データ分析研究発表会
  • AWSの概要と登録手順 ~Amazon EC2/S3環境構築のすべて~

    はじめに~クラウド・コンピューティングとは?~ 近頃、“クラウドコンピューティング”と呼ばれる、インターネット(クラウド)の向こう側でアプリケーションサービスや、サーバなどのハードウェアリソースを提供するサービスが急増しています。 ユーザーはインターネットにさえ接続できれば各種サービスを利用でき、そのサービスがどこで動いているかなど、サービスインフラを意識する必要がありません(図1)。そして、それらのサービスは無料、もしくは利用した分だけ課金される形態となっており、利用にあたり多くの初期投資を必要としません。 このクラウドコンピューティング・サービスを牽引する企業の1つが、米国のAmazon.com Inc.です。Amazonはクラウドコンピューティング・サービスを「Amazon Web Services(AWS)」という名称で展開しています。 連載では、この「Amazon Web Se

    AWSの概要と登録手順 ~Amazon EC2/S3環境構築のすべて~
  • Perlコミュニティ活動で宮川達彦氏が日本人で初めて「白駱駝賞」受賞:CodeZine

    オープンソースのプログラミング言語であるPerlは、多くのボランティアの努力によって支えられている。白駱駝賞(The White Camel Awards)は、そうしたコミュニティ活動における貢献者を称えるため、1999年のPerlカンファレンスではじまった。現在ではPerlファウンデーションが毎年OSCONで発表する形となっており、昨年はティム・オライリー(Tim O'Reilly)氏も受賞している。 今年の白駱駝賞は、7月21日から25日まで開催されているOSCON 2008の2日目夜のイベント「Tuesday Evening Extravaganza(火曜の夜は大騒ぎ)」で発表された。受賞者は、宮川氏のほか、オーストラリアのPerlコミュニティからヤシンタ・リチャードソン(Jacinta Richardson)氏と、イスラエルでYAPC::Israelなどを主催するガボール・ザボ(

    hirose31
    hirose31 2008/07/24
    おめでとうございますー\(^o^)/ 【宮川氏は「決して眠らない」と噂されるほど。】
  • Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

    はじめに この連載では、大規模分散計算フレームワーク「Hadoop」と、その上につくられた大規模分散データベース「hBase」の仕組みと簡単なサンプルアプリケーションを紹介します。HadoopとhBaseは、Googleの基盤ソフトウェアのオープンソースクローンです。機能やコンセプトについては、Googleが発表している学術論文に依っています。 これらの学術論文によると、Googleでは大規模分散ファイルシステム「Google File System」、大規模分散計算フレームワーク「MapReduce」、大規模分散データベース「BigTable」、分散ロックサービス「Chubby」という4つのインフラソフトウェアが使われています。 図1にGoogleの基盤技術間の依存関係、そしてそれに対応するOSSの対応関係を示しました。まずは対応するGoogleの基盤技術それぞれの機能や特徴をざっくりと

  • pthreadについて(概要・生成):CodeZine

    はじめに スレッド(thread)は、代表的な非同期処理の仕組みの1つで、例えるならプロセスの中で動くプロセスという感じで、軽量プロセス(lightweight process)と呼ばれたりもします。pthreadはPOSIXが仕様化したスレッドモデルで、POSIX仕様を満たしているOS間では基的には移植が可能ですが、個人的な感想では、主にUNIX系OSで使用されているようです。 大変便利なんですが、しかし複数のスレッドを矛盾無く動かす事はとても難しく、またデバックも困難で、作りを誤ると環境次第で動きが違ったりします。有用な実装方法はネット上でもそれ程見当たらず、も少ないうえに英文を強引に訳してるだけの古いばかりで、なかなか理解が困難だと思います。 当レポートはpthreadに関する調査・試行錯誤した結果、躓きやすい箇所、実装依存と思われる箇所等、独断と偏見と誤解とたくさんのサンプル

    hirose31
    hirose31 2007/12/29
    how to
  • CodeZine:DeNAの人気サイトに学ぶ LAMPによるWeb-DBシステム構築/運用の極意(前編)(モバオク, モバゲー)

    シングルマスタの非同期レプリケーション機能では、マスタサーバーが1台に限定され、マスタからスレーブへの複製は非同期で行なわれるため遅延が生じ、短時間のスケールで見ると全スレーブとの同期が保証されない。しかし、その反面スレーブの台数を増加させていってもマスタサーバーの更新負荷は大きくならず、スケーラビリティを維持できるという利点がある。DeNAによる運用実績でも、マスタとスレーブ間の遅延は通常数秒程度以内に収まる。 このレプリケーションを利用する場合、アプリケーション側ではデータ更新時にはマスタサーバーへ接続し、データ参照のみを行なう場合はスレーブサーバーへ接続するように作成する必要がある。 Webや携帯電話向けサービスの場合、小さな規模で始めてユーザー規模、データ規模、ページビュー数を徐々に増加させていくことが多い。小さな規模のためDBの負荷分散が不要な場合でも、マスタサーバー1台、スレー

    hirose31
    hirose31 2007/08/01
    テーブル分割/ロードバランサじゃなくてDNSラウンドロビン
  • Google、MySQLを強化するパッチを無償リリース:CodeZine

    Googleは、同社の製品開発の中から生まれたMySQLを強化するパッチを公開した。GoogleのWebサイトから無償でダウンロードできる。 このパッチはMySQLの扱いやすさと信頼性を向上させる目的で作られており、主にスレーブサーバ(レプリケーションとなるサーバ)の機能を強化させることができる。例として、スレーブサーバが更新通知を受け取らない限りマスタサーバを更新させない機能や、再起動なしでスレーブサーバをマスタサーバに置き換える機能などが備わっている。 他にもアクティブになっているアカウント・テーブルをモニタリングするものや、クライアント/MySQL通信のための高速な圧縮機能なども用意されている。 ちなみに、このパッチはLinux上で動作するInnoDB用に最適化されたものとなっている。その理由としてGoogleは「我々がInnoDBを使っているため」と説明している。また、現在パ

  • CodeZine:「超高速、完全自動、しかもフリー」 WebテストツールのGITAK公開(TIBCO, 開発ツール)

    TIBCOは、オープンソースのWebサイトテストツール「TIBCO General Interface Test Automation Kit 0.7」(GITAK)を公開した。TIBCO Developer Networkより無償でダウンロードできる。 「TIBCO General Interface Test Automation Kit」は、Webサイトの入力チェック、ボタンの動作内容、JavaScriptの動作などを自動で一気にテストできるツール。すべてのテストがブラウザで完結するのが特徴だ。ダウンロードファイルにはサンプルが含まれているので、試しに動作させてみることができる。 1.GITAKの入手 TIBCO Developer Networkよりファイルをダウンロードし、解凍する。 2.TestRunner.htmlの起動 解凍してできたフォルダから「/gitak/c

  • CodeZine:Google、C++開発者のための4つのライブラリを公開(オープンソース, グーグル)

    Googleは、C++開発者のための4つのライブラリを公開している。 公開されているのは、C++/Python向けコマンドラインライブラリ「gflags」、高速なマルチスレッドmallocのコレクションで、TCMalloc、heap-checker、heap-profiler、cpu-profilerを含む「perftools」、パフォーマンスの高いハッシュマップを実現している「sparsehash」、基的だが使い勝手のよいテンプレートの「ctemplate」。それぞれ無償でダウンロードすることができる。 詳細は下記Webサイトを参照のこと。 Google Code Four Google open source tools on Google Code google-gflags google-perftools google-sparsehash google-ct

    hirose31
    hirose31 2007/03/29
    sparsehash >高速なマルチスレッドmallocのコレクションで、TCMalloc、heap-checker、heap-profiler、cpu-profilerを含む「perftools」
  • Google流プログラミングの真髄を筑波大学で見てきた:CodeZine

    Google Desktop SDK 次に、Googleプロダクトマネージャーの石原直樹氏により、Google Desktop SDK、Google Desktop Gadgetsの説明が行われた。 先ほどの話と混乱しやすいが、Googleのガジェットには大きく2種類ある。一つが先ほどのWebページ用の「ユニバーサルガジェット」、もう一つがGoogleデスクトップ用の「デスクトップガジェット」だ。 「Googleデスクトップ」をインストールすると、ローカルマシン内のファイル検索をGoogleのWeb検索と同じように行える(デスクトップサーチ機能)他、デスクトップやサイドバーにデスクトップガジェットを追加できるようになる。 デスクトップガジェットも、ユニバーサルガジェットと同様に、ニュースやWebサービスの情報表示、時計、ゲーム、カレンダーなど、様々なものが用意されている。デスクトップガジェ

    hirose31
    hirose31 2006/12/22
    Googleという会社
  • プログラミングと開発者のためのCodeZine:サイズと日付でローテートするLog4jのAppender作成(Log4j, ログ, ローテーション, Java)

    はじめに Apache Logging Services Projectが提供するLog4jは、ファイルサイズによってログファイルのローテーションを行うRollingFileAppenderや日付でローテーションを行うDailyRollingFileAppenderを提供しています。 しかし、ファイルサイズと日付の両方でローテートするAppenderは提供されていないため、両方の機能を同時に利用することはできません。また、DailyRollingFileAppenderを利用する場合は、バックアップログファイル数を設定できないため、Disk Fullへの対策を検討する必要があります。 稿ではRollingFileAppenderとDailyRollingFileAppenderの機能を組み合わせたAppenderを作成する方法を紹介し、その利用方法について示します。対象読者 Javaプロ

    hirose31
    hirose31 2006/10/10
    ファイルサイズと日付の両方でローテートする
  • Perlで作るモバイルサイトのコツ:第3回:CodeZine

    はじめに ご存知の通り、携帯端末には現在地の位置情報を基地局ベース、もしくはより精度の高いGPSを使用して送信する機能がついています。この機能を使用して、現在いる場所の地図を表示したり、最寄り駅を表示したりするサービスが各社から提供されています。 位置情報の送信・取得方法はキャリアごとに異なりますが、仕様さえ理解すれば個人で運用しているサイトにも簡単に導入できます。まだ試したことのない方は、この機会にぜひお試しください。対象読者 PerlCGIアプリケーションを作成したことがあり、位置情報を利用したい方。必要な環境 Perl 5.8以上が動作する環境。iモード 「オープンiエリア」 ドコモが提供する基地局ベースのエリア送信サービスで、すべてのiモード対応端末で利用できます。「NTTドコモ 作ろうiモードコンテンツ:オープンiエリア」で仕様が公開されています。 下記のパラメータをドコモの位

    hirose31
    hirose31 2006/10/05
    位置情報の送信・取得方法
  • 1