ONIEをbuildしました

おはようございます。ライトノベル好きのツチノコです。ヒマワリの季節が近づいてきましたね。

さて、タイトルの通り、ONIEをbuildしました(というか何回かしている)ので日本語で手順をまとめておきます。
公式のドキュメントは https://github.com/opencomputeproject/onie/wiki/Building-ONIE です。

5月のJapan ComCamp meets de:codeでLTした、例のブンチンカッコカリからのリカバリの時にも利用しました(スライド中ではONIE関連は省略)。

前の記事はここです。間があいてしまってもうしわけないです(夏休みの宿題はためるタイプでした)

環境はDockerで作ってしまうことにします。Dockerfileは https://gist.github.com/wataken44/e5e6c7f94b257c15196d50bab9a9a2de にあります。

まずはimageをbuildします。

# wget https://gist.githubusercontent.com/wataken44/e5e6c7f94b257c15196d50bab9a9a2de/raw/13fe198b9e93c7ab2a45767c176435f11ad89247/ONIE.Dockerfile -O Dockerfile
# docker build -t onie-work:latest <Dockerfileを置いたディレクトリ>

Dockerfileの中身は以下のようになってます。

FROM debian:jessie

MAINTAINER example@example.com

RUN apt-get clean && apt-get update
# git-coreはリポジトリとってくるのに必要
# sudo, makeは公式のMakefileで環境を整える(make debian-prepare-build-host)のに必要
# wget, pkg-config, cpioはbuildに必要だが、公式のMakefileでインストールされないので必要
RUN apt-get install -y git-core sudo make wget pkg-config cpio

# rootではbuildできないのでbuilduserを追加してsudoersに追加
RUN useradd -m builduser
RUN echo 'builduser ALL=(ALL:ALL) ALL' >> /etc/sudoers

# リポジトリをclone
RUN su builduser -c "cd /home/builduser/; git clone https://github.com/opencomputeproject/onie"
# 公式のMakefileで環境を整える(色々パッケージがインストールされる)
RUN cd /home/builduser/onie/build-config && make debian-prepare-build-host

# gitのglobal設定を適当に入れる(入れておかないとbuildがこける)
RUN su builduser -c "git config --global user.email example@example.com; git config --global user.name example"
# bashを使う
RUN chsh -s /bin/bash builduser
# PATHを設定(設定しないとmkdosfsが実行できずbuildがこける)
RUN echo 'export PATH=$PATH:/sbin/:/usr/sbin/' >> /home/builduser/.bashrc

コンテナを走らせてbuildします。

# docker run --name onie-work -i -t onie-work /bin/bash
root@f304bbf507f4:/# su builduser
builduser@f304bbf507f4:/$ cd ~/onie/build-config
builduser@f304bbf507f4:~/onie/build-config$ make -j4 MACHINEROOT=../machine/<vendor> MACHINE=<vendor>_<model> all

<vendor>,<model>のところにはお手元の機種名を入れます。DellのS6000-ONだとそれぞれdell, s6000_s1220になります。一覧は ~/onie/machine 以下にあります。

builduser@f304bbf507f4:~/onie/machine$ ls --color=none
accton  alphanetworks  celestica  centec  dell  dni  facebook  imt  intel  inventec  kvm_x86_64  mellanox  nxp  plexxi  qemu_armv7a  quanta  wiwynn  wnc
builduser@f304bbf507f4:~/onie/machine$ ls dell/ --color=none
dell_s3000_c2338  dell_s4000_c2338  dell_s4048t_c2338  dell_s4810_on_p2020  dell_s6000_s1220  dell_s6010_c2538  dell_s6100_c2538  dell_z9100_c2538

1時間くらいでbuildが終わり、isoイメージやpxe用のイメージができます。

builduser@f304bbf507f4:~/onie/build-config$ make -j4 MACHINEROOT=../machine/dell MACHINE=dell_s6000_s1220 all
(中略)
=== Finished making onie-x86_64-dell_s6000_s1220-r0 master-201607260338 ===
builduser@f304bbf507f4:~/onie/build-config$ ls ../build/images/
dell_s6000_s1220-r0.initrd   onie-recovery-x86_64-dell_s6000_s1220-r0.efi64.pxe  onie-updater-x86_64-dell_s6000_s1220-r0
dell_s6000_s1220-r0.vmlinuz  onie-recovery-x86_64-dell_s6000_s1220-r0.iso

