2011-06-28

[aws] EC2 で壊したインスタンスを修理するには

Amazon Web Services の EC2 では、仮想ローカルコンソール機能が無いみたいなので、起動しなくなるなど、SSH でアクセスできなくなるような壊し方をした場合、手詰まりになりそうになるので、そんな方を救済する方法についての記事です。

そういう時は、EBS にアクセスすることができるように同じ Availability Zone にもう一個、一時的にマイクロインスタンスを立ち上げて、壊したインスタンスの EBS を Web 上の AWS Management Console で、まずデタッチし、一時的なインスタンスにアタッチ、マウントして修理することができます。

アタッチ、デタッチなどは、AWS Management Console と称する AWS の Web 上の管理画面で可能なので簡単にできますが、頭の中が平常な時にあらかじめ練習しておいた方がいいと思います。

具体的な操作手順
  1. 壊したインスタンスをシャットダウンする。Shutdown Behavior の設定により Terminate されると一緒に EBS が削除されるので注意する。Stop なら削除されないので大丈夫。
  2. 壊したインスタンスに関連付いている EBS (※1) をデタッチする。どこからデタッチしたかメモを取る。例: /dev/sda1
  3. 一時的なインスタンスを同じアベイラビリティゾーンに立ち上げる。
  4. ※1 を一時的なインスタンスにアタッチする。
    たとえば: /dev/sdb
  5. ファイルシステムにマウントして、修理する。
    sudo mount /dev/sdb /mnt
  6. マウント解除する。
    umount /mnt
  7. デタッチして、壊したインスタンスの方に再度アタッチする
  8. 上手く動くようになればOKで、ダメなら再度アタッチ、マウントしていじってみる。
    備考: 修復はあきらめる場合でも、データは救出できます。

そもそも私はどう壊すに至ったか
Amazon Linux AMI で、あまりよく考えずに
sudo mv /etc/sudoers.rpmnew /etc/sudoers

したら、Enter を押してから気づいたのですが、sudoers.rpmnew はほとんど何も設定されていなかったので、即座に管理者権限を失いました。
sudoers をいじるときは、万一の事態を想定して、事前に su を使えるようにしたり、root shell を別に開いておくべきでした。

参考
Locked myself out of root account on EC2 Ubuntu instance

Amazon Linux AMI の yum-updatesd を機能させる

yum-updatesd が、デフォルトで常駐 (Amazon Linux AMI 2011.02 にて) していますが、何ら機能していないのでそれをどうにかする方法についての記事です。

yum-updatesd の機嫌を損ねないように dbus を動かす(将来改善される可能性もアリ):

$ sudo yum install dbus
$ sudo service messagebus start

/etc/yum/yum-updatesd.conf を編集して、email, syslog での通知を有効にする:

# how to send notifications (valid: dbus, email, syslog)
emit_via = email, syslog

yum-updatesd の異常時のログがどこにも出力されないので、手動で動作確認する:

$ sudo yum-updatesd --oneshot

2011-06-25

[skype] メールアドレスからスカイプIDを検索されないようにするには

スカイプのアカウント検索機能には、メールアドレスで検索したり、連絡先インポート機能で収集したメールアドレスから一括でIDを検索する親切機能が付いています。

メールアドレスで検索されないようにするには、スカイプのプロフィール編集画面のメールアドレスを削除します。

しかし新しくセットアップされた Skype に初めてログインしたとき (IDがドロップダウンボックスに表示されない状態からログインしたとき) に、登録済みメールアドレスを読み込んでプロフィールに設定してくれる素敵な機能があるので、根本的解決のためには、登録済みメールアドレスを誰も知らないメールアドレスに変更する必要があります

アカウントのメール設定はプロフィールの設定が少々遅れて (一時間程度?) 反映され、アカウントのメール設定の状況に基づいて検索機能は動作しているようです。

パスワードリマインダーはプロフィールのメールアドレスではなく、登録済みメールアドレスで管理されています。また、デフォルト動作は、先の素敵機能により自動的にプロフィールにメールアドレスが登録されるので、メールアドレスで検索可能となっています。

自分がメールアドレスで発見されるかどうかは、[連絡先を追加] から、メールアドレスをメール欄に記入して検索してみると分かります。

参考
Skypeヘルプ – プロフィール情報は誰に対して表示されますか?
> あなたのメールアドレスを知っているお友達は、そのアドレスを使ってユーザを検索し、あなたを見つけることができます。

[skype] 家マークが赤くならないようにするには

コンタクトの近況が更新された時などに、Skypeホームを表すらしい、家マークが時々赤色(オレンジ色?)になって、大した用でもないのに目線を奪って大変迷惑です。この無駄な通知は、以下の手順で回避できます。Skype for Windows 5.3および、5.5.0.110で確認しました。

