読者です 読者をやめる 読者になる 読者になる

よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

SonicGardenのオフィスが外苑前に変わりました!

6月28,29日にかけて、SonicGardenのオフィスが浜松町から神宮前に変わりました! 今までのビジネス街とはうってかわって、スーツな人が少なく、若い人が多くて、おしゃれなお店のおおい街になりましたので、何だか不思議な感じがしています。さて、今回は29…

実践で使えるEBSスナップショット取得スクリプト

『AWS障害による影響を小さくするための設計(2011/4/21の障害を踏まえて)』の障害を経験しての対策として、"(2) snapshot生成のステータスも監視しましょう"というのをあげていました。その中で、以下のようなことを書いていました。 新しいsnapshotを作成す…

Ubuntu 11.04でTrackPointでの縦スクロールを有効にする

FireFoxやChromeなどでブラウジングする場合にTrackPointを利用してスクロールしようとしても反応しません。 過去のUbuntuのバージョンに関しても同様の問題があり、それについては以下のエントリで解説しています。 『Ubuntu 10.4(Lucid Lynx)でセンタース…

Windowsサーバをリモートから強制的にOSリブートする

IT

id:rx7が『Linuxのサーバをリモートから強制的にOSリブートする』を投稿していたので、Windows Terminal Serviceへのリモートデスクトップ接続が出来なくなったという前提のもと、Windowsサーバ版でリモートから強制的にOSリブートする方法を紹介します。過…

AWS障害による影響を小さくするための設計(2011/4/21の障害を踏まえて)

AWS

youRoomでの障害対応と、SonicGardenの運用の考え方について、先日id:mat_akiがブログを公開しました。 『youRoomにおいて発生した 2011/4/21 のAWSの障害について技術的な観点から』今回のブログでは、”今回のAWSの障害を通じて、AWSを今後も活用していくた…

bundle install時にnative extensions errorが発生する場合はメモリ不足の可能性があるかも!?

Amazon EC2の低スペックインスタンス(Micro instance)で、bundle installすると、native extensionのインストールでエラーが発生する場合があります。 インストール時に必要となるライブラリが本当に足りない場合は、必須ライブラリをインストールする必要が…

`require': no such file to load -- ec2/amitools/bundle (LoadError)

AWS

RubyEnterpriseEditionのrubyを利用してEC2のAMIのバックアップをしようとした時に出力されたエラー。 /usr/lib/ruby/site_ruby/ec2/amitools/bundlevol.rb:11:in `require': no such file to load -- ec2/amitools/bundle (LoadError) Rubyのライブラリがき…

ThinkITにクラウド関連記事を寄稿しました!

「ARCによるWebアプリの新しいつくり方」というタイトルで @kuranuki が Agile×Ruby×Cloud を利用した開発/サービススタイルの概念を第1,2回で解説し、そのあとの第3,4回で、最近注目を集めているHerokuに関する内容を私が書き下しました。最近は「クラウド…

ブラウザでRenameしたら、console(ローカル)で認識しなくなった場合の対応

Herokuでは、ブラウザでアプリケーションの名前をブラウザから簡単に変更できます。 ※アプリケーションの「General info」を参照簡単ゆえにブラウザで変更した後に、consoleからherokuコマンドを発行して操作しようとすると以下のように表示されてしまいます…

ERROR: padding check failed

AWS

インスタンスストアタイプのAMIをEBSタイプに変換しようと、 ec2-unbundle コマンドを実行したところ以下のようなエラーが出力された。 #ec2-unbundle -k pk-XXXXXXXX.pem -m /mnt/ami/image.manifest.xml -s /mnt/ami -d /mnt/ami --debugERROR: padding ch…

セキュリティ対策ソフトAVG Free 2011をLinuxに導入する方法

独立系機関の主催するウイルス対策ソフトウェアテストで No.1 の検出率と評価されているらしい AVG がLinux版のパッケージ/ソースコードをダウンロードできるようにしています。 これまではWindows版しか対応していませんでしたが、Linux版も用意していただ…

MySQLに関するTips

いざという時に忘れがちなので、メモとして残しておきます。 ■ Queryをキャッシュに格納しない query_cache_type が有効な場合に限り、使用できます。 mysql> SELECT sql_no_cache * FROM users; ■ 実行計画の確認 発行するSQLが遅いかなどを確認する際には…