あとはUSBメモリに焼くなりなんなりしてセットアップすればONIEのインストールができるようになります。
ご活用ください。

BIOS
上はDell S6000-ONのBIOS画面です。AMIのBIOSが動いていて、8GBのメモリが乗っていることがわかります。
シリアル経由ですがツチノコブログの読者には見慣れた画面ではないでしょうか。

S6000のBIOS
Boot orderを変更できる画面です。

ネットワークスイッチのBIOS画面が見れて、そこらへんのPCと同じようにOSをインストールしたりできるようになりました。すごい時代ですね。

p.s. このテンプレ展開のせいで、おれのラブコメが鬼畜難易度がすごい

デュアルスタック環境とCDN

前回、DNSサーバを利用した名前解決と利用するIPバージョンの組み合わせに関して紹介しました。今回は、IPv4とIPv6を別々のISPで接続しているような場合、DNSを利用するCDNとの相性が問題になる可能性について紹介します。

問題が発生するのは、以下の図のようにIPv4とIPv6で別々のISPを利用しつつ、キャッシュDNSサーバはどちらか片方のISPを利用しているような環境です。たとえば、フレッツでIPv4とIPv6を別々のISPにするような設定をしていたり、IPv4しか提供されていない環境で、Hurricane Electricなどが提供しているようなIPv6 over IPv4トンネルを使っているようなときに発生する可能性があります。

この図では、家庭に対してIPv4はISP Aによって提供され、IPv6はISP Bによって提供されます。ユーザが利用しているPCに設定されているキャッシュDNSサーバは、IPv4を利用しているISP Aのものを利用しています。

このような環境で、CDNによって負荷分散が行われているコンテンツをユーザが取得するときの流れをみます。

まず、最初にユーザがISP AにあるキャッシュDNSサーバを利用して名前解決を行います(1)。このとき、ユーザはIPv4とIPv6の接続性を両方持っているので、AAAAレコードの問い合わせを先に行っているものとします。また、AAAAレコードの問い合わせに使われるキャッシュDNSサーバまでのトランスポートはIPv4とします。

ISP AにあるキャッシュDNSサーバは、権威DNSサーバにAAAAレコードの問い合わせ行い、回答を得ます。ISP AとISP Bは、双方ともにIPv4とIPv6両方で運用されており、IPv6で運用されたCDNキャッシュが両方のISP内にあるものとします。

このような環境下では、権威DNSサーバは問い合わせを行ったキャッシュDNSサーバの最寄りコンテンツキャッシュであるCDNキャッシュAを、キャッシュDNSサーバへと返答します(2)。

キャッシュDNSサーバからの名前解決結果を受け取ったユーザは、CDNキャッシュAからコンテンツを取得します。このとき、コンテンツ取得に利用されるトランスポートはIPv6となるため、ユーザはISP Bを経由してCDNキャッシュAにあるコンテンツを取得します。

しかし、ISP BにもCDNキャッシュBというコンテンツキャッシュがある場合、ユーザは遠回りをしてコンテンツを取得していることになってしまいます。このような遠回りが発生するのは、CDNによる負荷分散機能の一部である権威DNSサーバが「ユーザはISP Aにいる」と認識しているために発生しています。

ISP BのキャッシュDNSサーバを利用すれば、ユーザはCDNキャッシュBからIPv6トランスポートを利用してコンテンツを取得できるようになりますが、今度は逆にIPv4でのCDNキャッシュコンテンツ取得が遠回りになってしまいます。

DNSのリソースレコードごとに、利用するキャッシュDNSサーバを設定できれば、このような問題は軽減できると推測されます。たとえば、IPv4のAレコードを取得するときと、IPv6のAAAAレコードを取得するときに利用するキャッシュDNSサーバをそれぞれ設定することによって、キャッシュDNSサーバとのトランスポートとリソースレコードをマッチさせることができれば回避可能です。しかし、現時点では、そういった使い分けが行われることは稀であるため、このような問題が発生していると思われます。

