2014-01-01から1年間の記事一覧

(自称)クラウド型言語 Clalaを発表してきた

Lambdaによるクラウド型言語の実装 from Sugawara Genki AWS Lambda Meetup #0というイベントで、(自称)クラウド型言語 Clalaを発表してきました。 winebarrel/clala winebarrel/clala · GitHub 全然ネタがなくて休日を2日ほどつぶして作ったんですが、全然…

node: コルーチンで同期的に処理する

nodebrewでv0.11.14をインストールしたら、コルーチンが使えるようになったのでとりあえずメモ。 #!/usr/bin/env node --harmony var AWS = require('aws-sdk'); var ec2 = new AWS.EC2(); var main = (function*() { yield ec2.describeInstances({}, funct…

AWSのAPIのテストのつらみ

AWSを管理するツールをいくつか作っているが、たまにテストがめんどくさくなる。 具体的に言うとついさっきPiculetのテストが壊れた。 原因はRoadworkerのPrivate DNS対応をテストするためにいくつかVPCを作ったら、それがPiculetのテストと競合して「こんな…

PostgreSQLカンファレンス2014に行ってきた

先日、PostgreSQLカンファレンス2014に行ってきたのでメモ。 NTTデータと PostgreSQL が挑んだ総力戦 大規模案件にPostgreSQLを投入した話。 案件 開発者1000人規模 10M step DB規模 1インスタンス/〜10TB DBアクセス 200TPS〜 ミドルウェア RHEL 6.2 Postgr…

AWS Lambda: JavaScriptの関数をLambdaの関数として動かす

JavaScriptの関数をLambdaの関数として動かすlamblegというモジュールを作った。 https://www.npmjs.org/package/lambleg https://github.com/winebarrel/lambleg 使い方 var Lambleg = require('lambleg'); var lambleg = new Lambleg({ region: 'us-east-1…

AWS Lambda: context.done()の中身

