主夫ときどきプログラマ

データベース、Webエンジニアリング、コミュニティ、etc

Amazon API-Tools Install for fedora

Ec2のebsブートインスタンスにAPI-Toolsをインストールしたときのメモ
OsはFedora8

ツールのダウンロード

wget でファイルをダウンロードし、ダウンロードした ec2-api-tools.zip を解凍します。
解凍するとec2-api-tools-1.3-57419というフォルダが作成されます.

$ wget "http://www.amazon.com/gp/redirect.html/ref=aws_rc_ec2tools?location=http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip&token=A80325AA4DAB186C80828ED5138633E3F49160D9"
$ unzip ec2-api-tools.zip

このページからもダウンロードできます
http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=88&externalID=351

ツールの実行にはJavaランタイムが必要なので事前にインストールしておきましょう。
id:masayuki14:20100208

インストール

解凍してできたティレクトリを移動します。今回は /usr/local/ec2 に配置します。
既にこのディレクトリにはamitoolsがあるのでついでに同じような名前にリネームしましょう。

$ mv ec2-api-tools-1.3-57419 /usr/local/ec2/apitools

環境変数の設定

つづいて環境変数の設定です.
/etc/profile.d/ec2.sh を作成し、以下の環境変数を設定します.

$ export EC2_HOME=/usr/local/ec2/apitools
$ export PATH=$PATH:$EC2_HOME/bin
$ export EC2_PRIVATE_KEY=/root/pk-*****************************.pem
$ export EC2_CERT=/root/cert-*****************************.pem

環境設定の設定後、次のコマンドを実行してバージョン情報が返ってきたらインストールの完了です。
上記の設定ではログイン時に環境変数が設定されるので、一度ログインしなおすといいかもしれません。

$ ec2ver
1.3-57419 2010-08-31

※事前にJavaのPathが通っていることが必要です.

おしまい

rails インストールメモ

FedoraRailsをインストールしたのでメモ。
ほとんど yum でできるので簡単です。

$ sudo yum install ruby          # ruby.i686 1.8.6
$ sudo yum install sqlite        # sqlite.i686	3.6.20
$ sudo yum install mysql-server  # mysql.i686 5.1.47
$                                # DBはsqliteの仕様がデフォルト
$ sudo yum install rubygems      # rubygems-1.3.7
$ sudo gem install rails
$
$ sudo gem install rail -v=2.3.4 # バージョン指定する場合

git の導入方法

1. gitのインストール

# Linux
yum コマンドでインストールします。

$ yum install git

# mac
わかりません。
yum 的なパッケージ管理ツールがあるとかないとかいううわさ

# windows
msysgit のページからダウンロードします.
http://code.google.com/p/msysgit/
右側のFeatured downloads: より最新版をダウンロードしてインストールします.

2. gitの初期設定

まずはgitにユーザー情報を登録します。
以下のコマンドを実行してユーザー名、メールアドレスを登録してください。

$ git config --global user.name "Thomas Edward Yorke"   # 名前を登録します
$ git config --global user.email "thomas@gituser.net"   # メールアドレスを登録します
$ git config --global color.ui auto                     # 色付きの表示設定

~/.gitconfig に上記の内容が保存されていればOKです。

$ cat ~/.gitconfig

3. SSHの準備

msysgitを起動するとLinux like なターミナルを利用できるので、
以下、Linuxと同じことができます。

gitサーバーにはSSH経由で接続するので、接続用の鍵ファイル(id_rsa)を用意します.
用意した鍵ファイルを各ユーザーの .ssh ディレクトリに移して
鍵ファイルのパーミッションを変更します.

 $ mv id_rsa ~/.ssh/
 $ chmod 600 ~/.ssh/id_rsa      # 400 でもいい

gitサーバーに接続できるように設定ファイルを作成します.
~/.ssh/config ファイルを用意します.

 $ touch ~/.ssh/config

