タグ

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

  • ファイルストレージ・ブロックストレージ・オブジェクトストレージの違いと、AWSのストレージサービスとのマッピング - プログラマでありたい

    こんにちは。仕事AWSの構築し、プライベートでAWSの研究と技術書の執筆をし、Amazonを売っているAmazon依存症疑惑のある佐々木(@dkfj)です。 AWS使い始めてまず悩むことのベスト10の一つが、ストレージサービスの選び方です。AWSにはS3やEBSの他に、EFSやFSxなど多種多様なストレージサービスがあります。今回は、ストレージサービスの種類から、AWSのサービスの使い分けを説明したいと思います。 ストレージサービスの種別 一口にストレージといっても、用途に応じて幾つか分類できます。代表的なのが、ファイルストレージ・ブロックストレージ・オブジェクトストレージです。まずは、この3つの違いをみてみましょう。 ブロックストレージ まず一番イメージしにくいのが、このブロックストレージ。ブロックストレージは、ものすごくザックリいうとハードディスクのようなもので、ブロックと呼ばれ

    ファイルストレージ・ブロックストレージ・オブジェクトストレージの違いと、AWSのストレージサービスとのマッピング - プログラマでありたい
  • マルチ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の障害の影響を受けるのは何故か? - プログラマでありたい
  • re:Invent2018 AWSの新サービス群に対する1行所感 その3 - プログラマでありたい

    ラスベガス空港で徹夜で遅延する飛行機を迎えながらお早うございます。朦朧とする頭で所感シリーズ第三弾です。 アプリケーションロードバランサー(ALB)のターゲットにAWS Lambdaが選択可能に ALBの後ろにEC2ではなくLambdaぶら下げられるようになりました。サーバレス化が捗りますね アプリケーションロードバランサー(ALB)のターゲットにAWS Lambdaが選択可能になりました | Amazon Web Services ブログ AWS Toolkits for PyCharm、IntelliJ(プレビュー)、Visual Studio Code(プレビュー) Cloud9以外にもサポートするIDEが追加されました。IDEも宗派分かれるので、宗教戦争の回避できますね。後は、vim/emacsの最終戦争待ちですか 新発表 – AWS Toolkits for PyCharm、In

    re:Invent2018 AWSの新サービス群に対する1行所感 その3 - プログラマでありたい
  • re:Invent2018 AWSの新サービス群に対する1行所感 その1 - プログラマでありたい

    2018年11月25日〜30日までアメリカのラスベガスでAWSの最大のイベントであるre:Inventが開催中です。発表が多すぎて訳が解らなくなってきたので、自分なりの解釈で1行所感をつけていきます。まずは、27日午前までです。 ※一部、re:Invent開催前に発表されたものも含まれています。また、1行の定義はなんだという問には答えません。 その2も書きました。 AWS RoboMaker ロボット向けのROS(Robotic Operating System)をベースにAWSの各種機能と強力に統合したサービス。でも、ロボットと言ってもドラえもんじゃないよ。産業用ロボを想像してください。 AWS RoboMaker-インテリジェントなロボットアプリケーションの開発、テスト、デプロイと管理 | Amazon Web Services ブログ AWS Transfer for SFTP SF

    re:Invent2018 AWSの新サービス群に対する1行所感 その1 - プログラマでありたい
  • 複数のAWSアカウント管理を制するものが、AWSを制する - プログラマでありたい

    いよいよ明日発売開始であるAmazon Web Services 業務システム設計・移行ガイドの一貫したテーマが、「企業内でどのようにAWSを使っていくのか」です。企業内でのユースケースを元に、ネットワーク/システム設計や運用管理、移行の話をしています。その中で1章を割いて説明しているのが、AWSアカウントをどのように管理するかです。 複数(マルチ)AWSアカウント管理の重要性 AWSを利用する上で、AWSアカウントをどのように管理していくかは最重要事項です。AWSアカウント管理というと、一般的には、AWSリソースの認証認可であるIAMを使った運用方法について語られることが多いです。しかし、企業内で利用する際は、それだけでは不十分です。何故なら、企業内では1つのAWSアカウントではなく、複数のAWSアカウントを作成し運用することになるからです。いわゆるマルチアカウント運用です。 企業内での

    複数のAWSアカウント管理を制するものが、AWSを制する - プログラマでありたい
  • (続)AWSの新サービス群に対する一行所感 - プログラマでありたい

    昨日のAWSの新サービス群に対する一行所感に続き、二回目です。タイトル通り一行じゃないのは、書いてる時の気分の問題です。 AWS Serverless Application Repository Serverlessアプリケーション版のGithub。SAM形式で作ってたら公開可能。限定公開とか一般公開とか出来る 。とりあえず9割の人が利用者側にまわるサービスかな。 aws.amazon.com AWS Cloud9 2016年にAWSに買収されたオンラインIDEのCloud9。1年の雌伏の時を経てAWSのサービスとして登場。ペアプロとかも出来る。ちなみにCloud nineというのは、至福という意味 aws.amazon.com Amazon EC2用スプレッドプレイスメントグループ 従来のプレイスメントグループに、機能拡張。今までは、ネットワーク的に近くという目的だったが、今度は物理的

    (続)AWSの新サービス群に対する一行所感 - プログラマでありたい
  • AWSの新サービス群に対する一行所感 - プログラマでありたい

    今年もラスベガスで、AWSの最大のイベントre:Invent開催中です。初回のキーノートが終わった所ですが、怒涛のサービス発表で頭が混乱中です。整理のために、サービスに対する感想をつけてみます。間違っているかもしれないので、悪しからず。 AWS AppSync モバイル等での複数端末のデータ同期を見据えたソリューション。必要性はすごく解るが、それってCognito Syncでやりたかったことじゃないのかな?認証認可のサービスにデータ同期を加えた筋の悪さを解消に来たのか? 2017/12/3 追記 中の人曰く、次のような役割分担とのこと AWSの新サービス群に対する一行所感 - プログラマでありたい ありがたし / Cognito Syncは「一つのIdentityに(≒一人の人間)が持つ」複数端末間での設定値等の同期のためのものだったので、前提と志向が違うのです > AppSync “それ

    AWSの新サービス群に対する一行所感 - プログラマでありたい
  • Amazon AuroraとMariaDB Connector/Jの話 - プログラマでありたい

    今月創刊したクラウド専門誌の日経クラウドファースト。その特集の1つが、Amazon Auroraです。私も、その特集の執筆に協力させて頂きました。 itpro.nikkeibp.co.jp その中で、AuroraとMariaDB版のConnector/Jについて少し触れています。個人的にはMariaDB版のConnector/Jは、設計思想や実装面から将来性があり、かなり面白い製品と思っています。せっかくの機会なので、少し紹介します。 Auroraのクラスタ・エンドポイントとインスタンス・エンドポイント MariaDBのConnector/Jの話をする前に、まずAuroraに接続するためのエンドポイントの説明をします。Auroraには、クラスタ・エンドポイントとインスタンス・エンドポイントの2種類のエンドポイントを持っています。 インスタンス・エンドポイントは、Auroraの各インスタンス

    Amazon AuroraとMariaDB Connector/Jの話 - プログラマでありたい
    lEDfm4UE
    lEDfm4UE 2016/05/22
  • Node.jsのWebスクレイピングモジュール 『cheerio-httpcli』の使い方その1 cheerioでhtmlの要素指定 - プログラマでありたい

    少し間が空きましたが、cheerio-httpcliの使い方です。cheerio-httpcliは、HTMLパーサーであるcheerioに、文字コード変換のiconvを組み合わせたHTTPクライアントモジュールで取得したコンテンツの文字コードを良しなにUTF-8に変換してくれます。HTMLの解析&取得自体はcheerioのラッパーなので、DOM指定でHTMLの要素を取得するといったことが簡単に出来ます。cheerioを上手い感じに補っているので、cheerio-httpcliはWebスクレイピングに最適なモジュールとなっています。 cheerioのDOMセレクト機能 cheerio-httpcliを見る前に、生のcheerioの機能を見てみましょう。そこでまず、基中の基であるHTML中から任意のタグを指定して取得するDOMセレクトの機能です。この部分については、cheerioのGith

    Node.jsのWebスクレイピングモジュール 『cheerio-httpcli』の使い方その1 cheerioでhtmlの要素指定 - プログラマでありたい
    lEDfm4UE
    lEDfm4UE 2016/05/21
  • Node.jsでスクレイピングするならば - プログラマでありたい

    昔、Rubyでクローラー/Webスクレイピングを書きました。今でもちょくちょくとスクレイピングのコードを書いたりはするのですが、実行基盤についてはサーバの運用管理が面倒くさいのでAWS Lambdaを使うことが多いです。そうなると、Lambdaは基的にはRubyが使えないので、言語はPythonかNode.jsを利用することになります。Pythonもいいけど、今後のことを考えるとNode.js力を高めておきたいと考えています。ということで、Node.js縛りでスクレイピングの仕方です。 スクレイピング対象のページの種類 私の中の勝手な定義ですが、スクレイピングには3種類あります。 1. 静的サイト/JavaScript不要なページに関するスクレイピング 2. 対話型サイト/JavaScript不要なページに関するスクレイピング 3. JavaScript前提のページに関するスクレイピ

    Node.jsでスクレイピングするならば - プログラマでありたい
    lEDfm4UE
    lEDfm4UE 2016/04/21
  • サーバレスアーキテクチャとは? - プログラマでありたい

    サーバレスアーキテクチャの整理です。少し前は、2-Tier Architecture(クラウドネイティブなアーキテクチャ)と3-Tier Architecture(従来のアーキテクチャ)という対比で論じられることが多かったです。しかし、API Gatewayの登場により、3-Tierな構造でもクラウドネイティブなアーキテクチャにしやすくなりました。ということで、サーバレスアーキテクチャ(ServerLess Architecture)と呼ばれることが多いです。 サーバレスアーキテクチャのパターン それでは、従来型のアーキテクチャ(旧3-Tier)と2-Tierパターン、API Gatewayを利用したサーバレスアーキテクチャをそれぞれ見てみましょう。 従来型のパターン( アプリケーションサーバ・パターン) まずは従来型のアーキテクチャです。間にELBを挟んでAutoScaleにすることは多

    サーバレスアーキテクチャとは? - プログラマでありたい
  • オフィスグリコの規模 - プログラマでありたい

    ふと気になったので、調べたメモです。 オフィスグリコって、ご存知でしょうか?富山の置き薬のごとく、企業内にお菓子を満載したボックスを置いて、定期的にやってくるグリコのおにーさん(?)が補充・代金回収する奴です。ポイントは、性善説に基づいた代金回収モデルです。商品を入れている箱は、ただの引き出しなのでお金を入れなくても開けれます。商品を取ったら、カエルさんの口の代金箱に入れるという仕組みです。タダいをしようと思ったら、幾らでも出来る仕組みです。 これがどれくらいの規模なのか気になって、ググると良い記事が出てきました。jp.reuters.com 2013年度で、売上が45億円です。注目すべきは、設置数。10万事業所に12万台の菓子ボックスと、1万7千台だの冷蔵庫とのことです。10万という数字は、全国のコンビニの合計数である5万件を軽く凌駕しますね。そして、代金の回収率は95%とのことです。

    オフィスグリコの規模 - プログラマでありたい
  • Capybara+PhantomJS+Nokogiriを利用してスクレイピング - プログラマでありたい

    CapybaraとPhantomJS、Nokogiriを利用してのクローラー・スクレイピングの紹介です。 PhantomJSとは? PhantomJSは、ヘッドレスブラウザと呼ばれるWebKitのエミュレータです。ヘッドレスブラウザとは、GUIではなくCUIから利用できるブラウザでプログラムから呼ばれます。UIのテストツールとしてSeleniumのようなサービスがあります。Seleniumはブラウザを直接操作するので、環境依存や動作が重いといった幾つかの問題点があります。そこでよく利用されるのがPhantomJSです。Seleniumに比べて、軽量というメリットがあります。RubyからPhantomJSを扱うライブラリとして、Poltergeistがあります。 Capybaraとは? Capybaraは、WebシステムのUI層のテストをサポートするためのライブラリです。主にDSL機能とDr

    Capybara+PhantomJS+Nokogiriを利用してスクレイピング - プログラマでありたい
  • RubyでWebスクレイピングの話をしてきました。第1回Webスクレイピング勉強会@東京 - プログラマでありたい

    ちょっと間が空きましたが、第1回Webスクレイピング勉強会@東京に参加して、LT枠でRubyでWebスクレイピングの話をしてきました。 Rubyで始めるWebスクレイピング from Takuro Sasaki 今まで全く参加したことがないレイヤーの勉強会だったので、新しい発見があり非常に勉強になりました。スクレイピングAPIであるkimonoやimportioなど、全く知らないサービスに出会えました。私は趣味スクレイピングをしているのですが、職としてやっている方のノウハウや悩みどころを聞けて参考になりました。 また、資料中に書いているのですが、現在Rubyでクローラーを作るを書いています。一応全編書き終えてるので、夏頃に出ればなぁという状況です。そして、東京に異動することになりました。勉強会に参加しやすくなるので、色々な所に顔をだしてみたいと思っています。 ちなみに第2回Webス

    RubyでWebスクレイピングの話をしてきました。第1回Webスクレイピング勉強会@東京 - プログラマでありたい
  • 何故JSONPでJavaScriptのクロスドメイン通信ができるのか? - プログラマでありたい

    一人Advent Calendarの3日目です。 JSONPを使って外部のAPIを呼び出して、結果を取り込むということは色々なところで行われています。しかし、そもそもJavaScriptを利用した場合、クロスドメイン通信が使えないという前提があります。JSONPだったら、何故そこを回避できるのでしょうか?あまり詳しく考えたことが無かったので、簡単に調べてまとめてみました。なんというか4周くらい遅れている話題ですが、気がついた時に整理するとスッキリします。 JSONPの動作原理 Wikipediaさんをみてみると、そのものずばりのことが書かれています。scriptタグ内のsrc属性は別ドメインのURLを指定できるという点と、そのレスポンスはJavaScript関数呼び出し形式になるという点をついたのが、JSONPの動作原理です。なんというか、仕様の考慮不足を利用した仕組みだと思います。 JS

    何故JSONPでJavaScriptのクロスドメイン通信ができるのか? - プログラマでありたい
  • AWSのアカウント管理の話 - プログラマでありたい

    AWS Advent Calendar 2014の7日目です。あと、全部俺Advent Calendarも開催中です。 運用絡みで何か書くと宣言したので、AWSのアカウント運用について書いてみます。テクニックや技術より、考え方の面での整理です。 AWSのアカウントの種類 AWSで利用するアカウントは2種類あります。AWSアカウントとIAMアカウントです。AWSアカウントは、マスターアカウントと呼ぶこともあって大元のアカウントになります。AWSにサインアップ時に作るものが、AWSアカウントで1つだけ存在します。それに対して、IAMアカウントはユーザアカウントです。AWSの管理コンソールから、個々のユーザ向けなどに作成します。 AWSアカウントの取扱について AWSアカウントは、全権限を持っています。強力すぎるアカウントで、日常の運用に利用するには危険すぎます。日常の運用には使わないというのが

    AWSのアカウント管理の話 - プログラマでありたい
  • 作って覚える転置インデックス、「検索エンジン自作入門」 - プログラマでありたい

    先行発売で、検索エンジン自作入門を購入しました。まだペラペラと眺めている状況ですが、これが非常に面白いです。 「検索エンジン自作入門」は、集めた文章をいかに整理するかをテーマとして扱っているです。整理するという意味は、検索エンジンを利用するというライフハック的な意味ではありません。整理する為の検索エンジン自体を自分で作ることで理解するという、極めて硬派なです。 「検索エンジン自作入門」とは? 「検索エンジン自作入門」は、未踏IT人材発掘・育成事業にスーパークリエータに認定された山田浩之氏と、Senna/groongaの開発者の末永匡氏の共著です。検索エンジンについて語らせたら、日でこれ以上の人たちはいないだろうという組み合わせです。ということで、内容は非常に濃いのですが、難しい内容を解りやすく解説されています。 一方で、扱っている内容は非常にマニアックです。下に目次付けておくので見て

    作って覚える転置インデックス、「検索エンジン自作入門」 - プログラマでありたい
  • プログラミング・レスで5分でサックリWebスクレイピング「kimonolabs」 - プログラマでありたい

    Rubyによるクローラー開発技法」で付録か何かで書こうか悩んだ末に書かなかったのが、kimonolabsの話です。kimonolabsは、クローラー/スクレイピングをオンラインで実行できるWebサービス(SaaS)です。クローラーを書いておいて何ですが、9割の人は自分でクローラーを作らずに、この手のサービスを利用すれば事足りると思います。(書かなかった理由は、Ruby縛りサービスの継続性とスケジュールの問題です。主に最後) kimonolabsとは? kimonolabsは、先述のとおりWebスクレイピングをしてくれるSaaSです。会員登録してChromeの拡張をいれれば、すぐに使えるようになります。一般的に、Webスクレイピングする場合は、次のような手順が必要です。 対象ページのダウンロード ダウンロードしたページから、特定の箇所を抜き出す 抜き出したデータの保存 対象ページのダウン

    プログラミング・レスで5分でサックリWebスクレイピング「kimonolabs」 - プログラマでありたい
  • 開発用プロキシ、「CocProxy」が便利 - プログラマでありたい

    CocProxyというツールがあります。名前の通りプロキシサーバーなのですが、用途が開発用です。置換プロキシと言うらしいですが、これがとっても便利です。例えば、クローラーの開発や、HTML,CSS,JavaScriptの修正をする際に、このCocProxyを利用するとダウンロード待ちのイライラが解消され、効率アップ間違いなしです。ローカルのみで完結するのと、Webへのアクセスが必要とするのでは、スピードが数十〜数百倍違います。一回だけでみたら、数百ミリSecの差ですが累積で考えると大きいですよ。 CocProxyとは? Ruby製のProxyServerです。かつ標準ライブラリで動くことを目標としているので、Rubyの環境があれば、ダウンロードして直ぐに使えます。また基的には1ファイルで完結するので、導入も簡単です。Ruby1.9をベースにしていますが、Ruby 2.0でも特に問題なく動

    開発用プロキシ、「CocProxy」が便利 - プログラマでありたい
  • Ruby製のクローラー Anemoneの文字化け対策 - プログラマでありたい

    何度も取り上げていますが、Ruby製のクローラーであるAnemoneについてです。もう2年ほどメンテナンスされていないものの、Rubyの中のクローラー・フレームワークとしては未だに一番の完成度です。しかし、残念ながら幾つかの問題点があります。その中で日語を扱う我々にとっては一番大きな問題は、文字化けです。 Anemoneの文字化けの原因 Anemoneの文字化けの原因は、ずばりUTF-8以外の考慮が何もされていないためです。Anemoneが利用するHTMLパーサーであるNokogiriは、もともと内部的な文字コードをUTF-8として扱います。UTF-8以外の文字コードを扱う場合は、文字コードを指定して渡す必要があります。それにもかかわらず、AnemoneがHTMLをパースする時は、次のような実装になっています。 # # Nokogiri document for the HTML bod

    Ruby製のクローラー Anemoneの文字化け対策 - プログラマでありたい