元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

AWS

Shinjuku.rb #37 でSQSとかについて話してきました

shinjukurb.doorkeeper.jp Shinjuku.rb に参加して話をしてきました。 非同期処理は管理画面とかに比べるとちょっと取っつきづらいのか人少なめでしたけど、そのぶんしっかりディスカッションできた気がします。

AmazonLinux 2015.09 に Qt5 WebKit をインストール

まとめ sudo yum install ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/geoclue-0.11.1.1-0.13.20091026git73b6729.el6.x86_64.rpm \ ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/NetworkManager-glib-0.8.1-99.el6.x86_64.rpm \ ftp:/…

Amazon SNS + SQS な構成をAWS Ruby SDK V2で自動化する

Amazon SQSへのキューイングの際、直接SQSを使っても良いですが、SNSを使うと抽象度が高くなり捗ることもあります。 CloudWatchを使ってログを残すこともできますし、便利です。 http://dev.classmethod.jp/cloud/aws/sns-topic-should-be-placed-behind-sqs…

Amazon Auroraメモ

クライアント様が使いたいということで調べたことメモ。 aws.amazon.com 費用について Auroraは最低プランでもメモリ15GBぐらいのプランになるので、現在開発サーバで使っているm3.mediumに比べると3倍ほど。 同じr3.largeだと2割ほど高いです。 MySQL Singl…

Aws::S3::Clientでリージョンをまたぐコピーをするときは、コピー先のリージョンを明示してやる。

たとえばダウンロード販売のコンテンツを置く場合など 長期間ホストするファイルの容量が大きい 頻繁なリージョン間転送(EC2など)は発生せず、インターネットへの転送がメイン そこまでダウンロード速度を要求しない こんなとき、S3バケットを価格の安いリ…

Amazon Cognito Identity でFacebookやTwitterログインの名寄せをしてみた

