プログラマでありたい

おっさんになっても、プログラマでありつづけたい

JAWS-UG アーキテクチャ支部でクローラー/Webスクレイピングの紹介をした

 先日のJAWS-UG アーキテクチャ支部 クラウドネイティブ分科会 CDP議論会 #7で、Lambdaを利用したクローラー/Webスクレイピングについての発表をしてきました。

発表の経緯



 そもそも何故アーキテクチャ支部でクローラー/Webスクレイピングの話をしたのかです。クラウドネイティブ分科会では、ここ数回Lambdaの実践的な活用について議論しています。利用パターンとしては、システムの中核となる部分とそれ以外の部分があるよねという前提がでてきました。そして、それ以外の周辺分野から利用していくほうが実践導入は早そうなので、そこで使えるパターンを議論してきました。その中で、出てきたのが下記の5パターンです。

・監視
・通知
・フィルター
・コンテンツ確認(Validation)
・チャットOps

※この辺りについてはアーキテクチャ支部のGitHubのIssueに記載されているので、興味ある人はご確認ください。

 その中の1つの監視で、サービス監視というところにクローラー/スクレイピングの技術があるよという流れで、そもそもLambda上でどう実現するかという話が出てきました。Seleniumとかあるよねというので、では簡単にまとめて見ましょうということで私も話すことになりました。

発表資料



 当日の発表資料は、次のとおりです。あくまで監視という文脈なので、具体的な方法については、ほぼ記載していません。クローラー/スクレイピングの全体感を説明した上で、最後に監視方法の1例について説明しています。

www.slideshare.net

当日の議論



 何をどう監視するかということで、それぞれの立場ごとに意見が異なっていて面白かったです。私としては、個々のサーバやプロセスは内部から監視して、Lambdaからの監視はユーザ視線でどう見えているのか確認という意味で考えておりました。
 当日の議論は、そこに留まらずサーバレス監視の実現・CloudWatchとの補完などあり、なるほどなぁと思えることが多かったです。それ以外にも、マイクロサービスやDockerの運用(監視)の話も出てきて、これまでと違った知見がいるということを痛感しました。奥が深いです。(というか闇が深くなるかもしれませんw)

感想



 個人的には、クローラー/Webスクレイピングの実行基盤としてのLambdaは最良の部類かと思っています。Lambdaに特化した情報をもう少しまとめていこうかなと思います。まとめ方の形態については、いろいろ画策しています。

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

  • 作者: NRIネットコム株式会社,佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸本勇貴
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2016/04/20
  • メディア: 単行本
  • この商品を含むブログを見る
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

See Also:
アプリケーションエンジニア向けのAWS本を書きました
Amazon Web Services クラウドネイティブ・アプリケーション開発技法の目次
『Rubyによるクローラー開発技法』を書きました
『Amazon Web Services パターン別構築・運用ガイド』を書きました

Amazon Web Services クラウドネイティブ・アプリケーション開発技法の目次

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

  • 作者: NRIネットコム株式会社,佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸本勇貴
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2016/04/20
  • メディア: 単行本
  • この商品を含むブログを見る

 4/11の発売に向けて、残すところ僅かになってきました。ここに来てのMobileHubのSwift対応など、情け容赦ないAWSのアップデートに日々怯える日々です。さて全体の構成等がほぼ固まったので、目次を紹介したいと思います。


 全部で4章構成+付録です。3・4章の各節が、それぞれ30ページ近くあるために全体として600ページを超える分量となりました。もう少しコンパクトにまとめるつもりだったので、反省しています。

1章 AWSとクラウドネイティブ



1-1 AWSとは何か
1-2 クラウドネイティブなアーキテクチャ
1-3 認証と認可の仕組み
1-4 アーキテクチャのパターン
1-5 REST AP

2章 AWS導入の準備



2-1 AWSの導入手順
2-2 アカウントの取得と設定
2-3 開発環境の設定

3章 サービスの導入と設定