ただし、このような状況に陥ったとしても、単に遅くなるだけでユーザが気がついていない可能性も考えられます。そもそも、CDNとの相性を追求するような設定をユーザ側が行うことが正しいのかどうかという問題もあります。

この話は多少マニアックではありますが、IPv4とIPv6のデュアルスタック環境において発生する課題発見や運用ノウハウの蓄積は、まだまだこれからかも知れません。

TerraformでGitHubのチーム管理を自動化して事故った話

はじめまして。
ICTトラブルシューティングコンテストの実行委員をやっている黒崎 (@kuro_m88) です。
学生時代に第3回の運営をやり、社会人になってからは運営学生のサポートをしています。

ICTトラブルシューティングコンテスト(以下ICTSC)とは、学生による、学生のためのインフラ技術コンテストです。
来月の2016年8月27日 にNTT西日本杯 第6回 ICTトラブルシューティングコンテストが大阪で開催されます。
トラコンに関する過去のツチノコエントリーは以下をご参照ください。

ツチノコブログICTSCエントリ集

TerraformでGitHubのチーム管理を自動化してみた

ICTSCでは出題に利用するコードや出題する問題案の管理をGitHubを利用して行っています。
https://github.com/ictsc

ICTSCに携わる学生や社会人は基本的にこのGitHub Organizationに入っているのですが、回によって運営に携わる学生も違います。
第4回だけ運営だった人もいれば、第4回, 第5回は運営だったけど、第6回は競技者として参加するといったケースもあります。

ICTSCのGitHub Organizationに入っている人は今回で50人くらいになるので、誰が第何回の運営だったかぱっと把握するのが難しくなってきました。

一番簡単なのはその回の運営に関係ない人をOrganizationからはずすことなのですが、せっかく運営に関わってくれたのにはずすのも寂しいなと思い、ユーザ管理をある程度自動化できないかなと思い立った訳です。(課金体系が変わったら運用方法を考えないといけませんが…)

Terraform GitHub Provider

その頃会社でTerraformを使い始めたので、GitHubも同じような感じで管理できないかなー?と調べてみると…!

なんと、Terraform GitHub Providerがあるではないですか…!🎉
https://www.terraform.io/docs/providers/github/index.html

これを使えばGitHubのOrganizationの

  • メンバー管理
  • チーム管理
  • チームのメンバー管理
  • リポジトリの権限管理

ができるようです。やりたい操作が全部用意されていました!!

ドキュメントを読みながら、こんな感じのものを作ってみました。
https://github.com/ictsc/ictsc-github-member

簡単に説明しますと、まずICTSCのGitHub Organizationのメンバーをここで定義します。
ictsc-github-member/members.tf

次に、チームを作ります。例えば第6回の運営参加メンバーはICTSC6というチームに所属させます。
また、そのチームが読み書きできるリポジトリも定義しています。
ictsc-github-member/team-ictsc6.tf

過去の運営チーム(ICTSC5等)のチームはプライベートリポジトリを見られないようにしています。
ictsc-github-member/team-ictsc5.tf

最後にこれらの操作をCircle CIで自動化できるようにします。
こんな感じの設定ファイルを書きました。
ictsc-github-member/circle.yml

運用方法

ICTSCのチームメンバに追加して欲しい人はプルリクエストを投げます。
https://github.com/ictsc/ictsc-github-member/pull/40

(ちなみに、彼は第5回の運営委員で、第6回は運営ではなく競技者として参加するのでこのプルリクエストは拒否します)

このリポジトリはpublicですが、マージする権限があるのは実行委員(社会人サポートチーム)の人だけなので、レビューののち production ブランチにマージするとCircleCI上でterraform applyが走り記述したとおりの権限がメンバーに与えられます👍

いい感じですね!👏

事故は突然に

github_membership.membership_for_kurochanという名前が冗長に感じたのでmembership_for_を取り払ってgithub_membership.kurochanのような書き方に統一したくなったので統一しました。

terraform planで変更内容を確認して、terraform applyしてみました。以下がその時のログです。

