人気ブログランキング |
mytips.exblog.jp ブログトップ

カテゴリ:EC2( 6 )
Amazon AWS S3 にMacのデータをバックアップ
Time Machineのように、障害発生時用にバックアップも取れますが、容量不足のHDDの使わないデータを保管しておくこともできます。

s3sync という rubyで作られたプログラムが便利。
s3syncを持ってきて、解答。
サンプルを参考にs3config.ymlを/etc/s3conf/ディレクトリにコピーする。
こんな風な内容

AWS_ACCESS_KEY_ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AWS_SECRET_ACCESS_KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AWS_CALLING_FORMAT: SUBDOMAIN

こんなコマンドで、testディレクトリの中身をS3のmac-backupというBucketの中のtestディレクトリとしてコピー
ruby s3sync/s3sync.rb -dr ~/mydata/test/ mac-backup:test

逆にローカルのMacにデータを戻してやる場合
ruby s3sync/s3sync.rb -dr mac-backup:test/ ~/mydata/test
ディレクトリの最後の / の付け方を注意しないと、入れ子にディレクトリ構造がずれてしまう。

料金は、
ひとまず、100GBを1ヶ月預けると($1 = 100円で計算)
ディクスペース : 1000円
取り出し等のコマンド1000回で、0.5円くらい。 (一度に1000個のファイルを挙げる場合は1000回分のコマンドになるはず)
転送料金
 アップロード : タダ。
ダウンロード : 2000円
------------------------
100GB退避させ、取り出すのに、往復で3000円。
HDDを調達してくる面倒を思えば、手軽。
さらに「低冗長化ストレージ」「Glacier ストレージ」というプランもあるので、HDDのデータで消すのは惜しいけど、S3にアップロードして預けっぱなしでよければ、さらに安価な使い方もできる。

最近、Macのディスク容量が逼迫している成果、スワップの調子がおかしいので、一旦データを退避させて様子を見てみる。または、買い替えようか検討中。
by sato025 | 2013-04-05 00:52 | EC2
OSXでec2-api-toolsを使う
Rubyが必須なので、MacPortsなどでRubyをセットアップします。(おそらくデフォルトでも利用可能な状態なはず)

シェルの環境変数をセットします
vi ~/.bash_profile
このファイルを編集

★x.509証明書(cert-で始まるファイル)、プライベートキーのファイル(pk-で始まるファイル)は、自分が保存したディレクトリを指定する

★Mac OSXのJavaホームディレクトリは特殊な場所なので
which java
でコマンドの場所を確認すると、大概
/System/Library/Frameworks/JavaVM.framework/Home/bin/java
と分かるのでそのHome
/System/Library/Frameworks/JavaVM.framework/Home
が指定するディレクトリです。


これをファイルの下っ腹の方へ追加

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
export EC2_HOME=/usr/local/ec2-api-tools
export PATH=$JAVA_HOME/bin:$EC2_HOME/bin:$PATH
export EC2_CERT=/usr/local/ec2-api-tools/cert-xxxxxxxxxxxxxxxxxxxxxxxxx.pem
export EC2_PRIVATE_KEY=/usr/local/ec2-api-tools/pk-xxxxxxxxxxxxxx.pem

保存したらrehashなどで環境変数をターミナルに再反映させる。

結局、EC2上でFreeBSDを使っているのでサポート外プラットフォームであるために api-toolもami-toolも両方使い物になりませんでした。
by sato025 | 2011-08-23 00:52 | EC2
Amazon AWS EC2 基本まとめ2
インスタンス起動まえに必要な準備。

アクセスに必要な「キー」の発行をWeb画面を通じて準備します。

アカウントサービスの「Security Credentials」メニューから

以下の4つを準備します。
1)アクセスキーID
2)シークレットアクセスキー
3)X.509 証明書
4)privatekey (←作成時1度しかダウンロードできません)

他、
5)AWS アカウント ID
2000-0000-00000
のような番号(コンソール画面上または「Security Credentials」メニューページ下部に表示)

6)インスタント起動時に発行される
[任意の名前].pem
が必要です。
このファイルは、最初のログイン時、rootでのログインにパスワード無しでログインする為に必要です。通常はrootで最初のログイン後
passwd root
としてrootのパスワードを設定し、その後は、ファイル指定なしにパスワードを使うログインをすることになります。
保存したファイルは権限を変更しておく
chmod 400 [設定したファイル名].pem


一番最初のログインコマンドはコンソール画面「Instances」メニューからインスタンスを画面で選択した状態で上部の「Instance Actions」プルダウンメニュー「Connect」を選ぶと

ssh -i [インスタンス作成時に自分が決めた任意のファイル名].pem root@ec2-100-01-200-150.ap-northeast-1.compute.amazonaws.com

というシェルコマンドが表示されるます。(親切です)



-----------
参考
-----------
アクセスキーID :
AKIXXXXXXXXXXXXXXXPQ
シークレットアクセスキー
miXXXXXXXXXXXXXXXXXXXXXXXsBui8Arwx1
のような文字列

X.509 証明書:
cert-IXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVNKNN2G4.pem
privatekey :
pk-IXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXN2G4.pem
のようなXXXの部分が共通のファイル
by sato025 | 2011-08-23 00:44 | EC2
AWS EC2でもFreeBSDを使う理由
Unix系OSは、昔からFreeBSD系を使っています。
AWS EC2上でも、マイナーな存在であるFreeBSD系を使っています。
深い理由はありませんが、