3-1 Amazon Simple Storage Servic(e Amazon S3)
3-2 Amazon API Gateway
3-3 Amazon Simple Notification Servic(e SNS)
3-4 Amazon DynamoDB
3-5 AWS Lambda
3-6 Amazon Cognito
3-7 Amazon Machine Learning
3-8 Amazon Kinesis
3-9 Amazon Simple Queue Servic(e Amazon SQS)
3-10 AWS IoT
3-11 AWS Mobile Hub

4章 アプリケーションの実装



4-1 Cognitoによる認証を利用したスマートフォン向け写真共有アプリケーション
4-2 API GatewayとLambdaによるサーバ連携するモバイルアプリケーション
4-3 API GatewayとCognito、Lambdaを連携した認証・認可サービスの実装
4-4 API Gatewayを使ったモバイルのスタブ作成
4-5 AppleWatchを利用した健康情報の収集
4-6 iBeaconと連動する勤怠管理アプリケーションの開発
4-7 DeviceFarmでモバイルの多端末自動テストの実施
4-8 LambdaとS3によるキワードキュレーションサービスの作成
4-9 Kinesisによるお手軽ETLでTwitter情報の収集
4-10 Machine Learningを用いたWeb閲覧履歴保存とキュレーションサービス
4-11 Cognito Syncを使った簡易メモ同期アプリケーションの作成

Appendix



1 クラウドとエンジニア
2 OpenAPI Specificatio(n 旧Swagger)

見どころ



 今回、特に力を入れたのが4章のアプリケーションの実装です。AWSの各種サービスと連携するiOS,Androidアプリの実装と、JavaScriptなどブラウザアプリの実装を紹介しています。コードを書面で紹介するだけでなく、サンプルアプリとしてコードをダウンロードできるようにします。いつものように出版元のSBクリエイティブのダウンロードサイト以外に、GitHubでも公開しようと考えています。公開後、幾つか修正していくことになると思うので、履歴を追えるようにします。

感想



 今までに無い形のAWS本との自負はあるものの、どれだけ受け入れられるか少し不安な部分があります。そして、この本のカテゴリーがクラウドになるのかモバイルになるのか、それによっても評価が別れるのではと思います。どちらでもあるという前提で書いているので、発売されたら是非一度、手にとって見てください。

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

  • 作者: NRIネットコム株式会社,佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸本勇貴
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2016/04/20
  • メディア: 単行本
  • この商品を含むブログを見る

See Also:
アプリケーションエンジニア向けのAWS本を書きました
『Rubyによるクローラー開発技法』を書きました
『Amazon Web Services パターン別構築・運用ガイド』を書きました

3/27 23:59まで。Kindle本 50%ポイント還元セールで買った18冊

 本日3/27の23時59分まで、Kindle本の50%ポイント還元セールをやっています。その中で、買った本を紹介します。当然、まだ読んでないので良いかどうかも解りません。新書を定価で買う気はしないけど、セールだったら買おうかなという気がします。

風の帰る場所 ナウシカから千尋までの軌跡 [Kindle版]


Kindle 価格: ¥ 699
OFF: ¥ 3
ポイント : 349pt (50%)

風の帰る場所 ナウシカから千尋までの軌跡

風の帰る場所 ナウシカから千尋までの軌跡

羽生善治×川上量生「羽生さんはコンピュータに勝てますか?」完全版 【文春e-Books】


Kindle 価格: ¥ 300
ポイント : 150pt (50%)

羽生善治×川上量生「羽生さんはコンピュータに勝てますか?」完全版 【文春e-Books】

羽生善治×川上量生「羽生さんはコンピュータに勝てますか?」完全版 【文春e-Books】

アメリカ海軍に学ぶ「最強のチーム」のつくり方 [Kindle版]


Kindle 価格: ¥ 648
ポイント : 324pt (50%)

アメリカ海軍に学ぶ「最強のチーム」のつくり方

アメリカ海軍に学ぶ「最強のチーム」のつくり方

2020年マンション大崩壊 (文春新書)


Kindle 価格: ¥ 800
OFF: ¥ 42 (5%)
ポイント : 400pt (50%)

2020年マンション大崩壊 (文春新書)

2020年マンション大崩壊 (文春新書)