[Linux] crontabで利用できる特殊文字列(日時指定)

特定処理の定期実行をするcrontabの書式は以下のようになっています。 分 時 日 月 曜日 コマンド ですが、この実行日時指定では、"よく利用される日時のショートカット"である特殊文字列を利用することができます。 その特殊文字列は以下のようになっていま…

Ubuntuに最新版Dropbox 1.0を導入する方法

Dropbox 1.0がリリースされ、指定したディレクトリのみsyncする"Selective Sync"機能が利用できるようになりました。 Dropboxの新機能に関しては以下をご覧ください。 Dropbox 1.0登場 〜マイコミジャーナル〜 Dropbox hits 1.0! さっそくdropboxのトップペ…

script/consoleでroutesのpathやurlを表示する方法

script/consoleでroutesで定義したurlやpathを出力してみたい場合、普通にusers_urlなどを入力してもNameErrorとなってしまいますが、どうにかして表示させたい場合は下記の2つのやり方があります。■方法(1) script/consoleを起動すると、標準でActionContro…

script/consoleでhelperのメソッドを実行する方法

railsでアプリを開発していると稀にhelperメソッドをconsoleで試してみたくなる場合があります。 そんなときは、以下の初期化をすることでhelperのメソッドを実行して試すことができるようになります。 $ script/console hoge = ActionView::Base.new hoge.e…

Puppet活用事例の資料を公開します。

SonicGardenで活用しているシステム運用管理ツールである"Puppet"の活用事例を紹介する機会があったので、その時に利用した資料を公開します。id:POCHI_BLACK によるchefに関する紹介があり、その後に chefと比べてpuppetはどうなのか? puppetを活用してど…

大規模システム運用でpuppetやchefだけでは解決しづらいことを解決するMCollective!

もはや説明は不要かもしれませんが、"puppet"は、Puppet Labsが開発しているシステム運用管理ツールで、puppet管理下にあるサーバ群のシステムの状態を"あるべき状態"に保つための補助ツールです。 chefもpuppetと同等の機能を持ち、システムの運用管理をす…

erbファイルの構文チェック

システム運用管理ツールである"chef"や"puppet"でtemplateファイルを作成/更新する際に知っておくと何かと便利です。 $ erb -x -T -P [ファイル] | ruby -c

RailsアプリケーションにてClamAVを利用してリアルタイムにウィルス・スキャンを実現する方法

ファイルのアップロード機能を有するアプリケーションを運用している場合は、ウィルスに感染したファイルがアップロードされることを考慮する必要があります。もし何も対策していない場合、ウィルスに感染しているファイルがアップロードされ、そのファイル…

アプリケーションに依存するバッチを"アプリケーションで自動生成"してcronに登録する方法

バッチ処理で一括処理を行うようなアプリケーションは多いかと思います。 ですがこのバッチ処理の設定をするときに、以下のようなシーンで悩まされることが多々あります。マニュアル関連の問題として、 マニュアルを読みあさらないとわからない バッチに関す…

sshを試みて "/var/tmp/log/script/[ログインID] を作成できません"と表示された場合の対処方法