$ ~/terraform/terraform apply --var-file=conf/github.tfvars
github_membership.membership_for_kurochan: Refreshing state... (ID: ictsc:kurochan)
github_membership.membership_for_kurochan: Destroying...
github_membership.netmarkjp: Creating...
role: "" → "admin"
username: "" → "netmarkjp"
github_membership.kurochan: Creating...
role: "" → "admin"
username: "" → "kurochan"
github_membership.membership_for_kyontan: Destruction complete
github_membership.membership_for_kurochan: Destruction complete
github_membership.netmarkjp: Creation complete
github_membership.kurochan: Creation complete

コマンドの実行も成功し、当時管理者権限を持っていた僕ともう一名のアカウント設定の名前が、変更されています。
うんうん、ちゃんとうまく行ったようです。

ひととおり仕組みを作ったので学生に自慢しようと思った矢先、GitHubから一通の不穏なメールが…😨

!?!?

誰かに僕のアカウントの管理者権限が外されたようです。

せっかくterraformで管理しているのでもう一度terraform applyしてみましょう。

2 error(s) occurred:

* github_membership.netmarkjp: PUT https://api.github.com/orgs/ictsc/memberships/netmarkjp: 403 You must be an admin to add or update an organization membership. []
* github_membership.kurochan: PUT https://api.github.com/orgs/ictsc/memberships/kurochan: 403 You must be an admin to add or update an organization membership. []

Terraform does not automatically rollback in the face of errors.

403 You must be an admin to add or update an organization membership.

🔥🔥なんかやばそう!!🔥🔥

とりあえずもう一人の管理者権限を持っている方に僕を管理者に戻すようにお願いしました。

えっ、もうこれはどうしようもないのでは…😇

そしてだれもいなくなった…

管理者権限のあるユーザ全員(自分含め)から権限を剥奪してしまったようです。
誰一人管理者がいない状態なので、復旧のしようがありません。
学生にドヤ顔するつもりがなんと説明すればいいのか分からない状態になりました…。こんなことってあるのか…😱

困ったときの神頼み

どうしようもなくなったので神様(サポート)に連絡するしかありません。
自分の英語力で通じるのか自信なかったですがとりあえず連絡…

すると

よかった…回復してもらえそうです。

どうしてこうなったのか

最初のログを見ると一見成功したように見えます。
ただ、2度目実行した時には権限がなくなっていてエラーになっていたので、APIコールした瞬間はすくなくとも権限を持っていたようです。

ここからは僕の想像なので本当にこうなっていたのか分かりませんが、例えばGitHub側が

こんな感じの権限の更新の処理が非同期に行われる仕組みになっていたとしたらTerraformのように高速でAPIを叩くアプリケーションを実行した場合、今回ような事故が起きそうです。。

対策

Terraformを実行する用のユーザを作成しました。
このユーザに管理者権限をもたせ、このユーザのアカウントに関してはTerraformの管理外としました。
これで自分で自分の権限を剥奪するような事故は起きないはずです。

教訓

terraform planはあくまでも実行計画を表示するだけであって、実際に適用したら成功するかどうかは別の話で保証されないということを身を持って経験しました…。
実行される内容が問題ないかしっかり確認してから適用しましょう。。(以後気をつけます)

さいごに

ICTトラブルシューティングコンテストではこのような実際の経験を元にしたトラブルの問題を運営学生がたくさん作っています!
次回コンテストも面白い(つらい?)トラブルが出題されると思いますのでご期待ください!!

Illustrator初心者がツチノコブログステッカーを作成してみた

SONY DSC

ドーモ、arimoです。

このたびステッカー作成大使に任命されまして、IllustratorというAdobeのソフトを駆使して発注するまでのまとめをつづります。

今回発注した商品はこれです。http://www.graphic.jp/lineup/ondemand/sticker.php
入稿から5営業日で発送してくれるのですごいです。
作り方の注意はhttp://www.graphic.jp/technical/data_goods/sticker.phpに書いてありますがよくわからない。

0,準備編

スクリーンショット 2016-06-29 16.03.19

まずステッカーにしたいロゴのaiデータがあります。ない場合はどうしようもないのでがんばって発掘するか、ご自身で作ってください。