石油・武器・麻薬 中東紛争の正体 (講談社現代新書) [Kindle版]


Kindle 価格: ¥ 702
OFF: ¥ 162 (19%)
ポイント : 351pt (50%)

石油・武器・麻薬 中東紛争の正体 (講談社現代新書)

石油・武器・麻薬 中東紛争の正体 (講談社現代新書)

チェ・ゲバラ伝 増補版


Kindle 価格: ¥ 880
OFF: ¥ 6 (1%)
ポイント : 440pt (50%)

チェ・ゲバラ伝 増補版

チェ・ゲバラ伝 増補版

迷いながら、強くなる 三笠書房 電子書籍


Kindle 価格: ¥ 864
OFF: ¥ 540 (38%)
ポイント : 432pt (50%)

迷いながら、強くなる 三笠書房 電子書籍

迷いながら、強くなる 三笠書房 電子書籍

独立国家のつくりかた (講談社現代新書) [Kindle版]


Kindle 価格: ¥ 702
OFF: ¥ 119 (14%)
ポイント : 351pt (50%)

独立国家のつくりかた (講談社現代新書)

独立国家のつくりかた (講談社現代新書)

夜明けのブランデー


Kindle 価格: ¥ 555
ポイント : 277pt (50%)

夜明けのブランデー

夜明けのブランデー

四次元時計は狂わない 21世紀 文明の逆説 (文春新書)


Kindle 価格: ¥ 849
OFF: ¥ 15 (2%)
ポイント : 424pt (50%)

四次元時計は狂わない 21世紀 文明の逆説 (文春新書)

四次元時計は狂わない 21世紀 文明の逆説 (文春新書)

恐怖の2時間18分 [Kindle版]


Kindle 価格: ¥ 589
ポイント : 294pt (50%)

恐怖の2時間18分

恐怖の2時間18分

不動産裏物語 プロが明かすカモにならない鉄則 (文春文庫) [Kindle版]


紙の本の価格: ¥ 637
Kindle 価格: ¥ 629
OFF: ¥ 8 (1%)
ポイント : 314pt (50%)

不動産裏物語 プロが明かすカモにならない鉄則 (文春文庫)

不動産裏物語 プロが明かすカモにならない鉄則 (文春文庫)

合本 世に棲む日日(一)~(四)【文春e-Books】


Kindle 価格: ¥ 2,399
ポイント : 1199pt (50%)

合本 世に棲む日日(一)?(四)【文春e-Books】

合本 世に棲む日日(一)?(四)【文春e-Books】

読書は「アウトプット」が99% 知的生きかた文庫


Kindle 価格: ¥ 617
ポイント : 308pt (50%)

読書は「アウトプット」が99% 知的生きかた文庫

読書は「アウトプット」が99% 知的生きかた文庫

自分のための人生 三笠書房 電子書籍 [Kindle版]


Kindle 価格: ¥ 972
ポイント : 486pt (50%)

自分のための人生 三笠書房 電子書籍

自分のための人生 三笠書房 電子書籍

一瞬でお客さんの心をつかむ! 1秒POP [Kindle版]


Kindle 価格: ¥ 1,101
OFF: ¥ 519 (32%)
ポイント : 550pt (50%)

一瞬でお客さんの心をつかむ! 1秒POP

一瞬でお客さんの心をつかむ! 1秒POP

アメリカ・メディア・ウォーズ ジャーナリズムの現在地 (講談社現代新書)


Kindle 価格: ¥ 702
OFF: ¥ 140 (17%)
ポイント : 351pt (50%)

アメリカ・メディア・ウォーズ ジャーナリズムの現在地 (講談社現代新書)

アメリカ・メディア・ウォーズ ジャーナリズムの現在地 (講談社現代新書)

太陽光バブルはなぜ崩壊したのか 買取制度導入3年後の現実 (朝日新聞デジタルSELECT)


Kindle 価格: ¥ 216
ポイント : 108pt (50%)

太陽光バブルはなぜ崩壊したのか 買取制度導入3年後の現実 (朝日新聞デジタルSELECT)

