2011/09/24

Amazon Route 53でドメイン管理

EC2で遊ぶ際にドメインがないと不便なのでappbatake.comドメインを取得してみました。
現在はUnicode Charのプログラムを動作させています。
 http://appbatake.com/unicodeinfo/

 必要な情報はいろんな人がまとめているので、簡単な作業メモだけ書きます。
  1. ドメインを取得する
    1. Amazon Route 53はDNSサービスであり、ドメイン取得サービスではないため、ドメインは別サービスで取得、管理する必要があります。僕はお名前.comを使いました。
  2. EC2のインスタンスを準備する
    1. AWSのアカウントがない場合、まずAWSアカウントを取得します。
    2. テストに使うインスタンスがない場合、インスタンスを起動し、IPアドレスを確認します。
  3. Amazon Route 53にサインアップする
    1. Amazon Route 53にサインアップします。
    2. IAMでAmazon Route 53専用ユーザを作成します。
      1. 次のステップでSecret Keyを外部サイトに入力するため、Amazon Route 53の権限のみを与えたユーザを作成します。
    3. nephelai.orgを使ってドメインの設定
      1. @レコードにEC2インスタンスのIPします。
      2. Elastic IPやELBを使いたい場合には、そちらを設定してください。
  4. DNSを切り替える
    1. ドメインに設定しているDNSをAmazonのDNSに切り替えます。
空きのあるドメインを探すのが大変だったぐらいで、あとはさくさく進みました。やっぱりJava使うんだったらApp EngineよりもEC2の方が気楽ですね。

2011/09/09

Unicode Infoのページ(絵文字対応)

Unicode InfoをUnicode6対応にしてみました。
OS X Lionから入力する絵文字も正しく処理されます。

Unicode Infoのページ

実装にはicu4j 4.8.1を使用しています。ver 4.6.1以降はUnicode 6対応です。
http://site.icu-project.org/
http://site.icu-project.org/download
App Engineでも問題なく動作しました。

2011/09/08

OS X Lionにおける絵文字の混乱

OS X Lionの絵文字はUnicode 6に追加されたコードを使っており、フォントとしてはApple Color Emoji.ttfがバンドルされています。ここまではシンプル。ただ、ふたを開けると大混乱です。

一例として、絵文字の「☀」を取り上げます。 この文字はもともとUnicodeで定義されている「BLACK SUN WITH RAYS」という文字であり、Unicode6の絵文字としても従来の文字が採用されました。

実際に文字パレットで確認すると、同じ「BLACK SUN WITH RAYS」が、絵文字と象形文字で異なる表示になっていることがわかります。この時点でUnicode的には微妙な気がします。



さらに調べて行くと面白いことがわかりました。
これはSafariの検索窓です。「SMILING FACE WITH OPEN MOUTH AND SMILING EYES」「BLACK SUN WITH RAYS」の順で入力すると普通に表示されます。
次に、この二文字をまとめてコピーし、ペーストしてもそのまま表示されます。しかし、「BLACK SUN WITH RAYS」だけをコピーしてペーストすると黒い文字になります。

以下は僕の予想です。
Appleの文字表示ポリシーは「表示する」ことを重視しており、選択中のフォントで表示できない文字があると自動的に表示できるフォントに切り替わります。これは描画レイヤーに近い部分で行われており、フォント選択できない領域でも発生します。
「SMILING FACE WITH OPEN MOUTH AND SMILING EYES」は通常フォントにないためEMOJIフォントに切り替わり、絵文字に存在しない文字が現れるまで絵文字フォントが使用されます。
これで説明はつくのですが、かなり混沌としていますね。

Guice + One-Jar

最近はGoogle Guiceがマイブームです。

One-JarからGuiceを使用する場合には、One-Jarのバージョンを0.98にした上で、META-INF/MANIFEST.MFに下記の記述が必要です。
One-Jar-URL-Factory: com.simontuffs.onejar.JarClassLoader$OneJarURLFactory
One-Jar Frameworks

One-Jarの最新版は0.98 RC-2となっています。 ただ、"release early, release often"といいながら、2010/8/25以降変更がありません。



One-Jarについて詳しくはこちら
One-JARでアプリケーションの配布を単純化

2011/07/20

AWS Tips : EBSのスナップショット

EC2上の外付けハードディスクにあたるEBSには、スナップショットという非常に便利な機能があります。この機能によりEBSの内容を瞬時にS3にバックアップしたり、バックアップから新しいEBSを作成したりできます。

EBSはAvailability Zone内で冗長化されているのに対して、Snapshotが保存されるS3はリージョン内で冗長化されるため、より高い信頼性を得る事が出来ます。また、EBSにSnapshotを作成しておくことで、EBS自体の信頼性も高まるとのことです。

ソース https://forums.aws.amazon.com/thread.jspa?threadID=37676
Taking EBS snapshots is not just for restoring in the event of an EBS failure.  It actually reduces the failure rate of the EBS volume itself as a failed block on the EBS volume will transparently fail through and be read from the EBS snapshot on S3. 

「瞬時に」と書きましたが、スナップショットをとる瞬間は高速ですが、その後のS3への書き出しは非常に遅いです。今実行している800GBのスナップショット作成は24時間で60%程度しか進んでいません。ただ、S3書き出し中もEBSには通常通りアクセスできますし、データを修正してもスナップショットには影響ありません。

ソース https://forums.aws.amazon.com/message.jspa?messageID=108982
When your call to ec2-create-snapshot returns, any future writes to the volume will not be reflected in the snapshot. 

AWS関連まとめ