サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
imai-factory.hatenablog.com
みなさん、こういうデバイス使ってIoTしたことありますか? soracom.jp これはUSBドングルタイプのセルラーモデムで、例えばラズパイやPC、Macに接続することでそれらのコンピューターにセルラー通信上でのIP通信を実現可能にしてくれます。使ったことある方はわかると思うんですが、このデバイスはpppインターフェイスとしてOSに認識されます。が、実はSORACOMはppp方式での接続を提供していません。このことは下記のドキュメントのPDP Typeが「IP」となっていることからわかります。PDP Typeとはパケット接続の認証方式のことで、IPもしくはPPPという2つの方式があり、SORACOMはIP方式のみを採用しています。他の多くのキャリアも同様です。 参照元: SORACOM Air for セルラーの利用を始める: STEP 3: デバイスを設定する (APN 設定 / ロー
この記事では、SORACOM Air for セルラーやSORACOM Arcで接続されたデバイスとクラウドアプリケーションの間の通信について考えてみます。 なお、わたしはこれを書いている2021/12/16現在、株式会社ソラコムで働いていますが、この記事内に出てくるソラコムの仕様についてはすべて外部から観測可能な話に基づいて書いています(のはず)。 ちなみにこの記事は株式会社ソラコム Advent Calendar 2021の19日目の記事です。 デバイスとクラウドの通信にはどんなものがある? IoTアプリケーションにおける通信のユースケースとしては以下のようなものがあげられます。また、これらを組み合わせたアプリケーションも考えられるでしょう。 テレメトリ デバイスからクラウドに対してデータを送信する。スマートメーターのように数時間おきから数日おきに長いインターバルで定期送信するもの、ロ
仕事でCANを扱うことになりそうだったので予習を兼ねて自分の車の位置情報とエンジンの回転数、速度をクラウドにアップロードして可視化してみるというのをやってみた。 作ったものの全体像は以下のようなイメージ。クルマに載せるデバイス(canduinoと命名)はエンジンの回転数と速度をOBD2コネクタ経由でCANから、位置情報をGPSモジュールから取得し、Unified Endpoint経由でSORACOM Harvestに格納し、SORACOM Lagoonで可視化している。間にSORACOMが提供するバイナリパーサーという機能を挟むことによって、canduinoから送信されたバイナリをJSON化している。 デバイスの見てくれはこんなかんじ。クルマのUSBコネクタから電源をとっていて、DB9はOBD2コネクタにつながっている。LTEのアンテナの先っぽにGPSモジュールを巻きつけているのは、いちば
SORACOM Advent Calendar 2019の12/19の記事です。一年に1回、この時期にだけブログを書いている気がします。 qiita.com もともとは「ぼくのかんがえたさいきょうの再送ロジック」というタイトルで、IoTデバイスとクラウドの間でやりとりされるメッセージの再送ストラテジの話を書こうと思っていました。 例えばデバイス -> クラウド方向に関して言えば、Raspberry Piのような比較的リッチなデバイスであれば、データ送信失敗時や通信がオフラインの時にはプログラム内のバッファやファイルシステム上にデータを保存しておいて、Availableになったらリトライすることが容易ですが、(基板として)ArduinoやWioLTE、M5Stackなどのマイクロコントローラでは、取りうる選択肢が非常に狭くなります。また、そもそもどうやってデータ送信失敗を検知するんだっけ?H
職場の同僚のドッグさん(語尾は上げる)に「パイセン、Redshiftとか使ってイイカンジにAttribution分析するならどんなかんじなんすかね〜」って言われたので考えた。 Attribution分析とは 「あるコンバージョンに対して貢献のあった広告の表示やクリックなどの、要因分析」という感じだと思っている。例えば下記のような導線をたどった場合を考えてみる。 banner impression(1) banner impression(2) banner click paid_search impression paid_search click このときにconversionに対して貢献度を下記のように割り振るイメージ。割り振りは適当。適当なんだけど、この数値の精度をいかに上げていくのかというのが恐らく一番大事な話なんだと思う。 banner impression(1): 5% ban
ex-mixi Advent Calander 2017の12/12分のポストです。みんなエモいことを書いているのでわたしもエモいことを書くことにします。 ちなみに今日はわたしの結婚記念日で、嫁とはmixiで出会いました(物理/社内)。 で、テーマはソリューションアーキテクト(以下、SAと略します)という仕事について。もっとみんなにSAって何なのかというのを知ってもらいたいなと思ってます。SAってめっちゃ面白いよ!ってのを叫びたいのです。なお、本ポストではわたしがAWSでSAをやっていたときの話をしますが、あくまで経験や「わたしはこうやっていた」という話であって、AWSを代表する見解ではないことをご理解ください。 mixiには2010/2から2012/7までの約2.5年在籍していて、ずっと広告関連のアプリケーション開発をやっていました。自分のなかではものすごく体感時間長かったんですが、振り
IABのブログポスト、Top 5 Trends in Gigital Out of Homeを読んだ。DOOHというのは初めて聞いた言葉だったのでちょっと記事を拾ってみた。 「IABが考える、2015に掴んでおきたい5つのトレンド」的な記事。 DOOHとは Digital Out of Home (or “DOOH” as the channel is commonly referred) encompasses a variety of screen shapes, sizes, and levels of interactivity. From digital billboards and signs on taxis, to digital signage at airport gates and gyms and waiting rooms, these varieties und
Personalization at Spotify using Cassandra 広告の話ではないけど、Spotifyのパーソナライゼーションの話ということで。Cassandraを使って大量のデータをベース多くのユーザーに低レイテンシな、プレイリストのパーソナライゼーションを提供してますよ。その裏側を少し紹介しますよという話。 プレイリストのレコメンデーションの難しさの一例として、メタルが好きな2人のひとがいて、再生している楽曲やプレイリストは全く同じだとしても、片方のひとは子供がいるから夜や家ではメタルは聴きたくない。もう片方のひとはそんなこと気にせずいつでもメタルを聴きたい。みたいなケースでレコメンデーションの挙動をいかに最適化するのか、という話が挙げられている。そこで出てくるのがレコメンデーションのパーソナライゼーションでしょうと。 で、中身を読んだんだけど、実際にはパーソナライ
inmobiのレポートシステムでLensを使っているよという話。 Apache Lens at Hadoop meetup from amarsri Generation 1 : RDBMS Architecture RDBMSで1.5TBくらいのデータを扱っていた。 Challenges データロードに24時間近くかかったり3ディメンションくらいしか現実的にはクエリできなかったり・・・いろいろ辛かった。 誰もが通る道だよね。でもinmobiもそれやってたって話を聞くとなんか安心するw Generation 2 : Hadoop + Columnar DB Architecture Hadoop + Columnar DB 集計済みのデータ: Columnar DBにいれてダッシュボード利用 生に近いデータ: Hadoopにいれてアドホッククエリ。 Columnar DBに8TB。Hado
Beating the Speed of Light with Your Infrastructure (ADV402) Beating the Speed of Light with Your Infrastructure in AWS | AWS re:Invent 2014from Amazon Web Services AWS Re:Invent 2014でのAdRollの発表のスライド。AdRollと言えばAWSてきにはDynamoDBの事例でよく話題にあがる会社。ちょっと内容をつまみ食いしてみる。 扱っているトラフィックの量 150TB/Day 5ms以内にレスポンス(サーバー内だけの話のはず) グローバルで100万request/sec超え(Dailyでは600億requestsくらいの模様) 1兆(!)を超えるアイテム(DBのレコード数だと思う) アーキテクチャ アーキテク
Could Programmatic Branding Have a Breakthrough Year? パフォーマンス系、獲得系の広告だけじゃなくてブランディング系の広告においてプログラマティックが利用されるようになっていくのかという話。書いているのがDMPのセールスのひとなのである程度バイアスはかかっているものの、基本に立ち返るいいポスト。 The most fundamental problem with digital branding is that it is truly a one-to-one marketing exercise. If we dream of the “right message, right person, right time,” then matching a user with her devices is table stakes for p
AWS Advent Calander 12/19分。 Kinesis用のFluentdプラグインを書いているので、それについてブログ書きたかったんだけどまだちゃんと公開できるような状態になっていないので、それは冬休みの宿題ということで。 CloudFrontのログを集計して可視化するツールを実装する機会があったので、その仕組みの中で使ったDynamoDBの話や、反省点などを書いてみる。ちなみにs3statというサービスを利用することも考えたんだけど、量的に全然処理できなそう/お金払えばできるけど高そうなので自分で実装することに。 あと、そんなんhive使えばよくね?って話は仰るとおり。もろもろの事情で謎のpythonスクリプトを引き継いでやらなければならなかったのです。 つくったもの こんな感じの、CloudFrontから出力されるログを最終的に可視化されるまでのパイプライン処理を実装し
YCSBを使ってみよう的なテーマで書いた前回の続きとして、今回は結果の読み方や負荷パターンの調整について書いてみる。 今回の目次は以下のとおり。 コマンドのパラメータの読み方 DBENGINEごとの接続設定 workloadファイルの読み方/書き方 結果の読み方 コマンドのパラメータの読み方 基本的には起動は以下のようなイメージ。 ./bin/ycsb DBENGINE (run|load) -P CONFIGFILE [ -threads n ] [ -p key=value ] [ -s ]DBENGINEのところはdynamodbやらredisやらmongodbやらが入る。 その次はrunかloadが来る。これは動作モードを決定する値でrunはトランザクションフェーズ(読み込み&更新系)、loadはロードフェーズ(書き込み)の動作になる。 以下、パラメータのリスト。 パラメータ名 意
ExcelってODBC扱えるよね、ということを思い出したのでExcelからRedshiftに接続してみたメモ。 あんまり難しいこと考えずにDWHをカジュアルに使おうぜ、という気持ち。基本的には下記のブログを参照してやってみた。 http://pgsqldeepdive.blogspot.jp/2013/04/excelpostgresqlodbc.html ぼくの環境はWindows7(64bit) + Excel2010(32bit) 手順の概要 PostgreSQL用のODBCドライバのインストール ODBCデータソースの設定 Excelで外部データソースに接続 ピボットテーブルのデータソースにRedshiftを使ってみる PosggreSQL用のODBCドライバのインストール http://www.postgresql.org/ftp/odbc/versions/msi/ からドライ
Amazonが社内で開発し、サービスで利用しているDynamoというストレージサービスがあるのだけど、これについての論文が公開されていたので読んだのでまとめてみる。 この論文を書いたメンバーにはAmazonのCTOであるWerner Vogelsや、AWSでDynamoDBやElastiCache、SQS、SNSなどの製品のマネージメントをしているSwami Sivasubramanianらが含まれている。 Dynamoをひとことで表すと分散型でKey Valueストレージで、データの一貫性に関しては結果整合性を保証するサービスだ。なお、AWSで提供されているDynamoDBとは別物なので注意。 原文はこちらから参照できる。今回のポスト中の引用(図や文問わず)はすべてこちらから引用している。 また、既に日本語訳をされている方もいらっしゃるので原文をそのまま日本語でよみたい人はこちらを参照の
ここ数年でNoSQLを実際のシステムで扱うのも割りと一般的になってきていて、機能面だけでなく、性能面が気になるケースが多くなってきたと思う。 じゃあどうやって性能はかるの?比べるの?って話になるよね。 いわゆる、NoSQLにおけるapache benchやJMeterのようなものがほしいよね。 今日は、そのあたりのひとつのソリューションとなるかもな、YCSBというツールについて書いてみる。 YCSBとは YCSBはYahcoo Cloud Serving Benchmarkの略称で、プロジェクトのWebはこちら。 http://research.yahoo.com/Web_Information_Management/YCSB https://github.com/brianfrankcooper/YCSB/wiki ざっくりひとことで役割と説明すると、NoSQL向けのBenchmarkツ
EC2のAPIでは、オンデマンドインスタンス(リザーブドインスタンスも)は固定IP付きで立ち上げることができるが、スポットインスタンスはそういうAPIはない。 もともとスポットインスタンスは起動していることが保証されているわけではないので固定IPを付けて運用するようなケースはあまりないと思うが、そういうケースに出くわしたので考えてみた。ちなみに今回はVPCの中で動かすのが想定ケース。 ステップの概要としては 欲しいIPをつけたENIを作る スポットインスタンスをAPIでリクエストする。このときにAPIのパラメータとしてuser-dataでアタッチしたいENIのIDを渡す 立ち上がってきたスポットインスタンスはuser-dataで渡されたENIをcloud-initのuser-scriptやinitスクリプトでアタッチする pythonで書くとこんな感じ。 今回はcloud-initのuse
AWS SDK for node.jsのデベロッパープレビュー版がリリースされたので触ってみた。 AWS SDK for Node.js (Developer Preview) http://aws.amazon.com/jp/sdkfornodejs/ まだデベロッパープレビュー版なのですべてのサービス向けのAPIが実装されているわけではなくて、現状EC2、S3、DynamoDB、SWFのみに対応済みな状態。こんな感じ↓ 何をしてみようかというところで、S3を取り扱うようなサンプルコードはちょいちょい見かけるのでDynamoDBを扱って見ることに。socket.ioを触ったことがなくて、触ってみたこともあって、http://www.atmarkit.co.jp/ait/articles/1210/10/news115.htmlを参考にチャットアプリケーションを実装してみた。アーキテクチャ
ここでは、EC2の上でinnodbをチューニングして使うという観点でTIPSをまとめてみた。 RDS便利だから使おうぜってのは今回の話のスコープには含みません。 あと、innodbについて、割りとちゃんと調べてみたのは初めてだったりするので、間違ってる点など見つけたらぜひご指摘くださいませ。 innodb関連 バッファプール ワーキングセットを乗せておくオンメモリのバッファ領域。読み書き共にこの領域を経由して実施される。 参照時はバッファプール上でデータを探して、なければテーブルスペースから取得する。(そのデータはバッファプール上に格納される) 書き込み時はリクエストを受け付けてワーキングセットを更新し、ログの書き込みへ移行する。 設定はinnodb_buffer_pool_size 監視はSHOW ENGINE INNODB STATUSか、mysqladmin extended-sta
こんばんは! 今回はCDP Advent Calendarへの投稿です。 今日はStampパターンの拡張の話について書いてみます。 きっかけは「MongoDBのクラスタがAMIくらいお手軽に試せたらいろいろ触ってみるんだけどなぁ」という声を頂いたこと。 はじめに 今回やってみるのは、タイトルの通りだけどCloud FormationとChefを使ってMongoDBのクラスタをデプロイしてみるということ。いろんなサードパーティーベンダーさんが提供している彼らの製品が乗っているAMIのごとく、さっとクラスタをデプロイして、ベンチして、終わったら捨てる、みたいなことができることを目指します。 まず、Cloud Design Patternには、Stampパターンというのがあって、AMIという仮想マシンのイメージを使って同じ構成のサーバーを、あたかもスタンプを押すように複製するデザインパターンです
ひとまず動かしてみる。 yumでインストール。楽でいいね。 $ sudo yum install nginx ==snip== Running Transaction Installing : libxslt-1.1.26-2.6.amzn1.x86_64 1/5 Installing : GeoIP-1.4.8-1.5.amzn1.x86_64 2/5 Installing : libXpm-3.5.8-2.8.amzn1.x86_64 3/5 Installing : gd-2.0.35-10.9.amzn1.x86_64 4/5 Installing : nginx-1.0.15-1.9.amzn1.x86_64 5/5 ==snip== Installed: nginx.x86_64 0:1.0.15-1.9.amzn1 Dependency Installed: GeoIP.x8
2012/12時点で、Elastic BeanstalkのPHPコンテナが新しくなっているので、この記事通りに動かないかもしれません。 PHPを書く機会があったのでElastic Beanstalkを使ってみた。 gitからpushでデプロイできるので便利ですね。 使い方のイメージは下記の感じ。(内容はほぼ下記のとおり) http://docs.amazonwebservices.com/ja_jp/elasticbeanstalk/latest/dg/create_deploy_PHP_eb.sdlc.html 必要なもの git Elastic Beanstalkのコマンドラインツール。 http://aws.amazon.com/code/AWS-Elastic-Beanstalk/6752709412171743 (Python2.7以上が必要です) 手順 1. ディレクトリ構成を
このページを最初にブックマークしてみませんか?
『imai-factory.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く