太陽光バブルはなぜ崩壊したのか 買取制度導入3年後の現実 (朝日新聞デジタルSELECT)

モバイルからのクラウド利用について 〜InnovationEGG第7回「クラウドネィティブ化する世界」

 先日のInnovationEGG第7回「クラウドネィティブ化する世界」に登壇してきました。随分と遅くなりましたが、その資料と感想です。

発表内容



 事前情報でAWS関係の発表が多いということだったので、出来るだけAWSと離れた内容にしようと考えていました。ということで、モバイルアプリをテーマです。
www.slideshare.net

 結果としては、API Gateway良いよという毒にも薬にもならない内容になってしまったような気がします。もう少し、アプリの開発面に踏み込んだ内容にすれば良かったのかもしれません。

伝えたかったこと



 ユーザ側の端末にインストールされるアプリという形態は、想像以上にコントロールが難しいものがあります。運用をしていると、何らかの緊急対応が必要な場面が出てきます。そういった際に、アプリ側もしくはバックエンドのシステム側ではなく、その間で柔軟にできるレイヤーを挟んでおくと救われる場面は結構あります。API Gatewayは、今のところの選択肢としてはかなり良い位置にいると思います。

伝え忘れてたこと



 クラウドネイティブというキーワードとも関連しますが、外部のサービスを多用すると必ず運用中にその影響を受けます。その影響を最小限にするには、下記の方法があると思います。

・緩衝材となるレイヤーを設ける ←伝えた
・REST APIなど標準準拠のAPIを使う ←伝え忘れた
 ⇒標準に近いものを利用しておけば、別サービスへの移行や作り変えも楽
・必ず独自ドメインふっておくように ←伝え忘れた
 ⇒これをやっておくだけで、移行の容易さは格段に変わってきます。

感想



 参加者のニーズがどの辺りか読み切れない部分があって、ペルソナ設定が上手くいかず中途半端な発表内容になってしまった感は否めないです。一方で、『クラウドネイティブ』というキーワードに対する関心度の高さは垣間見れた。今度出す本のタイトルも、たまたまですが『クラウドネイティブ』というワードが入っています。注目されるといいなぁと思います。
 ちなみにこの本に込められた思いとしては、アプリエンジニアが直接クラウドを利用する機会がもっと増えれということです。従来はインフラエンジニア視点でアーキテクチャを語られることが多かったのですが、今後は逆転していくのではないかと思います。或いは、インフラ・アプリという垣根を超えた何かが生まれてくるのかもしれません。そんな萌芽を感じる1日でした。


Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

  • 作者: NRIネットコム株式会社,佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸本勇貴
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2016/04/11
  • メディア: 単行本
  • この商品を含むブログを見る


See Also:
アプリケーションエンジニア向けのAWS本を書きました

参照:
InnovationEGG第7回「クラウドネィティブ化する世界」に登壇・参加しました!|ハンズラボブログ|ハンズラボ株式会社
Innovation EGG 第 7 回に登壇しました
InnovationEGG第7回「クラウドネイティブ化する世界」に登壇してきました(とその感想) - Sweet Escape
『クラウドネィティブ化する世界』について - HAL @bump_of_kiharu

アプリケーションエンジニア向けのAWS本を書きました

 たまに呟いていましたが、『Amazon Web Services パターン別構築・運用ガイド』に続くAWSの第二弾として、『Amazon Web Services クラウドネイティブ・アプリケーション開発技法』という本を書きました。今回も、所属している会社であるNRIネットコム株式会社の同僚たちと書いています。そして今回の本は、主にアプリケーション・エンジニアを想定して書いています。何とEC2の使い方が一切でてきません。

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

  • 作者: NRIネットコム株式会社,佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸本勇貴
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2016/04/20
  • メディア: 単行本
  • この商品を含むブログを見る

