タグ

ブックマーク / dev.classmethod.jp (110)

  • 【Amazon S3 Streaming】AWS CLIを使って標準入出力とS3を直接つなぐ【小ネタ】 | DevelopersIO

    よく訓練されたアップル信者、都元です。ひさびさのブログになってしまいました。リハビリも兼ねて、小ネタにて。 ローカルファイルシステムと標準入出力 まずは基礎的過ぎる話から。linuxシェル上で、ローカルファイルシステム上のファイルを標準出力に書き出したい時、例えばこんなコマンドを使いますね。 $ cat foo.txt 次に、シェルからちょっとしたテキストファイルを作成したいとき、下記のようにechoとリダイレクトを使って書き込みをすることがあると思います。 $ echo foobar >foo.txt 複数行に渡るファイルであれば、ヒアドキュメント *1を使ってこんな感じでしょうか。 $ cat << _EOF_ >bar.txt aaa bbb _EOF_ ローカルファイルシステムとAmazon S3 さて一方で。AWS CLIでは、下記のようにs3 cpサブコマンドで、S3とローカル

    【Amazon S3 Streaming】AWS CLIを使って標準入出力とS3を直接つなぐ【小ネタ】 | DevelopersIO
    okinaka
    okinaka 2015/04/21
  • 【初心者向け】ApacheBench入門 | DevelopersIO

    こんにちは、虎塚です。 今週クラスメソッド社内で性能テストツールのApacheBench をテーマにした勉強会を行うことになりました(勉強会というと固い感じですが、経験者から知見をいろいろ教えてもらおうという雑談会です)。 そこで、ApacheBenchをまったく使ったことがない方の予習用に、ごく基的な情報をまとめておきましたので、公開します。 ApacheBenchのインストール方法 Apache HTTP Serverをインストールします。 sudo yum install httpd または、apr-utilパッケージをインストールすれば、httpdをインストールしなくてもApacheBenchを利用できます。 sudo yum install apr-util ApacheBenchの特徴 ApacheBenchは、Apache HTTP Serverに同梱されている性能テストツ

    【初心者向け】ApacheBench入門 | DevelopersIO
    okinaka
    okinaka 2015/03/24
  • Jenkins + Ansible + PackerでAMI作成を自動化する | DevelopersIO

    最近はAnsible + Packerの組み合わせでAMIを作ることが増えてきました。毎回Ansibleを書き換えるごとにpackerコマンドを実行するのは面倒なので、最近はJenkinsを利用してAMI作成を自動化するようにしています。今日はそのご紹介です。 Jenkins + Packer環境の構築 Jenkins + Packerの構築は既に@ryuzeeさんがブログで大変丁寧に解説されていますので、そちらの手順を実施するだけで十分でしょう。私も大いに参考にさせて頂きました。ありがとうございます。 Jenkins + PackerでAMIを継続的インテグレーションする Jenkinsの準備ができたら実行する準備をしましょう。まず、プロジェクトのディレクトリ構成は以下のようになっています。 drwxr-xr-x 8 mochizukimasao staff 272 3 19 14:44

    Jenkins + Ansible + PackerでAMI作成を自動化する | DevelopersIO
  • CORS(Cross-Origin Resource Sharing)について整理してみた | DevelopersIO

    ブラウザからAmazon S3に直接ファイルをアップロードしたい 先日、Amazon S3にファイルをアップロードするWebアプリを作ろうとして色々調べていたところ、S3にCORSという仕様のクロスドメインアクセスの設定をすることによって、ブラウザから直接S3にアップロードをする方法にたどり着きました。ただ、この方法を使うにあたってはCORSというクロスドメインアクセスの仕様をきちんと理解しておいた方が良さそうでしたので、まずはCORSについて自分なりに整理してみました。 なお、弊社の横田がCORSとS3についての記事を以前書いていますので、S3のCORSサポートに関する概要を知りたい方はそちらをご覧下さい。 CORS(Cross-Origin Resource Sharing)によるクロスドメイン通信の傾向と対策 CORS ブラウザでAjax通信を行う際には、同一生成元ポリシー(Same

    okinaka
    okinaka 2015/02/13
  • [Vert.x]JVM上での非同期・Non Blockingフレームワーク – (1)開発環境構築とサンプルソース作成 | DevelopersIO

    はじめに 最近はJavaにも興味を持ち始めている、t.hondaです。Javaに関するフレームワークでVert.xを見つけたので、それについて書きたいと思います。 Vert.xは「Node.jsの特徴を受け継ぐJVM上で動くフレームワーク」といった感じのものですが、他にも以下のような特徴を持ちます。 多言語で記述可能(JavaScript, Ruby, Groovy, Javaなど) ブロッキングが発生するような処理(JDBCなど)を独立した処理として切り出すことで、全体をブロックしないようにすることが可能 他にも多くの特徴を持ちますが、以下に挙げるサイトに詳しいので参考にしてください。 Vert.x Main Manual Vert.x がいいね!(第1回:入門する) Vert.xのアーキテクチャ 開発環境構築〜サンプルソース作成 では、Vert.xの開発環境の構築とソースの作成です。M

    [Vert.x]JVM上での非同期・Non Blockingフレームワーク – (1)開発環境構築とサンプルソース作成 | DevelopersIO
  • 10分でわかる!Key Management Serviceの仕組み #cmdevio | DevelopersIO

    こんにちは、虎塚です。 先日のCM re:Growth Developers.IO Meetup 11 Tokyo で「10分でわかるKey Management Serviceの仕組み」という発表をしました。今日は、イベントに参加されなかった方がご覧になっても内容が伝わるように、発表内容を記事に起こしてみました。 はじめに Key Management Service(KMS)は、先月開催されたre:Invent 2014で発表された新サービスです。すでに全リージョンで利用できます。このサービスを使うと、データの暗号化/復号用の鍵をAWS上で管理できます。 ところで、KMSのAPIドキュメントを流し読みすると、マスターキーとデータキーという言葉が出てきます。そうです、KMSが扱う鍵は2種類あるんですね。 2つの鍵の違いは何か? どう使い分けるのか? などが、ぱっと見ではわかりづらいかもし

    10分でわかる!Key Management Serviceの仕組み #cmdevio | DevelopersIO
  • Amazon Linuxのcloud-initの動きについて調べてみた | DevelopersIO

    はじめに 昨日Amazon Linuxのcloud-init Tips集という記事を書きましたが、他にも色々気になることがあって調べてみましたので、記事にしてみます。 調べてみたこと 実行タイミング まず、cloud-initがいつ実行されるのかを調べてみました。Amazon Linux AMIでLaunchしたEC2のランレベルを確認すると、 $ runlevel N 3 なので、/etc/rc3.d/配下を確認してみます。 $ ls -alF /etc/rc3.d/ | grep cloud lrwxrwxrwx 1 root root 26 8月 5 10:58 S50cloud-init-local -> ../init.d/cloud-init-local* lrwxrwxrwx 1 root root 20 8月 5 10:58 S51cloud-init -> ../init

    Amazon Linuxのcloud-initの動きについて調べてみた | DevelopersIO
    okinaka
    okinaka 2014/08/22
    scripts-per-once などのモジュールはサービス起動後なのね…。cloud.cfg はインスタンス作成時に毎回生成されるから、AMI 作成時に設定を仕込む方法が分からない。
  • 【Chef Solo】attributeはどう使い分けるべきか。 | DevelopersIO

    こんにちは、せーのです。 Chef SoloやKnife SoloにChef Server同様environmentがサポートされてから、レシピの書き方が一気に広がりました。 広がった結果、Attributeをどこに書いていいのか迷う人も多いのではないでしょうか。私は迷います。 Chefは結構ゆるーい感じなので、特に「こういう場合にはここに書きなさい」という決まりがあまりありません。 この「決まりがない」というのがクセモノで、ついついAttributeをバラバラに書いてしまい、Cookbookが会社の共有資産になった時に余計な値が埋め込まれる、という事例が多発したりしないでしょうか。私はします。 Attributeには順位があり、より上位の場所にAttributeを書くと下位の値が上書きされます。まずこの順番を体感で覚えておくことが重要です。 Attributeの順位はドキュメントに書いて

    【Chef Solo】attributeはどう使い分けるべきか。 | DevelopersIO
    okinaka
    okinaka 2014/06/06
  • [MBaaS][NCMB][Android]えっ!? こんなに簡単にサーバ連携アプリが作れるの!? | DevelopersIO

    巷で話題(?)のmBaaS。海外ではParse, Mobile Backend Starter(Google Cloud Platform), Windows Azure(Microsoft's Cloud Platform)などがありますが、国内でも ニフティクラウド mobile backend, appiaries, Kii Cloud などなど続々と登場しているようです。 今回は、ニフティクラウド mobile backend(NCMB)に触れてみたので、使用感などを記述していきたいと思います。 投稿はAndroid SDKについて記載しています。 Parseについては「MBaaS な Parse で遊ぼう シリーズ」にて掲載されているので、是非こちらもご覧ください。 MBaaS な Parse で遊ぼうシリーズ MBaaSとは 簡潔に言うと、サーバサイドでの処理(ユーザ管理、p

    [MBaaS][NCMB][Android]えっ!? こんなに簡単にサーバ連携アプリが作れるの!? | DevelopersIO
  • はじめてのDocker on EC2 | DevelopersIO

    はじめに JAWS DAYS2014でImmutable Infrastructureトラックが提供されたり、昨日Immutable Infrastructure Conference #1が開催されたり、ここ最近のテクノロジートレンドはImmutable Infrastructureに染まっている感じがあります。 僕自身も色々なBlogを読んだり自分で手を動かしてみたりと色々試行錯誤を繰り返しているのですが、僕がEC2上でDockerについてやってみたことを整理してみました。 Docker自体ここ数年でたくさんの人が試しているし、アウトプットも多いので、今更感は否めないのですが、これから試す人にとって少しでも参考になれば幸いです。 EC2上でのDockerのセットアップ 今回はCentOSをEC2にLaunchしました。使用したAMIは「CentOS 6 (x86_64) - with

    はじめてのDocker on EC2 | DevelopersIO
  • [改訂版]Google Cloud Messaging (GCM) でプッシュ配信する[Android] | DevelopersIO

    Google Cloud Messagingの使い方が少々変わっていたらしい 以前弊社の記事で、 Google Cloud Messaging(以下GCM)のセットアップから使い方について紹介しました。 ※GCMとは、AndroidでPush通知を利用するための仕組みです 最近仕事でGCMを使う機会があり、記事を参考にセットアップしようとしたのですが、 どうやら最近はセットアップ方法が前と少し変わっているみたいだったので、ここにあるサンプルと以前の記事を参考にして、 最近のGCMセットアップ&実装をあらためてやってみます。 環境構築方法 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.9 Eclipse : 4.2 ADT Pluginはインストール済み、GCMを実装するサンプルのAndroidプロジェクトは作成済みとします。 サンプルプログラムの作成 1.API

    [改訂版]Google Cloud Messaging (GCM) でプッシュ配信する[Android] | DevelopersIO
    okinaka
    okinaka 2013/12/19
  • PackerをCIツールに組み込むためのTipsあれこれ | DevelopersIO

    ども、大瀧です。 みなさんPacker使ってますか?Packerは、ブログでも以下のエントリーでご紹介している通りAMI(Amazon EC2のイメージ)などの仮想マシンイメージを自動作成するツールです。 PackerでAmazon LinuxのAMI(Amazon Machine Image)を作成する | Developers.IO PackerでChef適用済みAMIをサクッと作成する(chef-solo provisionerの活用) | Developers.IO Packerのコンセプトとして、コードベースで管理でき、一連の処理がコマンドラインで完結すると謳われており、GitやJenkinsなどとの組み合わせを意識しています。 ただ、実際に触ってみるとそのままでは上手く行かないところもあったので、備忘録としてブログに残しておきます。 アクセスキーの外出し AMIを作成するam

    PackerをCIツールに組み込むためのTipsあれこれ | DevelopersIO
  • JUnitの実行結果のXMLフォーマット | DevelopersIO

    Jenkinsでは、JUnitのテスト結果からテスト件数や実行時間などを集計することが出来ます。この時、JUnitの実行結果はXML形式のファイルとして出力され、「JUnitのXMLファイル」などと呼ばれています。ところが、このXMLのフォーマットは、JUnitの公式フォーマットではありません。JUnit自体には実行結果をXML形式に出力する機能は実装されていないため、Ant, Maven, Gradleといったビルドツールによって出力されています。恐らくはAntが出力していたJUnitの実行結果のXMLフォーマットに、Eclipseなどの他のツールが対応していき、結果としてデファクトスタンダードとなったと思われます。 Jenkinsでは、デフォルトでJUnitのXMLを集計できるため、他のテストツールを使ってテストを実行した場合にも、JUnitのXML形式に変換すれば、簡単にJenkin

    JUnitの実行結果のXMLフォーマット | DevelopersIO
  • 【AWS】VPC環境の作成ノウハウをまとめた社内向け資料を公開してみる | DevelopersIO

    よく訓練されたアップル信者、都元です。今回のお題は久しぶりにVPCです。 この記事は、アップデート版が存在します。最新情報は【AWSVPC環境構築ノウハウ社内資料 2014年4月版を参照してください。 VPCを利用する理由 弊社で構築するAWSのサーバ環境は、一部の例外を除いて全てVPCを利用しています。 突然ですが、筆者はあまり大規模なシステムに携わった経験がありません。大規模なプロジェクトだと「数百数千台のサーバがラッキングされ、それが論理的なネットワークで区切られていて」「複数のデータセンターが冗長化された専用線で結ばれて」等、正直ちょっと想像つかない世界があるんだと思います。よくわかんないですが。 (c)John McStravick. (CC BY 2.0 Licensed) 逆に、小さなシステムであれば、月々数万円でレンタルサーバを借りて「1台のマシンの中にWebサーバとDB

    【AWS】VPC環境の作成ノウハウをまとめた社内向け資料を公開してみる | DevelopersIO
  • ELB用のSorryサーバをCloudFormationで構築 – Gezarで一発「ごめんなさい」 | DevelopersIO

    よく訓練されたアップル信者、都元です。以前、Amazon ELBでSorryサーバへのフェイルオーバーを実現するというエントリにて、ELB配下に正常なインスタンスが1つも無くなった時にSorryページを表示する方法をご紹介しました。 その後、Route53のヘルスチェックにELBを指定できるようになったり *1、フェイルオーバーの機能は順次強化されてきています。 このRoute53のフェイルオーバー先にはS3を指定できます。S3の可用性は非常に高いため、もうWebシステムのフェイルオーバーは完璧。…かと思いきや、実はそうでもありません。 まずRoute53を使わない場合はどうしようもありません。まぁ、使えよって話ですが。 S3は「あらゆるパスへのリクエストに対して同じコンテンツを返す」ということができません。強引にやろうとするとリダイレクトをする、という解決策になってしまいます。理想として

    ELB用のSorryサーバをCloudFormationで構築 – Gezarで一発「ごめんなさい」 | DevelopersIO
  • Amazon CloudFrontによるPOSTパススルー対応きた! | Developers.IO

    CloudFrontはコンテンツ配信 ついに来ましたCloudFrontのPOST対応!!え?CDNにPOSTって不要じゃない?って思いますよね。そうなんです、CDNがPOSTを受け取る機能ではなく、CDNがPOSTをスルーしてくれる機能なんです!これの何が嬉しいって、クロスドメインにならないからCORS対応とかキモいことをしなくて良いのです!動的なWebサイトにPOST通信はつきものです。今までCloudFrontで既存サイト全体を包もうとしたとき、POST通信がある時点で使えませんでした。今回の新機能でほぼあらゆるサイトに使えるようになります。 対応するHTTPメソッド POST以外にも対応しているメソッドがありますのでご紹介します。 GET, HEAD, PUT, POST, PATCH, DELETE, OPTIONS 設定をしてみよう Distribution まずは新規作成です

    Amazon CloudFrontによるPOSTパススルー対応きた! | Developers.IO
  • ユニットテストにまつわる10の勘違い | DevelopersIO

    渡辺です。さる方面からテスト系のエントリーがまだか…と催促されたので、ユニットテストについて少し考えてみたいと思います。 最近、TwitterのTLをチェックしていると、JUnitを利用しているにも関わらず違和感のあるTweetや、原因をJUnitにして来解決すべき問題から目をそらしているようなTweetを多く見かけます。そこで、JUnitをによるユニットテストに関するありがちな勘違いをまとめてみました。 なお、JUnitの部分は、RSpecでもNUnitでも適当に置き換えて読んでも構いません。 1.JUnitを使うことが目的という勘違い JUnitを利用すること自体を目的にしたところで何も得る事はありません。 ありがちな話ですが、「納品物としてJUnitのテストコード(または実行結果)を求められている」ことが理由でJUnitを利用しているならば、それは足かせでしかない可能性があります。

    ユニットテストにまつわる10の勘違い | DevelopersIO
    okinaka
    okinaka 2013/09/18
  • Vagrantって流行ってるらしいけど何が便利なの? | DevelopersIO

    最近、Vagrant(ベイグラント)を勉強し始めました。VagrantはVirtual Boxなどの仮想化ソフトウェアと一緒に使うツールです。 最初は何のために使うものなのかよくわからず、VagrantはVirtual Boxのフロントエンドだよ、 と言われても何が便利なのかいまいちピンと来なかったのでいろいろ調べてみました。 ※Vagrantはプロバイダ(仮想化ソフトウェア)を選択できるので、他にもVMwareやAmazon EC2で使うこともできます。 実現したいこと VagrantとVirtual Boxを使って何がしたいのかの一覧です。 実行環境を開発と番で揃えたい。 開発環境を構築する際に個人のローカル環境に依存しないようにしたい。 すぐに使える仮想環境を構築したい。 環境構築を自動化したい。 チームで同一の環境を簡単に構築したい。 1つずつ見ていきましょう。 Virtual

    okinaka
    okinaka 2013/08/03
    Vagrant はチームで環境を統一する際にとても重宝します。
  • AWSにおける静的コンテンツ配信パターンカタログ(アンチパターン含む) | DevelopersIO

    独自ドメインSSLだとCloudFront使えないから横綱無理だよねー、という話がありました。うん、確かにそうでした、執筆時点では…! 日2013/06/12、CloudFrontの独自ドメインSSL対応が発表(英語・日語)されましたので、みなさん揃って横綱になればいいと思います。 よく訓練されたアップル信者、都元です。AWSを利用して構築した環境から、クライアント(モバイルやブラウザ等)に対してHTTPを使って静的なコンテンツを配信したいケースって、多いですよね。多いというか、むしろどんなシステムにも多かれ少なかれ、静的なコンテンツ配信があると思います。 スケーラビリティ・柔軟性・可用性・パフォーマンス・コスト 静的なコンテンツというのは、コンテンツをリクエストに応じて生成したりせず、完成品としてのファイルが手元にある状態です。例えば、多くのWebシステムにおいて、ほとんどの画像やJ

    AWSにおける静的コンテンツ配信パターンカタログ(アンチパターン含む) | DevelopersIO
  • Chef を始める #3 – ユーザ作成を自動化する 〜 Data Bags を使ってみる 〜 | DevelopersIO

    前回は、Chef Client をインストールしたノード上から、簡単な Cookbook を実行するところまで試しました。 今回は比較的よく使いそうな、ユーザ作成を行う Cookbook を試してみようと思います。 GitHub からユーザ作成の Cookbook をクローン opscode の GitHub から users という Cookbook をクローンします。 $ cd ~/chef/chef-repo/cookbooks $ git clone git@github.com:opscode-cookbooks/users.git $ cd users ディレクトリ構成はこんな感じ。 $ tree . ├── CHANGELOG.md ├── CONTRIBUTING ├── LICENSE ├── README.md ├── metadata.rb ├── providers

    okinaka
    okinaka 2013/05/31