context.done()の中身が気になったので、ちょっとソースを出力してみた。 exports.handler = function(event, context) { console.log(context.done.toString()); }; 2014-12-01T14:37:21.597Z 8813aa33-7967-11e4-9b88-b730c83d5e8a function (err, message…

S3をgitのリモートリポジトリにする

3年前の話題が自分的に再燃したので、ブログを書く。 要約 jgit(パッチバージョン)を使うとS3をリモートリポジトリにできます gitのカスタムコマンドを作るとさらにシームレスに連携できます jgit jgitはJavaで実装されたgitでEclipseのプラグインなどで使わ…

AWS Lambdaについて気になること

AWS Lambdaについて気になることをつらつらと。 Amazon SNSサポート Amazon SNSのイベント通知がサポートされていないのが謎。ユースケースを考えると夢がひろがりんぐだと思うのだが、以外とそうでもないのだろうか…?同じ疑問を持っている人も多いと思う。…

AWS Lambda: 任意のシステムコマンドを実行する

Exploring The AWS Lambda Runtime Environmentが興味深かったので、任意のコマンドを実行してみた。 lambchopで以下のtest.jsを実行。 #!/usr/bin/env lambchop /* function_name: test role: arn:aws:iam::123456789012:role/lambda_exec_role handler: te…

AWS Lambda: バイナリデータをイベントとして送る

以下のツイートが興味深かったので、ちょっと検証してみた。 @shot6 Lambdaってイベントストリームに画像バイナリ流せるのですか?それおもしろい。。— Kazunori Sato (@kazunori_279) 2014, 11月 14 送信側Rubyスクリプト バイナリを直接送信することはでき…

AWS Lambda: aws-sdkで自分自身にイベントを送る

『Lambdaの無限ループ』を読んで、aws-sdkで自分自身にイベントを投げることができそうだったのでやってみた。 test.js #!/usr/bin/env lambchop /* function_name: test role: arn:aws:iam::123456789012:role/lambda_exec_role handler: test.handler */ v…

AWS LambdaでMySQL(RDS)に接続する

AWS LambdaでMySQL(RDS)に接続できるか試してみた。 テストスクリプト ※あいかわらずlambchop使ってます。超便利! test.js #!/usr/bin/env lambchop /* function_name: test role: arn:aws:iam::123456789012:role/lambda_exec_role handler: test.handler …

AWS Lambdaで外部のURLをたたく

lambchopができたので、AWS Lambdaでいろいろ試行錯誤中。 以下のようなスクリプトを立ち上げて、echo '{}' | lambchop-cat testでイベントおくってやると、外部のURLをたたけた。 #!/usr/bin/env lambchop /* function_name: test role: arn:aws:iam::82299…

lambchop 0.0.2: Invoke AWS Lambda function from local as normally script

AWS LambdaのLimited Previewが使えるようになったので、デバッグ用にローカルからさくさく実行できるツールを作ってみた。 lambchop 0.0.2 https://github.com/winebarrel/lambchop shebangに「#!/usr/bin/env lambchop」と書いておくと、マジックコメント…

DynamoDB Streamsを触ってみた / ツール作った

なぜかDynamoDB StreamsのLimited Previewの利用申請が通ったので、DynamoDB Streamsを触ってみ…ようとしたが、 何をするにもAPIたたくのは不便なので、とりあえず各種ツールを作った。 ddbcli 0.4.2.beta2 https://github.com/winebarrel/ddbcli/tree/dynam…

Ridgepole 0.4.10

利用され具合がいまいちよく分からないのですが、Ridgepole 0.4.10をリリースしました。 https://github.com/winebarrel/ridgepole 変更点 テーブルのリネーム時にdry-runをするとこける不具合を直しました 以上です。 Fixの副作用として、dry-run時にshow/s…

Roadworker v0.5.2: Private DNS対応など

Route53管理ツール「Roadworker」の v0.5.2 をリリースしました。 https://github.com/winebarrel/roadworker 主な変更点は以下の通りです。 Private DNS対応 --target-zoneオプション追加 マジックコメント出力対応 Private DNS対応 以下のようなシンタック…

DynamoDBの前にキャッシュを置こうとした話

最初に断っておくとこれは懺悔のエントリです。 スライド: DynamoDBのまえにキャッシュおく奴 AWS Casual Talksでのグタグタな発表申し訳ありませんでした! (あと、マイク持っていただいた @takipone さん、ありがとうございます。AWS Advanced User Meetu…

ddbcli 0.4.0

https://github.com/winebarrel/ddbcli ※最初に断っておくと、菊水を飲みながらコードを書いていました。今はタカラcanチューハイに移ってます。バグ報告をお待ちしています ※0.4.1をリリースしました これは何? Amazon DynamoDBのインタラクティブcliです…

Gratan: MySQL権限管理ツール

いつものアレです。 https://github.com/winebarrel/gratan 以下の様なDSLでMySQLの権限を管理します。 require 'other/grantfile' user "scott", "%" do on "*.*" do grant "USAGE" end on "test.*" do grant "SELECT" grant "INSERT" end end user "scott"…

Mechanism of Gossip protocol

社内勉強会で発表したので貼っておきます。 2014 09-23 Mechanism of Gossip protocol from Sugawara Genki

Ridgepole 0.4.8.rc2: 外部キー対応

Foreignerを使って外部キーに対応してみました。 https://github.com/winebarrel/ridgepole/tree/v0.4.8#foreign-key ※インストール時、要--preオプション 使い方 create_table "parent", force: true do |t| end create_table "child", id: false, force: t…

Ridgepole 0.4.8.rc1: executeを追加してみた

スキーマ管理ツール Ridgepole にexecuteメソッドを追加してみました。 https://github.com/winebarrel/ridgepole/tree/v0.4.8#execute rc1なのでインストールする場合は--preオプションが必要になります。 使い方 executeを使ってforeign keyを貼る例です: …

Amazon Linux用 redis 2.9.999-9150a68493f4627a rpm

作ったので置いておきます。 redis-2.9.999-9150a68493f4627a

Amazon Linux用 redis 2.8.14 rpm

ビルドしたので置いておきます。 redis-2.8.14

zabbix-client 0.0.1

深遠な理由によりzabbix-client 0.0.1をリリースしました。 https://github.com/winebarrel/zabbix-client これは何? Zabbix APIのRubyクライアントです。 既存のRubyクライアントはいろいろあるんですが、ちょっと使いにくいので車輪の再発明をしました。 …

検証用にfluent-plugin-dynamodb-altを作った

検証用にfluent-plugin-dynamodb-altというのを作りました。 検証用なので、RubyGems.orgには未登録。積極的にメンテナンスする気はないです。 →諸事情により割と積極的にメンテしてます fluent-plugin-dynamodbの微妙な点 PKがかぶる BatchWriteItemでExpec…

CloudWatch Alarm/Logs管理ツールを作った / CloudWatch Logsについて

CloudWatch Logsを本格的に使いたかったので、CloudWatch Alarm/Logsの管理ツールを作りました。 また、その過程でCloudWatch Logsについていくつか知見がたまったのでメモしておきます。 Radiosonde: CloudWatch Alarm管理ツール https://github.com/wineba…

GitHubを使った複数人でのスキーマ管理 on Rails

要約 Chefみたいなスキーマ管理ツール(Ridgepole)を使うと、GitHubを使ったワークフローでスキーマを管理できる(と思います、たぶん) RailsのMigrationsについての問題提起 Migrationsは便利な仕組みですがベストではないと常々思っていました。 具体的…

Ridgepole 0.0.1

Ridgepoleというスキーマ管理ツールを作りました。 https://bitbucket.org/winebarrel/ridgepole デモを見ればわかると思いますが、RailsのDSLでスキーマを定義してその通りにDBを変更するものです。(Chef/Puppetのごとく) Migrationはいまいちなので、こ…