本を書いた理由



 前回の『Amazon Web Services パターン別構築・運用ガイド』で、サーバサイドのAWSの構築についてはわりと書ききって、もうしばらくAWSはいいやと思っていました。しかし、自分が想定していた以上にAWSの進化が早すぎました。クラウド・ネイティブやサーバレス・アーキテクチャと呼ばれる仮想サーバを利用せずにシステムを構築する概念が出てきて、それを支えるためのサービスが急速に整ってきたためです。
 一方で、いわゆるインフラエンジニアと呼ばれる人たちには、何が凄いのかピンとこない部分があります。またモバイルやJavaScriptを得意とするアプリケーション・エンジニアには、そもそも情報があまり伝わっていないように思えました。ということで、書くのならば今しかないと予定を早めての投入です。

本書の構成



 まだ校正中ですが、4部構成となっています。

1. クラウドネイティブなアーキテクチャ
2. AWS導入の準備
3. サービスの導入
4. クライアントサイドの設計と構築
付録1 クラウドとエンジニア
付録2 Open API Initiative (OAI) (旧Swagger)

 1章で、クラウドネイティブの概念の説明と、そのアーキテクチャがどうなるかという話を書いています。AWSを念頭に書いていますが、AWS以外のクラウドサービスでも適用できるはずです。2章は、実際にAWSを利用する為の前準備です。アカウントの作成やIAMの設定、SDKの導入などを書いています。
 3章からが本番で、本書で使うAWSのサービスの説明と使い方・サンプルソースを載せています。Lambda,API Gateway,Cognito,DynamoDBなどクラウドネイティブな設計において中心的な役割を果たすサービスの他に、KinesisやAWS IoT、Machine Larning、Mobile Hubと新しいサービスも取り扱っています。ちなみにEC2は取り扱っていません。
 そして4章です。3章で紹介したサービスを組み合わせて、実践的なアプリ構築をおこなっています。iOSやAndroidの他に、フロントエンドアプリとしてJavaScriptを利用したアプリを作っています。チラ見せすると、「サーバ連携するモバイルアプリの作り方」、「Kinesisによるお手軽ELTでTwitter情報の収集」、「Machine LearningでWebサイトの閲覧履歴とお勧めサービス」、「AppleWatchを利用した健康情報の収集」といった感じです。こういったアプリを10個取り扱います。
 付録については、API Gatewayを扱うには外せないSwagger(Open API Initiative)と「クラウドとエンジニア」ということで技術ポエムを書いています。ポエムについてはちょっと恥ずかしいですが、この変化の時代には考え方も大事だなということで載せています。そこの部分は私が書いています。

 ちなみに分量が多すぎて、AWSの分厚い本と言われた前回の本より大幅にボリュームが多くなっています。その分量をどうやって削るか、四苦八苦しています。

対象としている読者



 今回の対象としている読者はアプリケーションエンジニアです。特にモバイルやフロントエンドエンジニアと呼ばれる人に読んで欲しいと考えています。こういった人たちは、Parseに代表されるようなBaaS/SaaSを当たり前のように使っています。そういう人たちが、AWSを使うことにより、もっと自由度高く素早くサービス構築できるということを知ってもらいたいと思っています。
 もちろん今までAWSを使ってインフラを構築してきたエンジニアにも読んでもらいたいです。サーバの上にミドル・アプリをインストールして一からシステムを構築する時代は、オンプレからクラウドに移り変わったように、終わろうとしています。そのことを体感して貰えればなと思います。(ちなみにサーバ構築が完全になくなることは無く、主従が逆転するのではと考えています。)

Kinesis



 IoTを意識して、Kinesisiも入れています。このサービス改めてちゃんと調べると、やっぱり凄いですね。スシローさんの皿センサーのイメージが強くてIoT向きというイメージ強いですが、それだけでは勿体ないです。今では、Webサービスにこそ、もっと使うべきだなと思います。上手く使えば、可用性が高くてコストが安く楽ちんなシステムになるのが一杯あるはずです。ここは今後もっと深掘りしていきたいですね。