現在の最新版の 5.5.0.112 では更なる仕様変更で個別に無視するしかなくなりました。以下の手順は古くなっています。

  • Skypeホームの [トップコンタクトを表示] の右にある歯車を押し、スライドスイッチを [通知しない] にする。または、チェックを外し、アップデートを受信しないようにする。
  • さらに、Facebookタブに赤丸が付いて困っている方は、
    「Facebookに接続して、友達からの更新をSkype Homeでチェックし、Skypeから通話を発信できるようにします。」と書かれた初期画面に戻し、そのまま触らないでおくと良い。

    具体的には、[No thanks. I don't want to connect.] を押した場合、
    [歯車アイコン] > [Facebookに接続] > [キャンセル]
    の不可解な手順で、初期画面に遷移する。

    [Facebookに接続]を押した場合、公式ヘルプのこちらの記事を参照:
    SkypeアカウントとFacebookの接続を解除する方法を教えてください。

2011-06-19

[dropbox] 間違って作成したリンクを削除するには

Dropbox の「リンクの取得」という機能を使うと、Public フォルダに入っていないファイル/フォルダでも、個別にファイルをダウンロードできる http://db.tt/***** の形のリンクを作成できます。

うっかり手元が狂ったときなど、作成済みのリンクを削除したい場合は、Dropbox の Web インターフェースにある、リンク - Dropbox から個別に削除できます。

このリンクの取得機能でフォルダのリンクを作成すると、ある短縮URLによってその中が再帰的に公開されたままになるので、大切なファイルの入っているフォルダに共有リンクを与えたままにするのはよろしくありません。

古いバージョンの Web インターフェースではこのリンクのことを共有リンクと表記されており、共有の下の分かりにくいメニューに設定画面が存在していました。

この機能についての公式情報
How do I link to a file or folder?
Simple, fast sharing - Dropbox

[Node.js] 十分な強度のランダム文字列を作る

Math.random() に由来するランダム文字列には十分なエントロピが存在しないので、こんな感じで作ってます。沢山必要な方は fd を開いたままにして再利用すると良いかもしれません。

Base64 できっちりエンコードできるように、最小公倍数(6, 8) = 24 より、24 で割り切れるビット数になるように少し小細工します。

結果を戻り値で欲しいのと、/dev/urandom はローカルにあり、読み取り量も少ないので同期型の API を使用しています。

var fs = require('fs');

function getRandomString() {
    var fd = fs.openSync('/dev/urandom', 'r');
    var str = fs.readSync(fd, 33, 0, 'base64')[0]; // 33bytes = 264bits
    fs.close(fd);

    return str;
}

console.log(getRandomString());
// 実行例: bP/t1gioiyia0s/ECKPT+kpE6TRutrIaeD7vYKdyzNJl

2011-06-15

TOTO TCF581 シリーズの水勢デフォルト値の変更

TOTO のオフィス用ウォシュレット TCF581 シリーズ (TCF581M, TCF581MR, TCF581W, TCF581WR) についての記事です。

これらの機種は公共の場所に設置することを想定していて、立ち去った後、水勢が自動で設定値に戻るようになっています。

多くの場合は中立または最弱に設定されているのですが、ごく稀に変な位置に変更されたままになっていて、不便極まりないです。

この設定は TOTO 公式サイトにある説明書には記載は無かったのですが、以下の手順で変更できます。

  1. [止] を長押し10秒で全ランプ点滅 (メンテナンスモード)
  2. [おしり] でデフォルトの水勢を選択
  3. [止] を押して終了

説明書 には他にも、温水・便座の温度調整、自動パワー脱臭設定の変更の仕方が載っているので、ぜひご参照下さい。

2011-06-09

[google] SSL 検索を使って検索キーワードの秘密を守る

企業内などでプロキシ経由でインターネットに接続している状況で検索エンジンを使った場合、プロキシサーバーのログに検索キーワードが記録されるので、それを回避する方法についての記事です。

そのためには、2010年5月にリリースされた、Googleがプライバシー保護のために用意しているGoogle SSL検索を使えばよいです。

使い方はとても簡単で、通常のアドレスに代わって、以下のアドレスへリクエストするように設定すればよいです。
https://encrypted.google.com/search

Chromeを利用されている方は以下の拡張機能を使うと簡単に検索エンジンを追加できます。
Google SSL Web Search beta (by Google)

2012/11/30 追記
すでに https://www.google.com/ など従来のアドレスをそのまま https に変更するだけでほとんどの Google のサービスにおいて SSL 接続が可能となっております。