AWS: AMI の作り方(Amazon Machine Image)

AMI 作成のおおまかな流れ

  1. アクセスキーや証明書を取得
  2. イメージに含めたくないファイルを整理
  3. イメージを作成
  4. 作成したイメージを S3 にアップロード
  5. アップロードしたイメージを AMI として登録
  6. 稼働チェック

1. 各種証明書やキーを取得

こちらから、X.509 証明書API キーシークレットキーアカウント ID を取得してメモしておきます。

2. イメージに含めたくないファイルを整理

/mnt 以下はイメージから除外されるので、含めたくないファイルやディレクトリーは削除するか、/mnt 以下に移動するなりする。

[[MORE]]

3. OS のイメージを作成

$ cd /mnt/
$ ec2-bundle-vol -c {cert-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem} -k {pk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem} -u {AWS_ACCOUNT_ID} -r x86_64
Copying / into the image file /tmp/image...
Excluding: 
	 /sys
	 /proc
	 /dev/pts
	 /data
	 /proc/sys/fs/binfmt_misc
	 /dev
	 /media
	 /mnt
	 /proc
	 /sys
	 /tmp/image
	 /mnt/img-mnt
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.001797 seconds, 584 MB/s
mke2fs 1.39 (29-May-2006)
Bundling image file...
Created image.part.00
.
.
.
Created image.part.xx
Generating digests for each part...
Digests generated.
Unable to read instance meta-data for ramdisk-id
Unable to read instance meta-data for product-codes
Creating bundle manifest...
ec2-bundle-vol complete.

4. 作成したイメージを S3 にアップロード

$ cd /tmp
$ ec2-upload-bundle -b {BUCKET_NAME} -a {ACCESS_KEY} -s {SECRET_ACCESS_KEY} -m image.manifest.xml --location ap-northeast-1
Uploading bundled image parts to the S3 bucket xxxxx ...
Uploaded image.part.00
.
.
.
Uploaded image.part.xx
Uploading manifest ...
Uploaded manifest.
Bundle upload completed.

5. アップロードしたイメージを AMI として登録

AWS Management Console > S3 > 4 で入力したバケット > image.manifest.xml のプロパティを開き、リンクをコピーします。

AWS Management Console > EC2 > AMIs > Register New AMI > AMI Manifest Path に取得したリンクのパス部分をペーストします。 AMIs に登録した AMI が表示されていれば OK です。

6. 起動チェック

AWS Management Console > EC2 > Instances > Launch Instance でインスタンス作成ウィザードを起動します。

AMI を選択する画面の My AMIs に登録した AMI があるはずなので、それを選択し、インスタンスを起動します。

あとは起動完了後、SSH で入るなり、Web サーバーであれば Public DNS でアクセスしてみたりして、動作確認をします。

参考記事

AWS

Travis CI 入門:GitHub + Travis CI で継続的インテグレーション

1. Travis CI とは

Travis CI はオープンソースコミュニティのためにホストされた CI(継続的インテグレーション)サービスです。

継続的インテグレーションってなんだ?

継続的インテグレーション、CI(英: continuous integration)とは、主にプログラマーのアプリケーション作成時の品質改善や納期の短縮のための習慣のことである。エクストリーム・プログラミング (XP) のプラクティスの一つで、狭義にはビルドやテスト、インスペクションなどを継続的に実行していくことを意味する。特に、近年の開発においては、継続的インテグレーションをサポートするソフトウェアを使用することがある。

引用: 継続的インテグレーション - Wikipedia

Travis CI は GitHub と連携しており、CI したいリポジトリーを接続しておくと、Travis CI がコミットを取得して、設定ファイル通りにビルド・テストしてくれます。そしてビルド・テストに失敗するとメール(他も可)で結果が送られてきます。

以下のような流れでビルド・テストが行われます。

 +---> [Developer] --- (1) ---> [GitHub] <---+
 |                                           |
 +----- (3) ----- [Travis CI] ----- (2) -----+

(1) ソースコミット
(2) 未テストのコミット取得
(3) テスト結果を送信
つづきをみる

Mac OS X ユーティリティ:Command キー(⌘)+ R キー + 再起動で起動しない

MacBook Air を初期化しようと思って、MacBook Air (13-inch, Mid 2011) マニュアル を見る。

目次の「第3章:問題とその解決方法」をクリックして「コンピュータを工場出荷時の設定に復元する」を見てみると、以下のように書いてある。

コンピュータを工場出荷時の設定に復元すると、コンピュータ上のすべてのもの(ユーザアカウント、ネットワーク設定、およびすべてのファイルやフォルダ)が削除されます。復元する前に、残しておきたいファイルは別のディスクにコピーしてバックアップしてください。Mac OS X の再インストール後にネットワークに簡単に再接続できるように、「ネットワーク」環境設定のネットワーク設定を書き留めておいてください。

  1. Ethernet または Wi-Fi ネットワークを使って MacBook Air がインターネットに接続していることを確 認します。(Wi-Fi ネットワークに接続する場合は、43 ページの指示に従ってください。)
  2. 「Mac OS X ユーティリティ」パネルで、「ディスクユーティリティ」を選択して、「続ける」をクリックします。
  3. 左側のリストでディスクを選択してから、「消去」タブをクリックします。
  4. 「フォーマット」ポップアップメニューから「Mac OS 拡張(ジャーナリング)」を選択し、ディスクの名前を入力してから、「消去」をクリックします。
  5. ディスクが消去されたら、「ディスクユーティリティ」>「ディスクユーティリティを終了」と選択します。
  6. 「Mac OS X ユーティリティ」パネルで、「Mac OS X を再インストール」を選択して、「続ける」をクリックします。
  7. Mac OS X およびアプリケーションを再インストールする場合は、「Mac OS X インストーラ」の指示に従ってください。

Mac OS X および Apple のアプリケーションを復元した後で、その他のデータおよびアプリケーションを Time Machine バックアップから選択して復元できます。

引用:MacBook Air (13-inch, Mid 2011) マニュアル

しかしながら、この通りやっても Mac OS X ユーティリティ が起動しなかった。
じゃあどうやったら起動するのか…。

まずは確認事項を。

確認事項

  • 電源アダプターで電源に接続されているか確認する
  • Ethernet、Wi-Fi でインターネットに接続されているか確認する
つづきをみる

Mac