まとめというか感想



 今回の本は、面白いメンバーを集めて好き勝手に書けたので楽しめました。若手エースのアプリエンジニアを集めたので、実装とか見ているのも楽しかったです。一方で例によって書いてる途中でどんどんサービスがアップデートされ、追随するのは大変でした。ただ、AWSを使ってアプリを構築するにはという点では、長く使える1冊にはなったのではないでしょうか。発売まであと1ヶ月ほどです。最後の最後まで精度を上げるために校正をがんばります。
 ちなみに今回も、書名を覚えられそうにないです。

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

  • 作者: NRIネットコム株式会社,佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸本勇貴
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2016/04/20
  • メディア: 単行本
  • この商品を含むブログを見る

See Also:
Amazon Web Services クラウドネイティブ・アプリケーション開発技法の目次
『Rubyによるクローラー開発技法』を書きました
『Amazon Web Services パターン別構築・運用ガイド』を書きました
プログラマになりたい Advent Calendar 2015 - Qiita
プログラマになりたい Advent Calendar 2015 - Adventar

AWSとシステムの認証認可を考える

 原稿執筆が追い込みの為に、すっかりとブログから遠ざかっていました@dkfjです。最近、モバイルアプリについて考えることが多いのですが、その中のテーマの1つがシステムの認証認可です。先日、JAWSUGのアーキテクチャ支部で、それをテーマに議論してきたので今時点の課題意識を整理しておきます。

当日の資料



www.slideshare.net

説明が何も書いていないので、これだけ見てもさっぱり解らないと思います。順を追って、説明します。

認証と認可

 まず認証と認可の違いです。認証は本人性の確認であり、認可はリソースに対する利用権限の付与です。多くのシステムでは、認証と同時に認可を行いますが、本質的には別々の機能ですよねという話です。もちろん、1つのシステムの中で同時に実現することの問題もありません。
f:id:dkfj:20160203074335p:plain

Cognitoを利用した認証と認可

 AWSには、認証と認可の部分を簡単にできるサービスとしてCognitoがあります。認証プロバイダとしては、FacebookやTwitterなど外部の認証局を利用できます。OpenID Connectベースの独自の認証局を立てることや、DynamoDBを利用することも出来ます。Cognitoの特徴としては、認証/未認証それぞれに権限を与えることができることです。未認証ユーザには参照権限、認証ユーザには書き込み権限も与えるといったユースケースが考えられますね。

f:id:dkfj:20160203075819p:plain

Cognitoを利用した認証と認可その2

 Cognitoのそれぞれの役割を分割して説明しています。一時的な利用権限の付与が肝となります。また、IAMの設定で、どのリソースを利用可能かを制限できます。
f:id:dkfj:20160203075834p:plain

AWSの認可とアプリケーションが必要とする認可

 このページが、今回の一番のテーマです。AWSの認可とアプリケーションが必要とする認可は違うよねと言うことです。Cognito等で、DynamoDBに対する参照権限を与えたとすると、気を付けないとその認可の範囲が広くなりがちです。例えば、ユーザーデータをDynamoDBに入れていたとしたら、ユーザに与えてよい権限としては、自分のデータに関する部分です。特に2-Tier構成の場合、アプリ側でデータの絞込をするので特に注意が必要です。
f:id:dkfj:20160203075847p:plain

 ちなみにユーザーデータに絞っていえば、CognitoにはCognito Syncという機能があります。そちらの方に格納するのも1つの解です。ただし、イメージ的にはユーザーごとにSQLiteのローカルデータベースを持つようなイメージなので、システムの管理側でユーザーデータをコントロールするといった場合には使えません。

認可のコントロール例

 認可のコントロール例の1つ目としては、その辺りの処理をLambdaにさせたら良いですよねというパターンです。図では、API Gatewayを介していますが、API Gatewayなしで直接Lambdaの2-Tierでも問題ありません。

f:id:dkfj:20160203075905p:plain

認可のコントロール例 その2

 二つ目は、API Gatewayの利用自体も認証済みのユーザに絞るという方法もあるという例です。APIの利用ユーザの認証代わりにAPIキーを使おうとする場合もあります。APIキーは、認証代わりに使っては駄目です。例えばモバイルの場合、APIキーをアプリに埋め込んで配布することになるので、アプリモジュールからAPIキーは抽出可能です。ということで、ちゃんとやる場合はCognito使うのが良いですよ。

