タグ

ブックマーク / thinkit.co.jp (116)

  • [Think IT] サーバが重いってどういうこと? (3/3)

    bi、boの値が大きい程ディスクアクセスが頻繁に行われています。ディスクアクセスが増えると、待ちプロセスが増加して、b、waの値が増えていきます。ディスクアクセスが増えて待ちプロセスが増えると、どんなに高速CPUでどんなにメモリを搭載していても処理がなかなか実行されなくなり、大きなボトルネックとなってしまいます。 ディスクI/Oが多い場合は次のような対策を行います。 アドホックな対策 該当プロセスを終了させる 恒久的な対策 ディスクアクセスが少なくなるようにプログラムを変更する ディスクを高速なものに変更する ディスクを増やす、RAID構成にするなどしてI/Oを並列化させる サーバを増やして負荷分散する

    yuiseki
    yuiseki 2011/11/05
  • [ThinkIT] 第4回:MIRACLE LINUXによる実践的なLKSTの利用 (1/4)

    前回、LKST v2.3で導入される性能評価機能によって、従来より簡単にカーネルの性能解析を実施することができることを紹介した。 LKSTはSourceForge(http://lkst.sourceforge.net/)にてKernel 2.6用のパッチとして公開されている。ここで提供されているパッチは、オリジナルのKernel 2.6用のパッチであるため、一般的なディストリビューション用のカーネルに適用するためには、パッチが適用できるように手を加える必要がある。また、カーネルのビルドという作業が必要になるため、一般のユーザが使うには敷居が高いといえる。 そのため、性能解析が必要な構築済みのシステムがあったとしても、利用中のカーネルにLKSTを組み込んで、障害解析に利用するというのは、現実的にはなかなか難しいといえる。また、実際のシステム環境としては、Kernel 2.4の環境がまだまだ

  • [ThinkIT] 第3回:Linuxカーネルの性能評価機能(LKST)とは (1/4)

    PCサーバの分野においてLinuxを適用したシステムが普及・拡大し、近年ではミッションクリティカルシステムへの適用ニーズも出てきている。ミッションクリティカルシステムでは、発生した障害に対して迅速に対応することが必須であるが、Linuxにはまだダンプやトレースといったシステム解析のための標準的なツールがなく、各社固有のノウハウで対応しているのが現状であった。 我々はこのような状況を打破するため、特にクラッシュするような障害の解析を目的に、カーネル内部で起きているイベントを記録するトレース機能LKST(Linux Kernel State Tracer)を開発し、GPLで公開している。このLKSTを利用することでクラッシュの原因解析の時間が短縮でき、迅速な対応の実現に一歩、近づいたと思う。 しかし障害の中には、応答が遅いために生死監視で障害と判断されるなど、クラッシュしない事例も存在する。こ

  • クラウド基盤ミドルウェア「CloudStack」とOpenStackへの取り組み

    シトリックスのクラウド管理ソリューションの一角を担う「CloudStack」は、スケーラブルなクラウド管理ミドルウェアで、2011年7月にシトリックスが買収したCloud.com社の主力製品である。Cloud.com社は2008年に設立し、2010年には、cloud.comのドメインを購入し、社名をVMOps社からCloud.com社と変更した事でも有名である。さらに、この年にシトリックスとのパートナーシップを確立している。 CloudStackは、米Zynga社、GoDaddy社、Tata Communications社、Korea Telecom社といった多くの、エンタープライズ、クラウドサービス事業者や大手電機通信企業などで採用されている。アジアパシフィック地区での採用も多く、2011年に入り、日での事例も増えてきている。IDCフロンティアや北海道大学での採用は記憶に新しいだろう。

    yuiseki
    yuiseki 2011/08/12
  • ソースコードのファイル配信

    他のマシンにファイルを配信する 第1回に続いて、VPSを複数台関連づけて利用する際に必要となる様々な実例を具体的にご紹介していきます。 複数台サーバーの用途のうち、最も一般的なものとしてWebサーバーがあります。大量のアクセスがあるWebサイトの場合、複数台Webサーバーを用意することが一般的です。VPSであればWebサーバーを増やすこと自体は簡単に行えますが、各Webサーバーに同一のソースコードをどのように配信すべきかについては悩ましい問題です。 また、各Webサーバーに同一コードをただ配信するだけだと実運用上さまざまな問題に遭遇します。実際の経験を踏まえて最低限以下に挙げる3つの対策を講じておいたほうがよいと考えます。 1. 配信ログを取る どのファイルがいつどのサーバーに配信されたかをログとして残します。配信ログがあることで、配信しようとしたファイルが全て確実に配信されたかどうか後で

    yuiseki
    yuiseki 2011/07/26
  • [ThinkIT] 第1回:O/Rマッピング (1/4)

    連載では今話題のフレームワーク「Ruby on Rails(以下、Rails)」と現在Webアプリケーション開発で主流であるJavaのフレームワーク群を比較していきます。 比較軸については、開発に関する事項(生産性やメンテナンス性など)を中心に解説していきます。第1回の今回はO/Rマッピングを提供するフレームワークについてです。 O/Rマッピングとは、オブジェクトとRDBのテーブルをマッピングすることをいいます。O/Rマッピングフレームワークはオブジェクト指向とRDBの仲介人となることで、アプリケーションの開発生産性を向上させます。 Railsからは同梱の「ActiveRecord」というO/Rマッピングのコンポーネントを取り上げます。対してJavaのO/Rマッピングとしては、もっとも知名度が高いと考えられる「Hibernate」と、Javaの正式仕様として策定された「Java Pers

  • クラウドプラットフォーム「Heroku」の活用

    前回は、ARCを実践していく上での開発体制、ツールや手法、マネジメント、そしてビジネス・モデルについて、SonicGardenでの取り組みを解説しました。今回は、プロジェクト情報共有ツールである「youRoom」のサービスをスモール・スタートとする際に利用した、RubyのPaaSである「Heroku」の特徴と、基的な使い方を紹介します。 Herokuとは Herokuは,昨今急速に成長しているRubyアプリケーションのクラウドプラットフォーム(ウェブサービスのホスティングサービス)です。 昨年末に開催されたSalesforce.comのイベント「Dreamforce 2010」にて、Salesforce.comによる買収が発表され、瞬く間に世界中から注目を集めるPaaSとなった事でも有名です。 Herokuでは、2011年2月現在、ソーシャル・アプリケーションやモバイル・アプリケーション

  • NOSQLの新顔、分散KVS「okuyama」の機能

    NOSQLについて解説した前回の記事は、いかがだったでしょうか。今後のアプリケーションでは、増え続けるデータを扱うことが非常に多くなると思います。前回の記事が、こうしたケースに適した新たなストレージの1つとして、NOSQLを理解するきっかけになっていたら幸いです。 連載2回目の今回は、NOSQLの1つである「okuyama」の全体概要と、機能的な特徴を紹介します。 1. 「okuyama」の概要 okuyamaは、まだ聞きなれない方も多いかと思いますが、筆者が開発している分散キー・バリュー・ストアです。2009年12月ごろから開発を始めました。現在はSourceforge.jpにて公開しています。もともとは学習を兼ねて作成したため、一部のログ・ライブラリなどを除き、すべて1から実装しました。2010年1月にファースト・リリースを行い、現在はバージョン0.8.6となっています。 以降は、ok

    yuiseki
    yuiseki 2011/02/15
  • [Think IT] 第2回:PHPのSQLインジェクションを実体験 (3/3)

    セキュリティ最前線】 セキュリティホールをついて遊ぶ 第2回:PHPSQLインジェクションを実体験 著者:大垣 靖男 公開日:2008/1/18(金) 文字エンコーディングベースのSQLインジェクションの防止方法 現在のPostgreSQLやそのほかのデータベースサーバでは、不正な文字エンコーディングを受け入れない。しかし、PostgreSQLMySQLのように「\」をエスケープ文字として利用できるデータベースサーバで、マルチバイト文字を認識しないエスケープ関数を利用するとサーバ側では対処できないケースも存在する(なおPostgreSQL 8.3からは「'」のみがエスケープ文字となる)。 このため、完全な対策には正しい設定とコーディングが必要となる。文字エンコーディングベースのSQLインジェクション防止対策としては、表1のような項目が考えられる。 またデータベースモジュールが提供する

  • [Think IT] 第2回:PHPのSQLインジェクションを実体験 (2/3)

  • [Think IT] 第2回:PHPのSQLインジェクションを実体験 (1/3)

    セキュリティ最前線】 セキュリティホールをついて遊ぶ 第2回:PHPSQLインジェクションを実体験 著者:大垣 靖男 公開日:2008/1/18(金) PHPSQLインジェクションを実体験 記事では、セキュリティに対する課題を実体験していく。第2回となる今回は、いよいよ実際にテスト環境を構築し、攻撃を行う。標的となるのはWebシステムの開発で幅広く利用されている「PHP」だ。 PHP体にはWebブラウザからの入力のデコード処理をはじめとして、Webシステム開発に必要不可欠な機能が組み込まれている。2008年1月3日に最後のPHP 4.x系のリリースとなる「PHP 4.4.8」がリリースされ、これ以降PHP 4.x系の開発は行われなくなった。現在はPHP 5.x系のPHP 5.2.5のみがPHPプロジェクトにより正式にサポートされている状態だ。 データベースサーバへのアクセスもWe

  • [Think IT] 【セキュリティ最前線】セキュリティホールをついて遊ぶ

    University of Denver卒。同校にてコンピュータサイエンスとビジネスを学ぶ。株式会社シーエーシーを経て、エレクトロニック・サービス・イニシアチブ有限会社を設立。Linuxはバージョン0.9xの黎明期から利用してるが、オープンソースシステム開発やコミュニティへの参加はエレクトロニック・サービス・イニシアチブ設立後から。PHPプロジェクトのPostgreSQLモジュールのメンテナ、日PostgreSQLユーザ会の四国地域での活動等を担当している。

    yuiseki
    yuiseki 2011/02/06
  • [Think IT] 第3回:Railsでセッションハイジャックを実体験 (3/3)

    セキュリティ最前線】 セキュリティホールをついて遊ぶ 第3回:Railsでセッションハイジャックを実体験 著者:大垣 靖男 公開日:2008/1/25(金) RoRの脆弱性を攻撃する 未対策のRoRに表示された「新しく有効なセッションID」を別マシン上のWebブラウザから、URLベースのセッションIDとしてリクエストしてみる。すると、RoRはまったく異なるマシンのWebブラウザからのリクエストであるにも関わらず新しいセッションIDを発行せず、既存のHTTPセッションとして取り扱ってしまう。 何故、このような事が起こったか簡単に解説しよう。 大規模な組織や携帯などでは、利用するプロキシサーバがリクエストごとに異なるのは普通のことだ。このため、当然別のIPアドレスからのリクエストであっても「セッションIDが同じ」であれば「リクエストしてきたWebブラウザも同じ」ものとして取り扱わなければなら

  • [Think IT] 第3回:Railsでセッションハイジャックを実体験 (2/3)

    セキュリティ最前線】 セキュリティホールをついて遊ぶ 第3回:Railsでセッションハイジャックを実体験 著者:大垣 靖男 公開日:2008/1/25(金) RoR環境の準備 今回の記事を執筆するにあたって、RoR 1.2.2とRoR 1.2.6の2つのバージョンを用意した。RoR 1.2.6よりも古いバージョンであるRoR 1.2.2にはURLベースセッションを利用したセッションの固定化の脆弱性があり、攻撃が可能だ。なお、RoRのインストールは紙面の都合上解説しないため、環境構築に関してはRoRのマニュアルなどを参照してほしい。 実験は「実際に攻撃を行う」ことに主眼を置かず、「なぜ攻撃に脆弱になるか」について理解しやすくした非常に簡単なサンプルコードで行っていく。サンプルの作成は非常に簡単だ。 まず「rails vuln」コマンドで、実験用のプロジェクトを作成する。続いて「cd vul

  • [Think IT] 第3回:Railsでセッションハイジャックを実体験 (1/3)

    セキュリティ最前線】 セキュリティホールをついて遊ぶ 第3回:Railsでセッションハイジャックを実体験 著者:大垣 靖男 公開日:2008/1/25(金) Railsでセッションハイジャックを実体験 第3回となる記事では、Web開発プラットフレームワークとして人気が急上昇中の「Ruby on Rails」(以下、RoR)を目標に、サンプルコードを用いたセッションハイジャック攻撃を行う。 RoRはRuby言語で記述されたWebアプリケーションフレームワークで「DRY(Don't Repeat Yourself:自分で繰り返さない)」を信条の基に開発されている。「scaffolding(足場組み、スタブコードの自動生成)」や「ActiveRecord(ORMライブラリ)」など、アジャイル開発に必要な機能を備えている。 Webアプリケーションに欠かせないHTTPセッション管理機構ももちろん

  • 「Nagios」「Hobbit」「ZABBIX」「Hinemos」を徹底比較 | Think IT(シンクイット)

    コストメリットを確保するオープンソース/フリーソフトウェア 近年、IAサーバの価格が非常に安価になり、LinuxWindowsを用いたシステムが普及しています。IAサーバを採用したシステムでは、ス ケールアウトを行うように設計することでハードウェアのコストメリットが生まれます。しかし管理するサーバ台数が増加してしまうため、管理コストはそれに 反して増加する傾向があります。 システム全体を効率よく管理するためには、まずサーバのハードウェアリソースやネットワーク、OS、アプリケーションなどの状態を適切に把握できる ことが重要になります。そのため、常にシステムの稼働状況のデータを収集・監視する「監視システム」が必要とされています。 大規模システムではシステムを監視するために、大手ソフトウェアベンダーが販売する統合管理ツールを用いたり、データセンターが提供する監視サービ スを利用することが一般的

    yuiseki
    yuiseki 2010/12/18
  • 外部API(Flickr)を試す!

    FlickrAPIにつなげてみる FlickrAPIを使うにはAPIkeyという認証文字列が必要になります。YahooIDがあればログインが可能ですが、Yahoo! JAPANのIDではダメなので注意が必要です。持っていなかったら、「Flickr(http://www.flickr.com/)」の「Create Your Account」でアカウントを取得し、ログインします。 その後、「Flickr Services(http://www.flickr.com/services/api/)」にアクセスします。ここは英語ですが、FlickrAPIの細かな使い方が載っています。まずは「Your API Keys」に入ってAPIkeyを発行しましょう。 検索をはじめ、基はURLにクエスチョンパラメーターでメソッドと引数を設定してアクセスするとXMLの形式でかえってきます。ここでは基中の基

    yuiseki
    yuiseki 2010/12/04
  • 第4回 Active Recordのその先へ ~RailsでMongoDBを使う~ | Think IT

    MongoDBのインストールは、MongoDBのWebサイトから配布パッケージ・ファイルをダウンロードし、任意のディレクトリに展開します。ログを出力するフォルダと、DBを格納するディレクトリを作成し、画面1のようにmongodコマンドを使って起動します。 画面1: MongoDBの起動 # mongod --logpath ログ・ファイルまでのパス --dbpath DB格納ディレクトリまでのパス MongoDB starting : pid=21599 port=27017 dbpath=/usr/local/mongodb-1.6.3/db 64-bit db version v1.6.3, pdfile version 4.5 git version: 278bd2ac2f2efbee556f32c13c1b6803224d1c01 sys info: Linux ofc-n1.10

    yuiseki
    yuiseki 2010/11/02
  • Active Recordのその先へ ~RailsでMongoDBを使う~

    MongoDBのインストールは、MongoDBのWebサイトから配布パッケージ・ファイルをダウンロードし、任意のディレクトリに展開します。ログを出力するフォルダと、DBを格納するディレクトリを作成し、画面1のようにmongodコマンドを使って起動します。 画面1: MongoDBの起動 # mongod --logpath ログ・ファイルまでのパス --dbpath DB格納ディレクトリまでのパス MongoDB starting : pid=21599 port=27017 dbpath=/usr/local/mongodb-1.6.3/db 64-bit db version v1.6.3, pdfile version 4.5 git version: 278bd2ac2f2efbee556f32c13c1b6803224d1c01 sys info: Linux ofc-n1.10

    yuiseki
    yuiseki 2010/10/29
  • HTML5関連のデータベースAPIとWeb Storageの基本

    HTML5時代にはWebブラウザでデータベースを扱える 最近のWebの世界で、トレンドになっている技術の1つとして、「HTML5」があります。Webブラウザ上で動作するアプリケーション(Webアプリケーション)が一般化したことがあって、Webブラウザに求められる機能が増えてきました。そこで、その状況に即してHTMLをバージョンアップしようという流れが起こり、HTML5の仕様策定が進められています。 HTML5では、HTMLのタグの仕様だけでなく、周辺のAPI(Application Programming Interface)の仕様も明確化して、Webブラウザによる動作の差異をなくそうという方向になっています。また、Webアプリケーションを作る上で従来不十分だった機能について、各種の新しいAPIも追加されます。 APIの中で、特に不足していた分野の1つとして、「データ管理」が挙げられます。

    HTML5関連のデータベースAPIとWeb Storageの基本
    yuiseki
    yuiseki 2010/10/24