vi などのエディタを使って以下の内容を記述しましょう。

Host hostname.com
User devuser
IdentityFile ~/.ssh/id_rsa     # 鍵ファイルを指定します.
Protocol 2,1
Port 22

これで準備完了です.任意の場所でssh接続が出きることを確認してください。

 $ ssh hostname.com

接続できればOK

4. プロジェクトのダウンロード

git を使う準備が整ったので任意の場所にプロジェクトをダウンロードしましょう。
プロジェクトを作成するディレクトリに移りgitサーバーからプロジェクトのクローンを作成します。

 $ mkdir -p project
 $ cd project
 $ git clone devuser@hostname.com:/var/git/hatena.git

git clone コマンドを実行すると project 以下に hatena というプロジェクトのディレクトリが作成されます。
git を扱うさいはこのディレクトリ以下がgitでのバージョン管理対照となります。

あとは add, commit, pull, push
のサイクルを開発でまわしていけばよいのでしょう。

おしまい。

ibdata1のサイズを減らす方法

mysqlのデータフォルダが大きくなっている。どうもibdata1というファイルが肥大化している。調べてみるとデフォルト設定でInnoDbを長期間使っていると、そのデータファイルであるibdata1が実際のデータよりも大きいファイルになってしまう。しかもこのibdata1は全てのInnoDbが共通で使うデータファイルのようだ。
これはいかん、ということでibdata1のサイズを減らし、tableごとにデータファイルを作成する方法のまとめ。

1.databaseをすべてダンプ

DBに登録されているデータをすべてダンプしてバックアップをつくります。--single-transaction のオプションをつけることで、ダンプ中のデータ変更を禁止します。

# mysqldump -u root -p --all-database --single-transaction > /tmp/all-database.dump

2.InnoDbを使っているテーブルを全て削除する。

TRUNCATEではなくDropする。面倒なのでschemaごとDropしてしまえ。

3.mysqldを停止

# /sbin/service mysqld stop

4.データディレクトリのibdata1, ib_logfile0, ib_logfile1を削除

# rm -f ibdata1
# rm -f ib_logfile0
# rm -f ib_logfile1

念のためにリネームしておくほうがベター

5.my.cnfを編集

innodb_data_home_dir = /var/lib/mysql	(default comment out)
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend	(default comment out)
innodb_file_per_table
innodb_buffer_pool_size = 512M

詳細はマニュアルを見るべし→http://dev.mysql.com/doc/refman/5.1/ja/innodb-configuration.html

6.mysqldを起動

# /sbin/service/mysqld start

※ログをチェックしてみよう

〜(略)〜
Starting MySQL................................... [Failed]

となることがあるけれど、ibdata1 の作成に時間がかかりtimeoutしてfailedとなるがmysqldは正常に起動する場合もあるらしい。
ログの参照と、プロセスの参照をして判断しよう。

# tail -n 20 /var/log/mysqld.log
# ps aux | grep mysqld

など

7.ダンプデータをインポート

# mysql -u root -p < /tmp/all-database.dump

時間がたくさんかかります。気をつけよう。

補足

データテーブルに mysql-bin.000xxxというファイルが大量にある場合は必要に応じて削除する。
直接ファイルを削除せず、mysqlのコンソールから削除すること。

ハッシュ関数で暗号化

データをサーバーに保管する際、データによっては暗号化した状態で保存し利用する、という要求は往々にして発生します。
この場合、
・逆変換されないこと(現実的にむり)
・変換が一意であること
が大事になります。
要はハッシュ関数使ってハッシュ化しようぜ、というお話。
これまでMD5SHA-1を使う場面がよくあったけれど、よくよく調べてみるとSHA-1には脆弱性があり、SHA-2を使いましょうということでした。

SHA-2はSHA-224/SHA-256/SHA-384/SHA-512の総称でいまのところ脆弱性は発見されていないとのこと。

続きを読む