この記事はQiitaに書いた奴のコピーです。 AWS SDK for Ruby V2のCognitoIdentity::Clientクラスを使ってみました。 サンプルコード logins = { 'graph.facebook.com' => 'facebook_oauth2_access_token', 'api.twitter.com' => ['twitter_user_token', 'twi…

Amazon Cognito + AWS JavaScript SDKで作るサーバ不要のアップローダ

ずっと気になってたAmazon Cognitoを使ってみました。 Cognitoを使うと、アプリ側だけでAWSへのアクセス権を与えることができます。 これを利用して、サーバインスタンスなしにいろいろなことができるようになります。 ありがちな例ですが、今日はブラウザか…

OpsWorks + Rails でロールモデル的な役割分担をインスタンスにもたせるBK

OpsWorks + Rails OpsWorksでRailsアプリを運用しようとした場合、通常の方法では、すべてのRailsアプリインスタンスが同じ設定になり、たとえば つねに1つのインスタンスでのみcronを実行する バックグラウンドタスク専用のインスタンス群を用意したい とい…

OpsWorks + Whenever

cron設定をバージョン管理に含めることができるのでありがたいWheneverをOpsWorksで使ったときのメモです。

S3 あるディレクトリ(プレフィクス)のオブジェクトを一括削除(AWS SDK for Ruby)

railsのaws-sdk gemを使ってs3のフォルダ(folder)を削除する 上記記事の方法はSDK v1のものなので。 削除対象のkeyのリスト作成回りとが非常にダサいですが、取り急ぎこんな感じでしょうか。 s3 = Aws::S3::Client.new pager = s3.list_objects(bucket: buck…

Elastic Transcoder ジョブをキャンセルする(AWS SDK for Ruby)

Elastic Transcoder ジョブをキャンセルする http://docs.aws.amazon.com/ja_jp/elastictranscoder/latest/developerguide/canceling-a-job.html ステータスがまだ [Submitted] になっているジョブをキャンセルできます。このステータスは、Elastic Transcod…

aws-flow-ruby でheartbeartを使ってタスクの進捗率を把握したり死活監視できるようにしておく

Amazon Simple Workflow Service (SWF) from Amazon Web Services Japan 実⾏行行時間の長いアクティビティのサポート ・定期的なハートビートの実⾏ というわけでその方法を調べたのでメモ。 default_task_heartbeat_timeout Activityクラスでハートビート…

AWS::SimpleWorkflow::Errors::ValidationException 1 validation error detected: Value '' at 'decisions.1.member.scheduleActivityTaskDecisionAttributes.activityType.version' failed to satisfy constraint: Member must have length greater than or equal to 1

[AWS SimpleWorkflow 400 0.470025 0 retries] respond_decision_task_completed(:decisions=>[{:decision_type=>"ScheduleActivityTask",:schedule_activity_task_decision_attributes=>{:activity_id=>"Activity7",:activity_type=>{:name=>"EncodeActivit…

aws-flow-ruby で失敗したタスクを失敗の種類に応じて繰り返す

SWFでタスクが実行できなかった場合はリトライ、エラーならそこで終了など、コントロールしたい。

CloudFront + 署名付きURL でFlashのcrossdomain.xml に対応する方法(マルチオリジン編)

Why? CloudFrontを通してHLS動画配信などを行う場合、JWPlayerなどFlashを使うのが一般的です。(PCの場合) ただし、Flashでは設置するページと、読み込みソースのドメインが異なる場合、/crossdomain.xmlが要求されます。 もし、例えば一部の課金ユーザに…

CloudFront で Origin のパスが指定できるようになってる件

Amazon CloudFront What's New? Amazon CloudFront Now Allows Directory Path as Origin Name For example, if you're using an Amazon S3 bucket as your origin, you can specify bucket-name.s3.amazonaws.com/production instead of just bucket-name.s…

OpsWorks customize.rbでbuilt-in cookbooksの設定値を変更する

OpsWorksのbuilt-in cookbooksの設定値を変更するのにこれまでカスタムJSONを使っていましたが、設定をバージョン管理に含められないのが問題でした。 調べてみると Custom Cookbooks のリポジトリ内に customize.rbというファイルを置くことで、nginxをはじ…

レンタルサーバに置いてる(MTな)webサイトでamazon cloud frontを使ってみた話

MT東京のLTで話したスライド。 レンタルサーバに置いてる(MTな)webサイトでamazon cloud frontを使ってみた話 from Takeuchi Yuichi

Flow.js + S3 + Ruby で分割アップロード バックエンド実装メモ

Railsアプリでの大容量ファイルのアップロードのため、Flow.jsを使って分割アップロードを実装しました。その時の実装メモ。

CloudFront + S3以外 というのも有力な選択肢だと思ってる

S3に置かなくてもCloudFront使って良いんだよ。

ふつうのWebサイトの負荷軽減におけるCloudFront

最近Cookie及びHTTPヘッダ転送が可能になったことで、例えば普通のレンタルサーバに置いているWordpressなどでも、負荷軽減&高速化を狙えそうです。

CloudFront + 署名付きURL でFlashのcrossdomain.xml制限を回避した話

CloudFrontでHLS配信したい→スマホ以外ではFlashが必須→クロスドメインorz で困った末に無理矢理なんとかしたメモ。 これを応用して、動画ファイルUP→ElasticTranscoderでHLS(m3u8+TS)に変換しS3に配置しCloudFront+署名付きURLのみアクセス許可、Webアプリ…

OpsWorksでエラー箇所を把握するために見るところ

/var/lib/aws/opsworks/cache/chef-stacktrace.out rubyのスタックトレースをjsonとあわせて見るとわかりやすい

OpsWorksで設定した Custom JSON で意図した通りに値が設定されているか確認する方法

/var/lib/aws/opsworks/chef/以下にjsonとlogが入っているのでそれを見る。

動画変換プラグイン VideoTranscoder for MovableType

Amazon ElasticTranscoderを利用し、MovableTypeにアイテム動画変換機能を提供します。

MovableType AWS版 + S3 + CloudFront に移行しました

## 後日談(2014.8.6) やってみてわかったんですが、rsyncだとS3への反映が遅いのと、設定間違えて更新頻度上がりすぎて課金地獄というリスクもあり、ちょっと使い勝手悪かったです。 いまだと、CloudFrontは配信元のExiresを優先してくれたり、HostなどのH…

Movable Type for AWS(AMI)(Amazon Linux AMI 2013.09) yumエラー対策

Movable Type for AWS(AMI)は2014/5/7現在、Amazon Linux AMI 2013.09 版がベースです。 そしてこのAMIでは、不整合を防ぐためyumでのperl関連パッケージのアップデートが禁止されています。 /etc/yum.conf # PUT YOUR REPOS HERE OR IN separate files na…

MT6のAMIを試しに起動して設定などを観察したメモ

※はじめてのEC2みたいな手順紹介はやりません。そんなのググったらすぐですから。 AWS Marketplace で Movable Type 6 の販売を開始 | Movable Typ アマゾン ウェブ サービス(以下、AWS)の AWS Marketplace にて、Movable Type 6 の販売を開始しました。Mo…

EC2でRHEL6.4のAMIから起動したインスタンスに二度とSSH接続できなくなる恐怖のバグ

さんざんはまったのでメモ。 RHEL6.4のAMIからインスタンスを起動 再起動 sshdの起動に失敗し接続が不可能になる 何時間か浪費した後、イメージ側のバグだったことが判明orz