sshでEC2のLinuxサーバにログインしようとしたら、以下のようなメッセージが表示され、ログイン直後すぐに強制的に接続をcloseされてしまった。 mkdir: ディレクトリ `/var/tmp/log/script/interu' を作成できません: そのようなファイルやディレクトリはあ…

特定容量以上のファイルを探すワンライナー

カレントディレクトリ以下から100MB以上のファイル一覧を探し、その一覧の中から容量の大きいファイルトップ10を表示する。 $ find ./ -size +100M -type f -ls |awk '{ print $7,$11 }'|sort -n -r | head -10

mysqlのログファイルのサイズを変更する

バイナリデータを格納するために、BLOB型やその拡張のMEDIUMBLOB型を利用するシーンが時折あるかと思います。BLOB型を利用していて、サイズの大きなデータをDBに格納しようとすると、MySQLのログに以下のようなエラーログが出力されることがあります。 10090…

これを知っておかないと、MySQLサーバの再起動でDBデータの不整合が発生するかもしれません!

Railsに限らず、MySQL(Innodb)を利用したサービスを開発/運用しているなら、これから解説する内容を知っておかないと、予期しないデータ不整合を発生させてしまうかもしれません。 データ不整合が発生してしまったら、本来あるべき状態に戻すのはかなり難易…

Passenger + monit でリリース作業をより簡単にする方法

PassengerでRAILSアプリを運用しているなら、アプリのリリース時には、${RAILS_ROOT}/tmp/restart.txt を配置/更新することで、ほぼダウンタイム無し(httpdの再起動なしのため)にリリースしているかと思います。ただ、アプリケーションのソースコードの影響…

maillog に "error writing message: File too large"が出力されていたら

■前提 smtpサーバ postfix メール格納形式 mbox /var/log/maillog を確認すると、タイトルのようなログが出力されていました。 status=bounced (cannot update mailbox /var/spool/mail/"ユーザ名" for user "ユーザ名". error writing message: File too la…

実行されているSQLを確認/強制終了する方法

忘れない様に備考録として。MySQLがCPUリソースを占有している場合は、以下のコマンドで何が起こっているのかを調査できる。 mysql > SHOW FULL PROCESSLIST; Id User Host db Command Time State Info 11444 root localhost skip_test Sleep 53 NULL 12033 …

gitでカラー表示で文字化けが発生する場合はlvを削除せよ

gitの設定(~/.gitconfig)で git diff を実行した際に自動的にカラー表示をしてくれるような設定ができます。 [color] interactive=auto diff=auto status=auto branch=auto [core] editor = vim 私のUbuntu環境ではカラー表示の設定をすると、本来カラー表示…

puppet-moduleでモジュールのレシピの共有/再利用が可能に!

これまでシステム運用自動化の手助けをしてくれるツールであるpuppetのベストプラクティスは、puppetlabのサイトに掲載されていました。 しかし、最近のサイトリプレースと合わせて?、puppet-moduleというgemがリリースされ、そちらでpuppetのモジュールを…

Ubuntuで簡単に自動起動するサービスを確認/設定するには?

Debian系であるUbuntuでシステム起動じに自動で起動するサービスの設定をコマンドベースで行うには、update-rc.d コマンドが一般的です。 ちなみにupdate-rc.d コマンドが行う処理内容としては、単に /etc/init.d 配下のスクリプトについて、/etc/rc?.d 配下…

UbuntuでGoogle chromeをベータ版から安定版に切り替えるには?

今までずっとGoogle Chomeベータ版ユーザだったのですが、安定版がリリースされたということで、安定版に切り替えてみます。リポジトリを更新したら自動的に落ちてくるだろうと思っていたのですが、更新されず。 では、新しいstableのパッケージが提供開始さ…

Google 日本語入力を利用して快適Ubuntu Lifeを

5月11日にGoogleがオープンソース化した"Google 日本語入力 Mozc(モズク)"をUbuntu 10.4にインストールしてみました。Mozcプロジェクトのドキュメント「Linux Build Instruction」では、MozcがUbuntu 9.10 と 10.04でサポートされているとのことですので、…

Ubuntu 10.4(Lucid Lynx)でセンタースクロールを使えるようにする方法

いよいよあと2日で正式版Ubuntu 10.4がリリースされます。10.4では、いくつもの仕様変更がありますが、その中の一つに8.10(Hardy)で取り入れられたHALによるハードウェア設定の見直しがあります。そのため、利用しているPCによっては、10.4にアップグレード…

Ubuntu 10.4に最新版java6-jdkの導入

Ubuntu 10.4 LTS betaでinfoscoopを動かすためにjava-jdkをインストールしたときの手順を忘れないようにまとめておく。まずは、aptでsun-javaのインストールを試みる。 $ sudo apt-get install sun-java6-jdk パッケージリストを読み込んでいます... 完了 依…

Ubuntu 10.4 LTS Beta1でdropboxを利用するには

今までUbuntu 9.10でdropboxを利用していましたが、10.4 LTS Beta1にアップグレードしたところ、dropboxパッケージが削除されてしました。そこでググってみると以下のエントリを発見。Ubuntu 10.4 Beta1にDropboxをインストールでは、debパッケージを自分で…

find と find_by_ の使い分け

タイトルのメソッドを使い分けるポイントを忘れがちなのでエントリとして残しておく。find と find_by_ の振る舞いで異なる点は以下のとおり。 検索で複数件がヒットする場合、find では複数結果を配列で返すが、find_by_ は1件のみ返す 検索で1件もヒットし…

日経SYSTEMSにAmazon EC2/S3[運用編]を寄稿しました

日経SYSTEMSで、Amazon EC2/S3に関して連載させていただいきました"クラウドきほんのき"の最終号(2010年3月号)が発売されています。 日経SYSTEMS 2010年3月号最終回の今回は、Amazon EC2を利用したシステムを、保守/運用する上でどのような点に注意すべき…

puppet 0.25.4で追加されたフック機能

puppet version 0.25.4で、クライアントでtransactionが実行される前後にフックしてコマンドを実行できるようになったようだ。この機能を利用するにはpuppet.confに以下のように記述すればよいとのこと。 prerun_command = /bin/runbeforetransaction postru…

祝ってもらってありがとうございます!

本日は、SonicGardenメンバーである私(interu)とfujiの誕生日でした! SonicGardenのメンバーは全7名ですが、そのうちの2名が同じ誕生日とは、何たる偶然。 そして、社内SNSであるSKIPが社内向けサービスとして稼働し始めた日でもあります。これだけ記念日が…

sedコマンドで正規表現を利用する際に忘れてはならないこと

sedコマンドを利用して、文字列置換を行うことができるのは皆さんご存知のとおりです。私もよく以下のようなコマンドを実行し、filename.txtの中の文字列である (replacement) を hostname に置き換えています。 $ sed -i s/(replacement)/hostname/g filena…

puppetdコマンドを実行する際のcurrent directoryにはご注意を

puppet version 0.24.8にて発生した事象を紹介します。とある場所に移動後に、puppetdコマンド実行して、puppetmasterd(サーバ)から最新のファイルを受信しようとすると、puppetd(クライアント)で以下のログが出力されました。 shell-init: error retrieving…

Ubuntu 9.10でiTunes 9を動かす方法(難あり)

以前、「Ubuntu(Hardy)でitunesを使えるようにする」のエントリで、Ubuntu 9.04でiTunesを動かす方法を紹介しました。 しかし、Ubuntu 9.10にアップグレードすると、今まで動いていたiTunesが動かなくなりました。wineコマンドでiTunesを起動しようとすると…

Ubuntu 9.10でiTunesっぽいsongbirdを利用する

ひさしぶりにUbuntuをカスタマイズしようという気になりました。そこで今回はLinux版iTunesと言っても過言ではない、Open Source Music Playerであるsongbirdをインストールし、スタイリッシュな音楽プレイヤーを利用できるようにしてみます。まずはapt-key…

SPYSEEで確認する今の自分

TechCrunch50で、デモをしていた「あの人検索SPYSEE」ですが、こちらにアクセスして自分自身を検索してみたところ、以下のような結果となっていました。評価を導き出すにあたって参照されたWEBページを見ても、論文であたったり、Amazon EC2/S3書籍であった…

Amazon EC2/S3を使う上での設計/運用ノウハウをまとめた書籍を発売します。

Amazon EC2を基盤としたシステム/サービスの構築/運用に1年以上の携わり、 そこで得たノウハウをまとめた書籍を2009年11月05日に 発売することとなりました。Amazon EC2/S3を活用したシステム設計を行う上で、 通常のオンプレミス(自社構築/運用)の場合と…

パスワード付きユーザを作成する時のTips

MySQLでユーザを作成する際に、ハイフン(-)等の特殊キーを含む場合は、ユーザ名をシングルクォート(')で括らないとエラーとなってしまいます。 パスワードを設定する場合も同様です。さらに、作成したユーザに対して、特定スキーマのみに全権限を与えるよう…

Ubuntuでgemのfcgiをインストールする際に必要となるパッケージ

自宅や会社のPCにfcgiのgemをインストールする際に、いつも以下のエラーが出力されてて、それをググっているので、自分用のメモとして記録しておく。 $ sudo gem install fcgi Building native extensions. This could take a while... ERROR: Error install…

AVG freeエディション + iTunesを利用中の人はご注意ください

iTunesの最新版(8.2.1)の自動更新が実施された後に、AVGのウィルス定義ファイルの自動更新が走って、システムフルスキャンが動き出した。 そして、数分後にウィルスに感染したとのダイアログが表示されちゃいました。感染ウィルスは、トロイの木馬。詳しくは…

セクシーって。。。

Linuxには、libsexyなる名前のライブラリがあるらしい。 セクシーって、ねぇ・・・。詳細はこちら。