スクリーンショット 2016-06-29 16.03.57

ウィンドウ>レイヤーでレイヤーウィンドウを表示させて、右下のゴミ箱の隣の新規レイヤー作成ボタンを2回押してレイヤーを2つ作ります。

レイヤー名のところをダブルクリックして、デザイン(元のai)、ホワイト版、カットパスと名前を変えてわかりやすくします。

透明塩ビのステッカーを作る際にホワイト版というものがないと、白くしたいところが透明になってしまうので作る必要があります。たとえばチーノくんの目玉とかです。チーノくんの目玉が透明になると貼ったときにかなり恐ろしい仕上がりになります。ホワイト版といいつつ黒いシルエットのような画像のレイヤーです。

カットパスというのはシールをはがすときの切り込み線です。

1,ホワイト版レイヤーにロゴをコピーします

スクリーンショット 2016-06-29 16.06.53

デザインレイヤーにいる状態で、command+Aで全選択するか、左上の黒い矢印(選択ツール)をクリックして全体を囲うようにドラッグします。
すると全部のオブジェクトが選択されている状態になるので、command+Cまたは編集>コピーでコピーします。

レイヤーパネルで「ホワイト版」をクリックして、編集>同じ位置にペーストをすると、同じ位置にロゴがコピーされます。

2,ごちゃごちゃしたところをくっつけて、黒くしてホワイト版を作る

スクリーンショット 2016-06-29 16.15.09

ごちゃごちゃしたチーノくんのところを黒い矢印(選択ツール)で選択します。

線とか色とかがいっぱいあってわけがわからないところはとりあえず選択します。shiftを押しながらクリックすると選択が追加されたり、選択が解除されたりします。

スクリーンショット 2016-06-29 17.46.01

ウィンドウ>パスファインダーでパスファインダーパネルを表示させて、一番左上の四角が2個くっついているアイコンをクリックします。

スクリーンショット 2016-06-29 16.15.42

選択したところがくっつきました。色を黒にしなければならないので左下の色四角と白斜線があるところの色四角(ここではピンク)の部分をダブルクリックします。カラーピッカーで黒にします。

スクリーンショット 2016-06-29 16.15.56

「ツチノコブログ」の部分も選択ツールで選択して先ほどと同じようにカラーピッカーから黒にします。

スクリーンショット 2016-06-29 16.16.22

3,ホワイト版をグレースケールに変換して確認します

グレースケールでないとダメだとサイトに書いてあったのでいちおうグレースケールに変換します。
黒い部分を全部選択した状態で、編集>カラーを編集>グレースケールに変換

スクリーンショット 2016-06-29 16.17.43

ウィンドウ>カラーでカラーウィンドウを表示させ、

スクリーンショット 2016-06-29 16.18.06

カラーの下の四角が斜線と黒と白のみになっていることを確認します。

スクリーンショット 2016-06-29 16.18.15

レイヤーの順番をカットパス、デザイン、ホワイト版の順にします。ドラッグで重なり順が変えられます。

スクリーンショット 2016-06-29 16.18.46

チーノくんとロゴを別々に処理しないで、最初から全部選択してパスファインダーでくっつければいいじゃんと思っていたのですが、そうするとDMMのDの穴とブログのロの穴も埋まってしまうので、分けています。(Dとロの穴は透明にしたいためホワイト版がいらない)

4,地道にカットパスを作ってシールの切れ込みを指定する

スクリーンショット 2016-06-29 16.19.22

手順1と同様に、「カットパス」レイヤーに「ホワイト版」レイヤーを全選択したものをコピー、同じ位置にペーストをします。

わかりやすいように「デザイン」と「ホワイト版」のレイヤーの左側にある目玉アイコンをクリックして、非表示にしておきます。

スクリーンショット 2016-06-29 18.03.34

オブジェクト>パス>パスのオフセットを選択し、

スクリーンショット 2016-06-29 16.25.45

オフセット2mm(ロゴの位置から2mmぐらいのところを切り取り線にしたいため。用途に応じて変えてください)

角の形状をラウンドにしてOKを押します。

スクリーンショット 2016-06-29 16.25.53

モコモコしたのができます。

