タグ

ブックマーク / blog.takuros.net (20)

  • マルチAZ構成で単一AZの障害の影響を受けるのは何故か? - プログラマでありたい

    昨日の「AWSのAZの割り当ては、アカウントごとに違うという話」で宿題として残した、マルチAZ構成で単一AZの障害の影響を受けるのは何故かという問題について考えてみます。キーワードはELBです。 前提としてのELBの実装(の予想) マルチAZ構成での障害発生原因を検討する前に、まずELBの実装について考えてみましょう。5年ほど前に書いたELBの挙動からみる内部構造の推測です。 blog.takuros.net 旧ELB(CLB)をもとに書いていますが、ALBでも大きく変わらないと思います。要点としては、ELB自体は、AWSが管理するEC2インスタンス上で稼働し、バランシング先のAZにそれぞれ配置されているということです。図ではELBインスタンス(仮称)として表しています。そして、ELBインスタンスへの振り分けはDNSの名前解決で実現している点です。このアーキテクチャは私の個人的な予想ですが

    マルチAZ構成で単一AZの障害の影響を受けるのは何故か? - プログラマでありたい
  • AWSのストレージよもやま話 s3,ebsからStorage Gateway,EMRFSまで - プログラマでありたい

    昨日、VPCの話を書いていて思い浮かんだのがストレージの話です。AWSのストレージといえば、S3とEBSが中心です。しかし、オンプレからの移行ではNAS相当のものがなくて、先人たちは色々と試行錯誤してきました。また、製品群を見返すとAWS自身も相当いろいろ検討して苦労したのだなと解ります。という訳で、何の役に立たないAWSのストレージの四方山話です。 s3fs 事実上無限の容量を持つS3をファイルシステムとして扱えるs3fs。誰しも一度は夢をみて、夢敗れるファイルシステムではないでしょうか。これは純正のライブラリではなく、サードパーティ製です。構造としては下記の通りで、問題点としてはメタデータ(ファイル一覧や個々のファイルの日付・サイズ等の情報)を持たない点です。よって使い方によっては、かなり遅いです。また初期のものはメモリーリークとか多く、定期的な再起動が必要だったりします。 みんな薄々

    AWSのストレージよもやま話 s3,ebsからStorage Gateway,EMRFSまで - プログラマでありたい
  • アプリケーションエンジニア向けのAWS本を書きました - プログラマでありたい

    たまに呟いていましたが、『Amazon Web Services パターン別構築・運用ガイド』に続くAWSの第二弾として、『Amazon Web Services クラウドネイティブ・アプリケーション開発技法』というを書きました。今回も、所属している会社であるNRIネットコム株式会社の同僚たちと書いています。そして今回のは、主にアプリケーション・エンジニアを想定して書いています。何とEC2の使い方が一切でてきません。 Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく 作者: NRIネットコム株式会社,佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸勇貴出版社/メーカー: SBクリエイティブ発売日: 2016/04/20メディア: 単行この商品を含むブログを見る を書いた理由 前回の『Amazon Web Ser

    アプリケーションエンジニア向けのAWS本を書きました - プログラマでありたい
  • Swaggerとは何か? - プログラマでありたい

    最近、Swaggerという単語を聞く機会が増えていませんか?MicrosoftGoogle,IBMが、REST APIの記述標準化を目指した「Open API Initiative」という団体を立ち上げ、そのベースをSwaggerを利用するということで一躍注目を集めるようになりました。しかし、Swaggerというものを調べるとツールの話やドキュメントの話が出てきて、何なのこれとなることが必定です。ということで、WebAPIとは切っても切れない関係のSwaggerの話を簡単にしてみます。 Swaggerとは? Swaggerとは、一義的にはREST APIを記述する為の仕様です。当初から、Swaggerが標準の仕様になることを目指しますよと宣言していて、米国等ではデファクト・スタンダードとなっていました。それが、「Open API Initiative」が出来たことにより、実際に標準の仕様

    Swaggerとは何か? - プログラマでありたい
  • 実行計画が解れば怖くない。SQL実践入門 - プログラマでありたい

    技術評論社さんから、SQL実践入門を献いただきました。ありがとうございます。 SQL実践入門の主題 このの目的は、「パフォーマンスの良いSQLの書き方、特に大量データを処理するSQLの性能向上の方法を理解すること」とあります。そのパフォーマンス向上の為の解として、SQLが内部的にどう処理されているかを表す実行計画の読み解き方を、いろいろなケースを上げながらひたすら解説しています。そして、何故その実行計画になるのか、データ構造やDBの動きとともに説明しています。ということで、実行計画大事という基かつ当たり前のことを、正面から取り扱っている良質のSQLです。 SQL実践入門の構成 SQL実践入門の章立ては、下記の通りです。 第1章:DBMSのアーキテクチャ──この世にただ飯はあるか 第2章:SQLの基礎──母国語を話すがごとく 第3章:SQLにおける条件分岐──文から式へ 第4章:集約

    実行計画が解れば怖くない。SQL実践入門 - プログラマでありたい
  • 「Amazon Web Services パターン別構築・運用ガイド」の執筆環境 - プログラマでありたい

    Amazon Web Services パターン別構築・運用ガイド 作者: NRIネットコム株式会社,佐々木拓郎,林晋一郎,小西秀和,佐藤瞬出版社/メーカー: SBクリエイティブ発売日: 2015/03/25メディア: 大型この商品を含むブログ (2件) を見る 今回の「Amazon Web Services パターン別構築・運用ガイド」は、会社の同僚たち4人で書き上げました。会社の同僚といっても、東京と大阪に別れていたり、日中に打ち合わせをする時間もないので、ほぼリモートのやり取りだけで完結させました。かなりスムーズにいったのですが、幾つか課題もあるので、忘れないうちにメモです。 執筆を支えるシステムの全体像 リモートでやり取りをする為に、幾つかのツールを組み合わせて簡単な環境を作りました。方針としては、執筆に集中するために出来るだけSaaSを利用し、余計な時間を取られないようにしまし

    「Amazon Web Services パターン別構築・運用ガイド」の執筆環境 - プログラマでありたい
  • 『Amazon Web Services パターン別構築・運用ガイド』を書きました - プログラマでありたい

    たまに呟いていましたが、AWSを題材に『Amazon Web Services パターン別構築・運用ガイド』というを書きました。今回は、所属している会社であるNRIネットコム株式会社の同僚たちと書いています。 Amazon Web Services パターン別構築・運用ガイド 作者: NRIネットコム株式会社,佐々木拓郎,林晋一郎,小西秀和,佐藤瞬出版社/メーカー: SBクリエイティブ発売日: 2015/03/25メディア: 大型この商品を含むブログ (1件) を見る を書いた理由 前回執筆した『Rubyによるクローラー開発技法』が好評だったこともあり、SBクリエイティブさんからAWSを出さないかという打診を受けました。AWSは長年親しんできたこともあり、また仕事でもAWSに関する事業を進めている関係で、願ったり叶ったりでした。 一方で、やはりを出すというのは大変です。私個人の問

    『Amazon Web Services パターン別構築・運用ガイド』を書きました - プログラマでありたい
  • 日本一熱いデータベース論、「理論から学ぶデータベース実践入門」 - プログラマでありたい

    技評さんから理論から学ぶデータベース実践入門を頂きました。ありがとうございます。 著者の奥野さん 著者は、漢(オトコ)のコンピュータ道で有名な奥野さんです。直接の面識はないものの、データベース設計に悩み調べて行き着いた先が奥野さんが出している情報ということはよくありました。そんなこともあり、心のなかで勝手にデータベースの師匠として崇めています。そんな奥野さんが扱うテーマは、MySQLではなくデータベースです。個別の製品の話ではなく、データベース理論です。実践入門と銘打っているだけあり、データベース設計の具体的なやり方、考え方が随所にあります。 何について書いているのか? ポイントは、説明とやり方を集めたノウハウ集ではなく、設計の考え方の指針を示している点です。例えば、ID設計の話。永遠の論争であるナチュラルキーとサロゲートキー、どちらが適切かという命題があります。それぞれの利点と問題点を上

    日本一熱いデータベース論、「理論から学ぶデータベース実践入門」 - プログラマでありたい
  • Lambdaで作るクローラー/スクレイピング - プログラマでありたい

    話題のAWS Lambda Advent Calendar 2014の14日目です。クロスポストで、クローラー/スクレイピング Advent Calendar 2014の14日目でもあります。 re:Inventで発表されて以来、注目のLambdaです。サーバを用意しなくても、バッチを直接実行できるとあって、ユースケースを考えるだけで夢が広がります。今年はクローラーを出したこともあって、Lambdaで作るクローラー/スクレイピングをテーマにします。 クローラー/スクレイピングとは? Webクローラーは、Webサイトを巡回してデータを取得するプログラムです。スクレイピングは、取得したデータから目的の情報を抜き出すことを指します。一般的には、クローラーの中に、スクレイピングの機能を包含していることが多いです。また、特定のページだけ取得してデータを抜き出すことを、スクレイピングと呼ぶことが多い

    Lambdaで作るクローラー/スクレイピング - プログラマでありたい
  • 今どきのサーバ/インフラの構築の仕方。"サーバ/インフラ徹底攻略 (WEB+DB PRESS plus) " - プログラマでありたい

    10/30発売の「サーバ/インフラ徹底攻略 (WEB+DB PRESS plus) 」を、@imai_factoryさんに献頂きました。ありがとうございます。まだパラパラめくっている状態ですが、最近のサーバ/インフラの構築・運用方法の潮流について、これ1冊で解る内容になっていて面白いです。 サーバ/インフラ徹底攻略とは? WEB+DB PRESSに掲載されたサーバ/インフラ関連記事を再編集したものです。2013年後半から2014年の記事が中心となっているので、取り扱うトピックスとしてもホットなものが多いです。かつ、ある程度時間が経っていることもあり、数ある類似の技術の中で定着しつつあるものが選ばれている印象です。 章ごとの感想 [入門]コードによるインフラ構築 入門Chef SoloによってInfrastructure as Codeの概念を一気に普及させた@naoya_itoさんによる

    今どきのサーバ/インフラの構築の仕方。"サーバ/インフラ徹底攻略 (WEB+DB PRESS plus) " - プログラマでありたい
  • 賃貸でも工事なしで付けられるワイヤレスドアモニタ パナソニックのドアモニ VL-SDM110 - プログラマでありたい

    お家の防犯グッズの1つに、ドアモニタがあります。最近の物件だと当たり前のようについてたりしますが、ちょっと古い物件だと付いていないことが殆どです。この前まで住んでいた所にも付いてませんでした。賃貸だと工事できないので、ドアモニタは付けれないかなぁと思ってたのですが、ワイヤレスなこのご時世だと簡単に付けれました。 私が使っていたのは、パナソニックのVL-SDM100という機種です。3ミリくらいの隙間があれば付けられるという代物なので、結構な確率で取り付けられるとおもいます。取り付けた様子は下の写真の通りですけど、殆ど違和感なかったです。 外から見た写真 横から見た写真 部屋の中から見た写真 かなりスッキリしていますよね。そして、画面は専用のモニタで見るのですが、ボタンを押して数秒くらいで見えます。操作もボタンを押すだけで、簡単です。息子が2歳くらいの時から、ピンポンとチャイムがなるとトコトコ

    賃貸でも工事なしで付けられるワイヤレスドアモニタ パナソニックのドアモニ VL-SDM110 - プログラマでありたい
  • あらためてRuby製のクローラー、"anemone"を調べてみた - プログラマでありたい

    3年ほど前に、Ruby製のクローラー"anemone"を紹介しました。その当時から完成度が高く、Rubyでクローラーを使う場合はanemoneを利用してきました。最近、他に新しくて良いのがないか調べましたが、機能面の網羅性という意味でanemoneを超えるものは見つけられませんでした。そこで改めてanemoneのソースを読んでみたところ、クローラーが必要とする機能を必要最小限で実装され、やはり中々良い出来です。冬休みの宿題ではないですが、勉強の意味を兼ねてソースを追っていくことにします。 Anemoneが利用しているライブラリ一覧 anemoneが利用しているライブラリは、4種類に分類できます。 Ruby標準or一般的なライブラリ データ取得で利用しているライブラリ データ解析で利用しているライブラリ データ保存で利用しているライブラリ この分類別に構造をみるとわかりやすいので、順番に追っ

    あらためてRuby製のクローラー、"anemone"を調べてみた - プログラマでありたい
  • 引越しするなら、夏が良い - プログラマでありたい

    ちょっと手狭になって来たので、引越しをしようとしております。クラウド派の私は、家も賃貸です。そんな私が声を大にして言いたいのは、引越しするなら夏が良いということです。 賃貸市場の観点から 賃貸物件の家賃は、広さや築年数・設備による固定ではありません。これも立派に需要と供給によって決まります。大雑把に言うと、賃貸市場の需要と供給の関係は、次のようになると思います。 1月〜2月:需要小、供給小 3月:需要大、供給大 4月:需要大、供給小 5月〜8月:需要小、供給小 9月:需要中、供給中 10月:需要中、供給小 11月〜12月:需要小、供給小 3月に需要と供給はマックスになり、4月は需要はあるものの供給が少ないという借り手側から見ると最悪の時期です。そして、9〜10月も規模は小さいものの、ほぼ同じような傾向になります。それ以外は、ほぼ需要と供給も少ないという状況です。では、いつ引越しすると良いの

    引越しするなら、夏が良い - プログラマでありたい
  • 知っているようで知らない、リザーブドインスタンスの話 - プログラマでありたい

    ちょっとリザーブドインスタンスの仕様の確認をしていたので、ついでにまとめてみました。AWSを使ったことがある人であれば、高確率で聞いたことがあると思います。でも、実際に使ったことがある人は、結構少ないのではないでしょうか?。一度使ってみれば、特に難しくもなく簡単ということが解りますので、一読して試していただければと思います。 リザーブドインスタンスのモデル そもそもリザーブドインスタンスとは、どういうものなのでしょうか?簡単に言うと、予約金を最初に払うと期間内の時間あたりの料金が安くなるというモデルです。オンデマンドインスタンスに比べ、ある一定以上使うと積算料金が安くなるというのがリザーブドインスタンスです。 リザーブドインスタンスは、使用率により3つのタイプの買い方があります。期間中にどれくらいの割合で立ちあげておくかで、タイプを考える必要があります。 年間100%利用した場合 何%利用

    知っているようで知らない、リザーブドインスタンスの話 - プログラマでありたい
  • ちょっと内緒にしたいスポットインスタンスの話 - プログラマでありたい

    ちょっと内緒にしたいような気がしますが、知っていたら確実に得をするAWS EC2のチップスがスポットインスタンスの活用です。まずスポットインスタンスとは?AWSのインスタンススポットのページを読むと大体解りますが、簡単に説明するとAmazonで余剰のEC2のインスタンスを入札制で大幅に安い値段でを利用する仕組みです。デメリットとしては、スポットインスタンスのインスタンス価格が入札価格を上回った場合、情け容赦なくインスタンスがストップされることです。ということで、Amazonの推奨としては以下のように、通常のインスタンスを補完するような位置づけとなっています。 オプションのタスク 遅延可能なタスク コンピューティング能力を追加することで高速化できるタスク 他の方法ではアクセスできない大量のコンピューティングインスタンスが必要になるタスク しかし、制約があるものの圧倒的に安いです。オンデマンド

    ちょっと内緒にしたいスポットインスタンスの話 - プログラマでありたい
  • Web画面の自動テストの導入に失敗する理由とその対策 - プログラマでありたい

    皆さん、自動テストしていますか?体感的には、ユニットテストは当たり前のように開発工程に組み込まれるようになってきているのではと思います。一方で、どこの部分を対象にしているかというと、モデルであったりコントローラであったりと機能単体のテストです。品質をつくり上げるには、まず単体での精度を上げることです。ですので、ユニットテストで品質を保証するのは正しい。圧倒的に正しいです。 一方で、最近ではサポート対象のブラウザやバージョンが増えたり、JavaScriptの第二の全盛期であったり、IEが未だ消えてなくならなかったりと、個々のブラウザでテストすることの重要性が増しています。じゃぁWeb画面も自動的にテストすればええやん、Seleniumもあるしとなると思います。ただ導入しようとすると、7〜8割方失敗するのですよ。これが。 理由としては、これに尽きます Seleniumのテストと、体のソースの

    Web画面の自動テストの導入に失敗する理由とその対策 - プログラマでありたい
  • JenkinsとSelenium WebDriverでUI層のテストも自動化&永続化する - プログラマでありたい

    思い立ったようにJenkins特集をしておりますが、今回はJenkinsとSelenium WebDriverでUI層のテストの自動化をする話です。Seleniumは面倒臭い画面のテストを自動実行してくれるツールで、出てきてからもう7〜8年がたちます。Web系の開発に携わっている人であれば、一度は試したことがあるのではないでしょうか?そして、必ず挫折したことがあると思います。 その理由としては、せっかく作ったSeleniumのテストケースが腐ってくるからです。一般的にはUI層の変更は、ロジック層に比べて変化が激しいです。だからこそテスト自動化して保証することに意味があるのですが、そのテストケースを維持するのは大変です。そこで、Jenkinsの登場です。Jenkinsでサーバサイドで継続的に実行することにより、Seleniumのテストケースが成功を保てるようにします。また、複数のブラウザ・バ

    JenkinsとSelenium WebDriverでUI層のテストも自動化&永続化する - プログラマでありたい
  • 今更聞けないCapistranoでリリースの自動化 - プログラマでありたい

    ここ数年で開発の現場でAgile開発の文化や手法が、ずいぶんと取り入れられるようになってきているようです。アジャイル開発はその根底に文化が大事ですが、それを支えるツールというのも重要になってきます。ソース管理やビルド管理、テストの自動化と色々ありますが、今回はリリースの自動化のお話です。その中で主にRails使われることが多いCapistranoの設定と使い方です。 環境の説明 ・Ruby 1.9 ・Rails 3.2 ・Passenger ・GitSQLite3 目指す構成 今回は単純化する為に、1サーバの中にGitのリポジトリもApache+PassengerもDBも入れておきます。また複数の環境(開発、ステージング、番)にデプロイ出来るように、それぞれの構成を別けて記述するようにします。(capistrano-extを使用) 設定 必要モジュールのインストール $gem ins

    今更聞けないCapistranoでリリースの自動化 - プログラマでありたい
  • 本当に月額10円でレンタルサーバを始められるのか? S3で静的サイト構築を検証 - プログラマでありたい

    先日、Amazonのs3の宣伝サイトが、月額10円で始められるレンタルサーバというセンセーショナルなキャッチコピーと共に作られていました。 月額10円〜でレンタルサーバーをはじめる方法 | アマゾン ウェブ サービス(AWSAWSのサービス群の中で、真に驚異的なものはS3だと確信している私にとっては、これを機会に是非S3の素晴らしさが広がって欲しいなぁと思っています。 Twitterやはてブの反応を見ていると、かなりの反響が出ているのでPR施策としては成功だったのではないでしょうか?一方で、はてブのコメントを見ていると、従量課金制怖いとか、クラウド破産とかの話が出てきています。はっきり言って心配無用なのですが、ちょっと整理してみました。 2012/08/15追記:クラウド破産が心配の方が、やっぱり多いようなので防ぐ方法を書きました。 クラウド破産を防ぐ為のAWS Billing A

    本当に月額10円でレンタルサーバを始められるのか? S3で静的サイト構築を検証 - プログラマでありたい
  • RubyでTwitter Streaming APIを使ってみる - プログラマでありたい

    何かTwitterを使ったサービスを作ってみたくて、時間が空いている時にTwitterの仕様を眺めています。 TwitterAPIが充実していて、非常に開発者フレンドリーです。 ただAPIの使用については回数制限などある程度の制約があるので、目的に沿って使う必要があります。 主なAPIは3種類あって、それぞれの特徴と制約です。 REST API Methods ユーザーが行う操作に関するAPIです。 一般的なTwitterクライアントソフトは、これを使って作られています。 IPとアカウントベースでの制限で、1時間に150回まで 申請をして許可が取れれば20,000回まで増やせるようです。 Search API Methods 名前の通り検索系のAPIです。 IPアカウントベースの制限。REST APIに比べて、極めて多い回数を使えるようです。 これも申請によって回数が増やせるようです。

    RubyでTwitter Streaming APIを使ってみる - プログラマでありたい
  • 1