・MacOSXのベースはFreeBSD
 開発環境はOSX、公開サーバはFreeBSDを利用することで、コマンドや環境構築に近しい知識が使えます。

・パッケージ管理もPort系が使えます。
 FreeBSDのパッケージ管理環境Portと似ているMacPortsが、OSXでも利用できます。

・古くからWebサービスで利用されている
 最新の状況は分かりませんが、例えばYahoo!.comなど巨大Webサービスの重要な部分ではFreeBSD系が使われている(いた?)

その他、パフォーマンスに優位なカーネルなどの設計が施されているらしい(本当に詳しくは知らない)が、クラウド環境でも優位かどうかは疑問。
ですが、別のOS利用による再学習が面倒なのと、しばらくの将来に渡ってFreeBSDが消滅することもなさそう。なのでFreeBSD系を使って行こうと思います。
by sato025 | 2011-08-23 00:21 | EC2
Amazon AWS EC2 基本まとめ
サービス開始から随分時間も経っているので、「AWSマネージメントコンソール」の機能も拡張されていて、インスタンスの開始やAIMの作成など、初期の解説書に書かれている
・ec2-api-tools
・ec2-ami-tools
は使わなくてもサーバのセットアップと管理ができるようになっています。

・ec2-api-tools
 は、外部クライアントからEC2の操作を行うコマンド(シェルスクリプト)類
・ec2-ami-tools
 は、サーバーサイドへセットアップして操作を行うコマンド(シェルスクリプト)類
2種コマンドは全く同じではなくapi-toolの方がコマンドが豊富。
いずれもJava、Ruby環境が必要なので、セットアップが必要。

私は、FreeBSDのインスタンスを利用しているので、ここでハマりました。
いずれのツールもFreeBSDをサポートしていないので、AMI(インスタンスをまるごとイメージファイルに作成)を作成し、S3へバックアップコピーするコマンドが、そもそも利用できない。(近いうちに、サポートされる可能性はあると思う)

ec2-bundle-instance
↑AMI作成からS3へコピーするコマンド。

lib/ec2/platform.rb
にFreeBSDも候補としてありますが、Unサポートなので、どんなにやっても動きません。

ということで素直に
「AWSマネージメントコンソール」
を使って作業を進めます。
または、マイナーなFreeBSDを使わずUbuntuなどAWS上でサポートが豊富なOSをチョイスしましょう。
あと、Root Deviceが、ebsかinstance-storeかも起動やAIM作成に重要なので最初から意識しておきます。
私が選んだOSは
FreeBSD/EC2 8.2b-RELEASE i386/XEN
EBS Boot
by sato025 | 2011-08-23 00:09 | EC2
AWSにFreeBSDをセットアップ
まだ初期段階だが、ここまでのメモ
-------------------
S3に必要な

1、S3にbucketを作成
2、アクセスキーID : 16xxxxxxxxxxxxxxxxxxxxxxxxxxG2
3、シークレットアクセスキー:aMZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGiXl

これを設定
S3Fox(Firefoxプラグイン)でストレージを操作する)

OSXにec2を操作するコマンド関係をセットアップ
ec2-api-toolsというAmazon提供のツール群

コマンドにPathを通すため
.bash_profileを編集

vi ~/.bash_profile
----------------------
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
export EC2_HOME=/usr/local/ec2-api-tools
export PATH=$JAVA_HOME/bin:$EC2_HOME/bin:$PATH
export EC2_CERT=/usr/local/ec2-api-tools/cert-HQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
export EC2_PRIVATE_KEY=/usr/local/ec2-api-tools/pk-myKeyPair.pem
-----------------------
JAVA_HOMEは、OSX独自。Linix系は /usr/bin/javaとかか。

-----------------------
AWS Management Consoleからインスタンス(FreeBSD)を起動
key pairが必要なのでダウンロードしておく。(ここでは「0806keypair.pem」という名前でローカルにダウンロードした)
権限変更
chmod 400 0806keypair.pem

AWS Management Consoleの「Instance Actions」からConnectを選択し、ターミナルからのSSHコマンド例を参照。以下のようなコマンドでログイン。

ssh -i 0806keypair.pem root@ec2-XXX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com

ログインしたら早速rootのパスワードを変えておこう
passwd root

この状態ではFreeBSDは、スッカラカン状態なので
sysinstall
で基本的なFTPなどセットアップする。


csvupを使って、Portsをセットアップ
/usr/local/bin/cvsup -L 2 -h cvsup2.jp.FreeBSD.org /usr/share/examples/cvsup/ports-supfile



------------------------
bashがないので、portsでインストール
cd /usr/ports/shells/bash
make
make install
by sato025 | 2011-08-07 22:48 | EC2
|
検索
タグ
カテゴリ
以前の記事
最新のトラックバック
Tool
from adgj.net wiki ..
Googleウェブマスタ..
from i yahoo i.com:..
[Mac] NAV fo..
from あるネットワーク管理者(よっ..
ライフログ
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧


var gaJsHost = (("https:" == doc ument.loc ation.protocol) ? "https://ssl." : "http://www.");doc ument.write(unesc ape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));var pageTracker = _gat._getTracker("UA-103429-5");pageTracker._trackPageview();