f:id:dkfj:20160203075916p:plain

認可のコントロール例 その3

 最後の例としては、Lambda側でCognitoを利用する例です。ここの例では、Cognitoを使っていますが、IAMとAssumeRoleを組み合わせることで、より細かい制御もできます。またIAM Roleの制限数より多いIAM Userを使うということも考えられます。それ以外にも、AWSと離れて、LambdaがADやLDAPなどのユーザストアと会話をすれば色々なことが出来るよねと話していました。

f:id:dkfj:20160203075924p:plain

 ここでIAMを使うとAWSの制限がシステムの制限になってしまうので、個人的には避けたいなと思っています。ケースバイケースですが。

現時点での課題



 認証と認可については、考えれば考える程に奥が深いです。共通のデータを見る場合は、シンプルな認可で充分です。機微な情報の場合は、もう少し厳密にコントロールする必要があります。ただ、あまり細かいことをしようとすると、そもそもLambdaではなく既存の認証フレームワークを使うほうが楽だよねとなります。今後、そういった部分に対応するAWSのサービスや、サードパーティ製のフレームワークが出てくるのではないかなと他力本願で考えています。

数字でみるTV広告と動画配信市場

 先日、ふと気になって日本のTV局の広告収入と動画配信の市場規模を調べてみました。

2014年度の主要局の広告収入



 まずTV局の広告収入です。4大キー局と日本のTV局全体の広告収入を示しています。広告収入のみで、不動産やコンテンツ販売の部分は除いています。(TV局全体は、怪しいけど)

局名 広告収入
日本テレビ 2,385億
フジテレビ 2,312億
テレビ朝日 1,905億
TBS 1,689億
TV全体 1兆9,564億円

f:id:dkfj:20151229081001p:plain

http://www.ntvhd.co.jp/ir/library/presentation/booklet/pdf/2014_4q.pdf
http://contents.xj-storage.jp/xcontents/46760/f47c1a4e/6dfa/4480/a081/7c3d36651de5/140120150519483175.pdf
http://www.tv-asahihd.co.jp/contents/ir_setex/data/2015/20150513.pdf
http://www.tbsholdings.co.jp/pdf/setsumei/setumei201505_2.pdf
http://www.dentsu.co.jp/news/release/pdf-cms/2015019-0224.pdf

各社によって、テレビ広告収入の定義が微妙に違うような気がしますが、まずは参考値として

日本の動画配信サービスの市場規模



 動画配信サービスには、1本あたり幾らのペイパービュー方式と月額固定で見放題のものがあります。有料動画配信の2015年度末予想としては、960万人との数値があります。そのうち月額固定は、590万人とのことです。

2015年 有料動画配信サービス利用動向に関する調査 | ICT総研|市場調査・マーケティングカンパニー

 月額固定のもののみ対象で、月1,000円と仮定すると市場規模は年間で700億円くらいになります。広告収入としては、まだまだ市場の規模としては小さいですね。

 ちなみに海外ではどうなのでしょうか?世界最大の動画配信サービスであるNetflixの場合、米国内加入者総数が4230万人。世界全体では6560万人とのことです。米国内で仮に1,000円とした場合、5,000億円となります。日本とは見えている風景が全然違っていますね。

感想



 この数字が気になったキッカケとしては、最近動画配信サービスを利用する機会が急に増えたことです。また、自分のまわりでも利用者が増えてきています。もっと普及してくるとお金の流れ方が変わるの、またそれはどのタイミングかと気になりました。
 日本の場合、電通・博報堂が広告費を集めてTV局が制作し、視聴者は無料で番組(とCM)を見るという構造でした。一方で米国の場合は、もともとTVはケーブルTVによる有料放送が中心でした。その辺りどう変化していくのか考えていきたいと思います。

Fire TV Stick

Fire TV Stick

See Also
Apple TVを中心としたホームシアター・オーディオ環境の一例
Apple TVでNAS上の動画・音楽を再生する方法
AirPlayを使って、AppleTV+AVアンプでホームオーディオ・システムを構築する話
Hulu(フールー)の契約したった。或いはAppleTVとの連携について