左下の色四角と白斜線があるところの入れ替え矢印を押します。

スクリーンショット 2016-06-29 18.08.15

モコモコの何かが線と中身に分かれます。再度選択ツールで全選択して、オブジェクト>グループ解除をします。

スクリーンショット 2016-06-29 16.26.23

中身だけを選択ツールで選択し、deleteボタンで削除していきます。

スクリーンショット 2016-06-29 16.27.00

ポチポチ消していって、こんなかんじでモコモコの線だけになります。線は削除しないように気をつけてください。

線だけになったら全選択して、パスファインダーで一番左上の四角が2個くっついているアイコンをクリックします。

スクリーンショット 2016-06-29 17.46.01

スクリーンショット 2016-06-29 16.27.44

カットパスの原型ができました。

5,カットパスの整形をする

Dのところに余分な線があるので「アンカーポイントの削除ツール」で削除します。

選択ツールの2つ下にあるペンツールを長押しするとマイナスのついたペン先が出てくるのでそれでアンカーポイントをクリックして消していきます。

image1

白い四角を探して、ポチポチ。いずれ消えます。

 

スクリーンショット 2016-06-29 16.29.59

こういう鋭利なところや込み入ったところがあると、うまくカットできないのでアンカーポイントの削除ツールでなめらかにします。

スクリーンショット 2016-06-29 16.30.19

数個アンカーポイントを削除するとこんな感じでなめらかになります。

気になる部分を削除してきれいにします。

スクリーンショット 2016-06-29 18.27.31

「デザイン」レイヤーと「ホワイト版」レイヤーの左にある目玉を表示させて保存して、完成です!

 

JAIPA Cloud Conference 2016 午後の部レポート

本日は、品川で行なわれている、JAIPA Cloud Conference 2016 にお邪魔しています。

JAIPA Cloud Conference 2016
https://cloudconference.jaipa.or.jp/

JAIPA Cloud Conference 2016 午前の部レポートの続きです。

 

海外におけるクラウド/ホスティング市場と今後の方向性

サンドウィッチを食べながらのランチセッション。
海外の事例等、興味深い数字、興味深い話が沢山の面白いセッションでした。
ホスティング会社の国際シェアを見ると、日本の会社は10位に入ってこない。
日本が落ちたのではなく、他が上がってきている、等々。
でも、ごめんなさい、午前の部のレポートを書いたりして、ちゃんとメモを取れなかったので、後で資料を見てもらうと良いかと思います。
とても良い資料でした。

SESSION4: Googleスケールの機械学習テクノロジー

デモの詳細については、本日公開のブログを見てくださいとのこと。

ニューラルネットワークの仕組みがわかりやすく書いてあってすごく参考になるエントリだと思います。

 

Googleではディープラーニング技術を用いて

  • RankBrain : ディープラーニングによる検索最適化
  • GooglePhoto
  • 英語版のGmailのスマートリプライ : 10%がディープラーニングがそのまま返事
  • Google翻訳

等をサービスとして提供しているとのこと。
Googleではディープラーニングはすでに枯れた技術として、60を超えるプロダクションで使われている、と。

APIも提供していて、

  • Cloud Vision API : 画像認識のためのAPI

により画像認識をしたり、まだ limited版だけど、音声認識ができたりする。

 

それ以外の機械学習については、ライブラリを公開していて、

このライブラリを使えば、機械学習システムを以下のようにわりと簡単に実装できるぞ、と。

  • TensorFlow で簡単設計 → 単体マシンで学習 → クラウドで分散学習 → 学習結果をクラウドで実運用

数理モデルを理解し実装する、という最初のハードルを低くして、分散システムを作る、という最後のハードルがなくなる、とのこと。
TensorFlowを使った例としては、以下のようなものが取り上げられてました。

  • 唐揚げロボット
  • きゅうり仕分け機
  • アイドル顔認識
  • 漢字っぽいものを自動生成

誰でも簡単に作れる、ってことは多分言い過ぎなんだろうけど、楽に実装できるようになる、ってのは本当な気がした。

