Monthly Archives: September 2014

Container-optimized Google Compute Engine imagesを使ってみる

GCEのインスタンスイメージの中には、インスタンス起動時のコマンドにオプションを指定することで、インスタンス起動と同時にそのインスタンスで稼働するコンテナを起動することができるものがある。これは、Container-optimized imageと呼ばれている。

ハンズオン

この記事では、Container-optimized imageを利用して、実際にインスタンス起動と同時にコンテナを起動してみる。

  1. 使用可能なContainer-optimized imageの確認

    まずは使用可能なContainer-optimized imageのイメージを確認する。Container-optimized imageはgoogle-containersプロジェクトにて管理されているので、–projectオプションでgoogle-containersを指定する。

    コマンドの結果、google-containersプロジェジェクトで最新のVMイメージはcontainer-vm-v20140826(記事執筆時現在)である。

  2. マニフェストファイルを準備する

    インスタンス起動時にコンテナを起動するためには、コンテナ情報を記載したyaml形式のマニュフェストファイルを定義する必要がある。マニュフェストフィアルの定義方法の詳細は、こちらに記載してある。下記の指定により、起動したコンテナはポート8080番でリッスンをし、アクセスがあれば”hello world!”の文字列をレスポンスする。

    ちなみに、ports以下の記述により、ホスト(Container-optimized imageを使って起動されるインスタンス)のポート8080番と作成されるコンテナのポート8080番がバインディングされるため、ホストの8080番にアクセスするとコンテナの8080番にアクセスすることができる。

  3. Container-optimized imageを使用したインスタンスの起動

    1で確認したcontainer-vm-v20140826イメージ、2で作成したyamlファイルを指定して、GAEインスタンスを起動する。
    数十秒程度でインスタンスが起動する。

  4. インスタンスへログインし、コンテナの起動を確認する

    gcloudコマンドでインスタンスへsshログインをした後、docker psコマンドを実行し、コンテナが起動していることを確かめる。

    想定通りhello world!がechoされ、コンテナが起動されていることを確認できた。

  5. 外部からコンテナにアクセスできるようにする

    ついでに、ホスト上からだけでなく、リモートからもアクセスできるようにしてみる。具体的には、8080番ポートのアクセス許可するfirewallの定義を作成する。

    次にアクセス先のインスタンスのIPアドレスを調べる。

    最後に対象インスタンスのexternal-ipのポート8080番にアクセスしてみる。

    無事にリモートからアクセスすることを確認することができた。

所感

いとも簡単にGCEインスタンスの起動と同時にコンテナを作成することが出来た。この技術自体はKubernetesの設計にもつながっている仕組みであり、コンテナのオーケストレーションのキーとなるような技術である!と感じた。この後は、複数コンテナの起動やらKubernetesを触ってみて勉強する予定です。

3331α Art Hack Day

8/23, 9/6, 9/7と3331αが開催するHackathonに参加してきました。

3331αとは

3331α(3331アルファ)は、コミュニティアートの新しい可能性を探求する研究所です。
テクノロジー、サイエンス、ソーシャルグッド、ビジネスなど様々な分野との実験的な取り組みを実施していきます。 その第1弾として、千代田芸術祭で、本イベントを企画・開催することになりました。

コミュニティアートを推進するアートセンター「3331 ARTS CYD」と コミュニティデザインを専門とするデザインファーム「VOLOCITEE Inc.」が共同で設立しました。 今秋、正式リリースおよび公式WEBサイト公開を予定しています。

ということみたいです。(3331α Art Hack Dayより抜粋)

今回、FBで募集の案内が流れてきて、面白そうだったので応募したら審査に通ったので(主催の方によるとエンジニアの倍率は2-3倍くらいだったそうな)参加してきました。

日程は全3日間。最初の8/23はブレスト、その後二週間で技術検証やアイデアのブラッシュアップをし、9/6および9/7半日で実装、9/7の後半で発表といった流れでした。

初日のライゾマ社長齋藤さんの「いかにやりたいことをやりながら飯を食うか」という話は非常に興味深かったです。そしてかっこいい。あとその後のRyo Fujimotoさんのパフォーマンスは、異世界に紛れ込んだような感じを覚えるくらい訴えかけられるものがありました。素晴らしかった。

今回のハッカソンはテーマというものが存在せず、本当に作りたいものを作るという感じでした。参加者は、通常のハッカソンに参加するようなエンジニアやデザイナーから、陶芸家、書家、ダンサーといった様々アーティストの方々までと非常に幅広く、新しい空間でした。

IMG_20140823_142019

ブレストの様子 captured by N5

作業風景

作業風景 w/ 岡本くん CC-BY 3331α Art Hack Day

その後2週間を経て、実装。そして審査会へ。

良い意味で振れ幅のある作品が多く、大変楽しかった!そして、大賞は”Pepperと人間”というテーマのアート・パフォーマンスでした。通常ロボットは、人間がプログラムを書いたとおりに動き、それ以上でもそれ以下でもないんだけど、動きに乱数を加えた場合、それはある意味ロボットが自分の意思をもって動いたと解釈することもできる。その3台のランダムな動きをするPepperに併せて、ダンサーが即興ダンスをする、という箇所があってかなり面白かった。音も映像もかっこよかったしまたみたいなー

pepper1

Pepperと人間チームのアート・パフォーマンス「Love Session」ダンサー升水絵里香さんのダンスも最高にクールでした CC-BY 3331α Art Hack Day

pepper2

ランダムな動きのPepperに併せて、即興ダンス CC-BY 3331α Art Hack Day

カメラを付けた大きな風船を飛ばすというI am hereプロジェクト。発想はシンプルだけどやったったのがスゴイ!

カメラを付けた大きな風船を飛ばすというI am hereプロジェクト。発想はシンプルだけど実際にやっちゃったのがスゴイ! CC-BY 3331α Art Hack Day

紙を捲ると映像が切り替わるメクルメ。コンテンツがいっぱい合って面白かった。

紙を捲ると映像が切り替わるメクルメ。コンテンツがいっぱい合って面白かった。 CC-BY 3331α Art Hack Day

シミを実演するために、ケッチャプを掛けるという手法を採用しましたw CC-BY 3331α Art Hack Day

シミを実演するために、ケッチャプを掛けるという手法を採用しましたw CC-BY 3331α Art Hack Day

僕らのチームは、食事中に飛ばしたシミでゲームをする”SIMILATOR”という作品を作ったのですが「ネガティブなことをポジティブに捉え直す」というコンセプトを評価して頂き、光栄なことに江渡浩一郎賞(審査員賞)を受賞できました。技術的には非常にシンプルでopenFrameworksとOpenCVを使ってシミ検出しました。

デモに使ったアプリをgithubにあげておきました

副賞として11月のニコニコ学会βで展示できるみたいなので、これもまた楽しみ。またFabcafeの9/23のイベントにも登壇できみたいなのでこちらにも参加します!

総じて、様々なバックグラウンドの方と面白い作品を作れて良い経験になりました!また参加したい。