第5回Amazon Redshiftのアーキテクチャ ~スケーリングとリストアを試してみよう 宮崎真,藤川幸一 2013-06-10
![Amazon Redshiftではじめるビッグデータ処理入門 記事一覧 | gihyo.jp](https://cdn-ak-scissors.b.st-hatena.com/image/square/7241c583676d54fc052c4388a6edd25e4c7f280b/height=288;version=1;width=512/https%3A%2F%2Fgihyo.jp%2Fassets%2Fimages%2Fgihyojp-ogp.png)
第5回Amazon Redshiftのアーキテクチャ ~スケーリングとリストアを試してみよう 宮崎真,藤川幸一 2013-06-10
はじめに みなさま、はじめまして。加藤と申します。最近注目を集めている仮想化技術の『コンテナ』に関する連載を始めることになりました。よろしくお願いいたします。 コンピュータの性能が向上し、仮想化という言葉も一般的になりました。従来はVPS等のサービスやIaaS、クラウドといったキーワードと共に語られることが多かった仮想化ですが、最近では開発者自身のPC上で仮想化を使ってテスト環境を作成し、使い終わったら消去するという使われ方が増え、仮想化技術を扱うエンジニアも、インフラエンジニアからアプリ開発者まで広くなりました。 また、従来は仮想的なマシンをコンピュータ上で実現するVMware、Hyper-V、KVMといった技術が話題になることが多かったことに対し、最近ではImmutable Infrastructureといったキーワードと共に『コンテナ』が話題になることが増えました。『コンテナ』とは
今回は、LXCで用意したコンテナにHHVMをインストールし、PHP(言語)とHack言語を体験するレシピです。 HHVMとは HHVM(HipHop Virtual Machine)とは、Facebook社によって開発されたOSSです。PHP(言語)のコードの実行を、現在標準的に使われているPHP(実行環境)よりも高速化することを目的としています。特徴は、PHPのコードを専用の中間表現のバイトコード(HHBC)に変換し、このバイトコードを専用の中間表現(HHIR)に変換して最適化を施した後、x86-64あるいはARM64のマシンコードにJust-In-Timeコンパイルする点です。 先日、このHHVMのバージョン3.0.0が公開され、合わせてHackという新しい言語も公開されました。HHVMはPHPに加え、このHackの実行環境にもなります。 Ubuntu用にHHVMのパッケージを提供する
Ubuntuは人気のあるLinuxディストリビューションの1つですが、いかに人気があっても、隣近所にユーザーがいるとは限りません。困っているユーザーをサポートするために、フォーラムやメーリングリスト、IRCチャットが運用されていますが、操作や設定方法を的確に文章で伝えるのは、なかなか難しいことです。 そこで今回は、コミュニケーションの助けとなるかもしれない、スクリーンレコードに関するレシピをお届けします。 SimpleScreenRecorder スクリーンレコードとは、現在ディスプレイに表示されている画面をビデオに保存する機能です。見えているものがそのままビデオとなるため、直感的に物事を伝えるのに適しています。 Ubuntuではこの用途を満たすRecordMyDesktopのパッケージが利用可能です。しかしこのソフトウェア自体の操作方法に慣れが必要で、不満を持つユーザーも少なくありません
複数台のPCでパッケージのインストールを高速化するためにapt-mirrorを使用している、という例を見かけることがちらほらあります。APT用のキャッシュプロキシがあまり知られていないようなので、今回のレシピでは、APT用のキャッシュプロキシとapt-offlineによるオフライン環境でのインストールについて紹介します。 複数PCでのインストールを高速に行う Ubuntu搭載のPCや仮想マシンを複数台動かしている場合は、インストールやアップデートの際に各PCで同一のパッケージをダウンロードするため、時間がかかったりネットワーク帯域を浪費しがちだったりします。クラウド環境で、数十台~数百台単位でサーバーを管理している場合ならなおさらです。そういった場合は、リポジトリのミラーを作成するか、キャッシュプロキシを利用すると、パッケージ取得が高速に行えます。 前者は、本連載の第47回でapt-mir
昨年は第288回や第294回で、Ubuntuのサービスオーケストレーションツールである「Juju」を紹介しました。今回はWebブラウザを使ってサーバー上にさまざまなサービスをデプロイできる「Juju GUI」を紹介しましょう。 Juju GUIとJuju Quickstart 「Juju GUI」は、JujuをWebブラウザから操作できるサーバーサイドのツールです。Node.jsベースで実装されており、サービスの状態の確認、ドラッグ&ドロップでのサービスのデプロイ、Webブラウザからのサービスの設定変更やスケールアウト・バック、設定のエクスポートやインポートなどが行えます。実際の動作は、Jujuのデモページを見ると良いでしょう。 Juju GUIをデプロイする Juju GUIはCharm(Jujuでは、サービスをデプロイするために必要な処理を書いたスクリプト群をCharmと呼びます)とし
前回、「これまでの記事で取り上げたコードを、テスト駆動ベースに移行していく」と書きました。さっそく、取り組んでいきましょう。その中で「コードをすべて失ってしまったとしても、テストが無事なら元と同じ品質のコードをもう一度書くことができる」かどうかを確かめていきましょう。 今回取り上げるプログラム 今回取り上げるのは「PHPでNゲージ模型を自由自在に動かそう」です。第1回のリスト1は、以下のようになっていました。 リスト1 「Nゲージ」第1回リスト1より #! /usr/local/bin/php <?php $url = "http://192.168.0.100/"; file_get_contents($url."?00=C"); file_get_contents($url."?01=D"); file_get_contents($url."?02=D"); file_get_co
プロローグ 読者の方で、次のように思っていらっしゃる方は、どれくらいいるでしょうか。 「いちばん重要な財産はコードであり、万一コードを失ってしまったら、元と同じ品質のコードをもう一度書くのはとても大変だ」 筆者も長年このように思っていました。では、もし以下のように考えたらどうでしょう。 「いちばん重要な財産はテストであり、万一コードをすべて失ってしまったとしても、テストが無事なら元と同じ品質のコードをもう一度書くことができる」 今までとずいぶん違う考え方ですね。いろんな声が聞こえてきそうです。 「コメントはどうするんだ」 「テストが複雑すぎて保守できなくなったらどうするんだ」 ごもっともです。テスト駆動開発は万能ではありません。うまく適用できない場面もあり、このときは従来どおりのやり方が必要です。たとえば、デバイス制御(あるタイミングでI/Oポートを叩くとか)などは、保守可能なテストを書く
先月公開した第288回では、Ubuntuのサービスオーケストレーションツールである「Juju」を使ってAmazon Web Service上のUbuntuインスタンスを作成したり、スケールする方法を紹介しました。今回はAmazon Web Serviceではなく、LXCを用いて「ローカルにデプロイする方法」を紹介しましょう。 Juju on LXC LXC(Linux Containers)は第226回でも紹介した仮想化ソフトウェアです。Linuxカーネルの機能を使っているため、Linuxカーネルが動く環境であれば、どのホストやゲストでも動かすことができます。たとえば、現在スマートフォンやタブレット向けに開発している「Ubuntu Touch」は、Ubuntu用にカスタマイズしたLinuxカーネルとUbuntu環境を動かしつつ、その中でLXCを使ってAndroidの仮想マシンとAndroi
MBaaS徹底入門――Kii Cloudでスマホアプリ開発 第5回Kii Cloudを用いたチャットアプリケーションの開発[その1]―ユーザサインアップ/サインインの実装 前回はKii Cloudを用いたアプリケーション開発環境のセットアップを行いました。そしていよいよ今回から、Kii Cloudを用いた「チャットアプリケーション」の開発を行っていきます。 この連載で開発したアプリケーションについては、GitHub上にて全体のコードをApache License, Version 2.0のライセンスで公開いたします。アプリケーションのコードや細かい動作など、お手持ちの開発環境や端末にてぜひ確認してみてください。 https://github.com/KiiPlatform/KiiChat-gihyo/tree/Vol.5 チャットアプリケーションの機能 今回開発するチャットアプリケーション
隔週連載groonga 第10回[実録] MySQL向け全文検索エンジン「Tritonn」から「mroonga」への移行ガイド(3) こんにちは、株式会社リブセンスの吉田健太郎です。第8回に続いて、私が体験したTritonnからmroongaのシステム移行プロジェクトを舞台裏からお届けします。 これまでのあらすじ 将来的な技術負債を残さない、そしてInnoDBの性能向上等の恩恵を受けるため、もはやレガシーとなったMySQL 5.0を捨てて、MySQL 5.6への移行を行いたい。しかしSolrへ乗り換えるほどでもなく、引き続きシンプルにSQLを用いた、リレーショナルな日本語対応の全文検索を使いたい。この構想を実現するため、groongaのMySQLバインディング版である「mroonga」を用いた、MySQL 5.6への移行プロジェクトが始動しました。 これまでの記事と、主なトピックは次の通り
日中は厳しい残暑が続くものの、朝夕は多少過しやすくなり、夜の時間もずいぶん長くなってきました。「読書の秋」への準備、というわけでもありませんが、授業で使う参考資料をまとめて自炊した勢いで、本棚に眠っていた重い本も何冊か電子化してみました。 それらの中には数百ページのハードカバー本も含まれます。ハードカバー本は値段も高く、作りもしっかりしているので、分解することに心理的、物理的な抵抗はあったものの、思いきって電子化してサイズや重さの制約から解き放ってみると、以前よりもずっと頻繁に目を通せるようになりました。移動中や外出先での空き時間に、数百ページもあるハードカバー本を手軽に読めるのは、電子書籍ならでは魅力でしょう。 しかし、自炊電子書籍が増えてくるにつれ、それらをもっと読みやすくできないだろうか、と思うようになりました。たとえば、紙の本では製本上の都合もあって、本文の周囲にはかなり広い余裕
例えばPHP 5.4.xとMySQL 5.6.x環境を用意する際、mysqlndが採用できれば後述の手順において、PHPのRPMパッケージ作成は省略可能です。つまり、mroongaのRPMパッケージ作成のみで導入できます。しかし事情により、mysqlndが使えず従来のlibmysqlclientが必要な環境の場合には、PHP・mroongaそれぞれのRPMパッケージを後述する手順で作成します。なお、iusの提供するmysql56u-develパッケージにはmroongaのビルドに必要なlibmysqlservices.aが不足しているため、オラクル公式のRPMパッケージを利用して紹介します。 Remiリポジトリ・IUSリポジトリのインストールについては、公式サイトが参考になります。 Remiリポジトリ : http://rpms.famillecollet.com/ IUSリポジトリ :
第276回 Ubuntuオフラインミーティング2013.05 Tokyo――IT屋ではない人からみた体験レポートよりバトンを渡されてから大変遅くなってしまいました。今回は幅広く使われているアプリケーション開発フレームワークのQtについて紹介します。また、UbuntuにおいてのQtも紹介します。 Qtとは Qt(キュート)とは、プログラミング言語C++で書かれたクロスプラットフォームな開発フレームワーク[1]です。たとえば仮想化ソフトのVirtualBoxは、Linux・Windows・Macで動作します。これには扱いやすいフロントエンドGUIがありますが、これはQtで作られています[2]。また、扱いやすいQtCreatorというIDEで快適にプログラミングをすることができます。 図1 QtCreator 次のような特徴があるため、プログラミング初心者から上級者までお勧めできるフレームワー
スマホが世界を席巻する 日本国内で販売される携帯電話の大半はスマートフォン(以降スマホ)になりましたが、世界に目を向けてみると、スマホのユーザ数はすでに10億人規模に達していて、今年1年だけでも新たに約10億台が出荷されると言われています。2013年はインストールベース(ユーザの手元で使われている台数ベース)でもタブレットを含むスマホのインストールベースがPCを抜いてしまうと言われており、スマホの拡大はますます勢いづいています。 求められるスマホアプリ開発者 スマホのユーザが増えると同時に、アプリの開発を始める開発者の方も増えてきました。多くの場合アプリ開発はあるアイデアから始まります。そのアイデアは、自分が日常感じている問題をうまく解決できる方法を思い付いたところから始まる場合もありますし、自分が得意な分野を対象としてアプリのストア(App StoreやGoogle Play)に置かれて
はじめに 第7回はRails以外のWebフレームワークの簡単な紹介と、SinatraでHello Worldアプリケーションを動かすところまでを解説しました。今回はSinatraで実際のアプリケーションを作り、SequelとHamlという2つのライブラリを紹介します。 Sinatraの特徴は、CGIスクリプトのようにファイル一つからアプリケーションが書ける気軽さです。CGIスクリプトといえば、代表的なものは何と言っても掲示板(BBS)です。そこで、今回はSinatraで掲示板アプリを作ってみました。ソースコードが少し長めなので、githubにて全文を公開しています。適宜参照しながら読み進めて下さい。ファイル構成は以下のようになっています。 start.rb アプリケーションの本体。 model/comment.rb 掲示板の書き込みを表すモデルの定義。 view/index.haml トッ
前回のMilkodeでの事例紹介では、Rubyでrroongaを使ってソースコード検索エンジンを実装している事例を紹介しました。Milkodeは全文検索エンジンを組み込むことにより、大量のファイルに対しても高速な検索を実現しています。rroongaを使った代表的なアプリケーションの1つです。プログラマにとってとても便利なアプリケーションなので、ぜひ使ってみてください。 前回はユーザ視点からのrroongaの紹介でしたが、今回は違った角度から紹介します。rroongaの歴史、大事にしていることについて説明します。 自分のアプリケーションで利用するプロダクトを検討するときに、プロダクトがどのような方向で作られているかを考慮していますか? 自分のアプリケーションが大事にしたいことをそのプロダクトでも大事にしているなら、相性がよいかもしれません。さて、rroongaはあなたが大事にしたいことを大事
今回でこの連載も最終回です。これまでAmazon Web Services、さくらのクラウド、Windows Azure、Google App Engineについて触れてきました。最終回ということでこれらのベンチマークを比較してみたいと思います。 unixbenchで比較 Amazon Web Services(AWS)、さくらのクラウド(以降さくら)、Windows Azure(以降Azure)は、IaaS(仮想サーバ)がありますが、Google App EngineはPaaSなので単純な比較はできません。まずは前者の3つについて、比較をしてみましょう。 今回はパフォーマンス計測の定番、unixbenchで比較をしてみました。 https://code.google.com/p/byte-unixbench/ 計測対象は下記の通りです。 ディスクについては、AWSではProvis
第3回次期バージョン1.8に見るTestLinkの過去・現在・未来 TestLink日本語化部会 2008-10-17
はじめまして、おんがえしと申します。 今回は私が作っているソースコード検索エンジンのMilkodeにて、rroonga(とその内部で動くgroonga)がどのように使われているのかを紹介します。 Milkodeの検索画面 ソースコードを検索するということ プログラマの仕事はプログラムを書くことですが、同じくらい「検索する」ことは多いのではないでしょうか。 ある関数の名前を変えたいので使っている箇所をすべて見つけたい ライブラリの仕様が変わった。使っているコードはどこだったか? コードリーディング中。今読んでいる関数の実体はどこにあるのか? ベーマガを買ってゲームのプログラムを写経していた頃から時代は進み、WebにアクセスすればゲームやOS、Webアプリなどのソースコードを無料[1]で手に入れることができるようになりました。必要なものをソースコードから検索し、知識として取り込んでいく技術は今
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く