機械学習で問題になるのは、計算パワーなんだけど、Googleでは自社クラウドでそこも万全とのこと。

  • データセンターのインフラは、Jupiterネットワークで、10GbE x 100k = 1 Pbps のサーバ間接続
  • 個々のノードは、Tensor Processing Unit。これはすでにプロダクションになっているもので、AlphaGoにも使われたもの。

Googleクラウド+TensorFlowで高速な学習が可能になるので、それをもっと便利に利用できるような、Cloud Machine Learning (Cloud ML)を夏以降に公開予定、とのこと。

Google すごいわー、と思わせるセッションでした。

 

セッション中に、携帯網のパケット上限に逹してしまったっぽく、通信はできてるが、デモが動かない、ってことがあったけど、やっぱり会場ネットワークはあったほうが良いんだなあ、とちょっと思った。
誰にでも簡単にイベントネットワークを作れるようにしなきゃいけないよなあ、とちょっと思った。(※CONBUな帽子モード)

 

SESSION5: AIとフィジカルシステムを支えるクラウドと法

IoTに関わる法律の話。

メモったこと↓

  • IoTは物理世界から捉えているので、サイバーフィジカルシステム(CPS)という捉え方のほうが法的にはしっくりくる。
  • IoTの法律は、法的には民法85条の有体物の問題として考えるべき。
  • 安全は、Security(CIA) と Safety の概念で考えるべき。
  • 車の場合は、今の法制度の枠組みである程度捉えることができる。
    保安基準を作り、ソフトウェアに瑕疵があればリコール対象。
  • 法律や制度は具体的な事案を積み重ねて作っていかなければいけない。
  • センサーネットワークに関してはプライバシー的な考慮も必要。
  • 権利、義務の体系に機械が入ってくることがあるのではないか?
  • 体系の決定権が移行する可能性もある。自動化された兵器とか。

JAIPAの紹介
ライトニングトーク: IoTにもの申す2016

メモ↓

  • JAIPAに入ろう、明日はモバイル部会がある、今入会して明日部会に出よう、という話でした。
  • EDAC の紹介
    http://www.edac.jp/
    最先端のテクノロジーを命を救うために活用する組織。
    今やってるのは、時間短縮。救急車が来るのは早けば早いほうが良い。搬送も早ければ早いほうが良い。
  • IoTは、ITのカンブリア大爆発。
    IoT、は、Internetと同じぐらいのインパクトがある。

 

SESSION6: 工場・製品・重要インフラの安全を守るIoTセキュリティ技術の開発に向けて

メモ↓

  • IoTシステムを構築する際には、開発指針にセキュリティを盛りこんでおく必要がある。
  • IEC62443という標準があるが、日本企業は5年遅れてるんじゃないか、と言われている。IoTで世界に打って出るのであれば準拠する必要がある。
  • 将来的には、インダストリー4.0向けのネットワークを見守るネットワークプラットフォームを提供したい。

参考URL↓

 

パネルディスカッション: もはや爆発直前 IoTビッグバン!

パネルディスカッションなのでまずは登壇者の自己紹介。その中での、佐藤さんの話が興味深かった↓

  • FPGAでMIPSぐらいなら実装できてしまう
  • FluentdをFPGAで処理することも普通にできてしまう。
  • ソフトウェアでできることがどんどんハードウェアでやる、という流れになっている。
  • Googleは実際にすべてハードウェア処理でやっている。
  • 笑顔になつくロボットを作ってみたが、300行ぐらいのPythonコードで書けてしまう。世の中になっている。
  • クラウドで学習が終わったら、学習結果を Rasberry Pi に載せて活用することもできる。

小笠原さんはABBA Labの帽子で、面白いプロダクトに出資している、という話をした中で、秋葉原のDMM.makeで見せてもらったプロトタイプがちゃんとプロダクトに成長しているのを紹介していたのが、なんか嬉しかった。

自己紹介の後はパネルセッション。
「IoTが引き起こすパラダイムシフト」というテーマで出た話は以下。

  • IoTは業界を壊す破壊力がある。
    通貨も仮想通貨にならないと対応できなくなる。
  • IoTをAIを絡めたものが簡単に作れてしまうのは驚き。
  • 最近の子供はテレビに向かってスワイプ動作をする。子供にとってはスワイプするのは普通のこと。チェンジはいきなり来る。その準備ができてきただけ。
  • 次のテーマは「IoTはぶっちゃけ儲かるのか?。単に破壊されて終わりなのか?」。
  • 小笠原さんによる2040年の予測数値が面白い。IoTは商売になりそう、という仮説もちゃんと作れている。
  • IoTは通信事業者は儲からない。なにかをやる人が儲かる。あと犯罪者も儲かるかも。
  • 医療系だと人の命が助かるようになる。最終的に儲かるかもしれないが、儲かるとは違う観点で良いこともある。
  • IoTでお金がいただけるのであれば、安全、健康、等の人に関わるところじゃないか。

次のテーマは「IoTの普及を阻害する要因は何?セキュリティって大丈夫?」。

  • 勇気がない。やったことがありません、と言って前に進んでいない。
  • デモをしていてRasberry Piが良く壊れることに遭遇する。ハードが壊れるのはソフトウェアだとなかったこと。壊れない Rasberry Pi を3000円ぐらいで日本のメーカーに作って欲しい。
  • ハードウェアは不思議なことはある。でも阻害要因じゃないかも。
  • パラダイムシフトが発生すれば、勇気がない、って言ってる人も変わらざる得ないのではないかと。
  • インターネットのときに経験したパラダイムシフトと一緒で、IoT化も気付かずにやってくるものじゃないか。
  • 失敗を許容できるのが大事。昔は失敗を繰り返して良いものができてきた。その時代を知ってる人と組めば良いのじゃないか。
  • 悪がはびこればIoTは普及する。
  • 日本だけUberが使いにくい。日本大丈夫かな、と思う。
  • ドローンを飛ばせる場所が東京にない。そんな規制をしていると発展しないまま、他の国で発展したものがやってくるだけになる。
  • 学校教育が良くない。正解を探すだけの教育だと駄目。

「IoTにはどのように取り組めばよいか?」に対する以下の回答は良かった。

  • 60年70年頃の子供の頃に見たSFをもう一度見たほうが良いんじゃないか。漫画とか読もう。

次のテーマは「2年後・5年後・10年後、IoTにはどうなってるか?」「人間はIoTで進化するのか?」

  • ロボットの支援があって便利になっていく、そういうのを前提に考えていく必要がある。
  • すでにカーナビ様の言うとおりに運転している。
  • ニューラルネットは何をやってるかわからないところが怖いといえば怖い。理由が説明ができない、デバッグができない。
  • 人間は道具と言葉を使うようになってから退化し続けてるから、それが速くなるだけじゃないか。
  • 悪いAIができると大変なので、良いAIを作って欲しい。
  • 医療がすごく進むというイメージはある。5年後には予防医療というのが大きなジャンルになってる気がする。
  • 製造業、輸送、についてはIoTを駆使されていく。寡占が進んでコスト削減が進んで一部の企業が支配するイメージ。
  • FPGAのインパクトがもっと出てくる。CPUはもう性能が上がらないんじゃないか。専用LSIがいろいろなところで使われるようになってくるはず。エッジとデータセンターの両方でハードウェア処理が同時多発的におきている。
  • 今3年目、10人ぐらいの企業が2年後に大企業になってる、というのもあると思う。人数はいないかもしれないけど売上がすごい、とか。

最後に「IoTという切り口での会場へのメッセージ」

  • いっぱい失敗して、その上にノウハウが蓄積されるので、失敗コストを引き下げていくのは絶対にやらなきゃいけない。立場で避けるのでなく、自分の立場で支援することを考えて欲しい。
  • 悪者も良い者もIoTを使うので進めるべき。資源エネルギーは2020年から減産に転じる見込み。そこの問題はお金を産むかもしれない。
  • 趣味が仕事にいつのまにか仕事になっている。趣味から始めてみてはいかがでしょう。
  • 何か起こる、と思ってるのであれば、何かアクションをしてみたほうが良いと思う。それが1年後の自分を助けてくれる。

 

いやはや、濃いセッションでした。

 

まとめ

とても内容の濃いカンファレスだったので、資料が公開されたら見ると良いと思いますよー。

さて、懇親会に行ってきます!!