本日開催予定の交通の乱れと雪の影響からJAWS-UG千葉勉強会 Vol.3を延期することになりました。
今回初LTとして、「さくらのBase Storage v.s S3」の標題で話されて頂く予定でしたが、残念です。
			
		
2014年2月15日
		から hiruta
		0件のコメント
本日開催予定の交通の乱れと雪の影響からJAWS-UG千葉勉強会 Vol.3を延期することになりました。
今回初LTとして、「さくらのBase Storage v.s S3」の標題で話されて頂く予定でしたが、残念です。
2014年2月6日
		から hiruta
		0件のコメント
前回のブログで、fluentd(td-agent)を利用して、さくらのBase Storageへnginxのログの転送にエラーが出る件ですが、設定を試行錯誤した結果、無事転送できるようになりました。
修正したところは、fluentd起動にアクセスチェックを行わないように、check_apikey_on_startをfalseにしたところになります。
これは、IDCFの分散ストレージへのfluentd(td-agent)による転送の設定と同じでした。
fluentdの設定を一部記載しておきます。
<match nginx.access>
 type s3
aws_key_id XXXXXXX
 aws_sec_key YYYYYYYYYYYYYYYYYYYYYYYYYY
 s3_bucket sakuralog
check_apikey_on_start false
 s3_object_key_format %{path}%{time_slice}_%{index}.%{file_extension}
 s3_endpoint b.storage.sakura.ad.jp
 path logs/
 buffer_path /var/log/td-agent/s3
 flush_interval 1440m
 time_slice_format %Y%m%d-%H
</match>
ストレージ内をs3cmdで確認すると、確かに、ログが作成されていることが確認できました。
# s3cmd ls s3://sakuralog/logs/ DIR s3://sakuralog/logs/20140204/ 2014-02-06 13:08 635 s3://sakuralog/logs/20140206-04_0.gz 2014-02-06 13:08 2939 s3://sakuralog/logs/20140206-05_0.gz
相変わらず、Base Storageのコントロールパネルのオブジェクトからは確認できない。この辺りはおそらく未実装ではと予想される。
この状態でしばらく運用してみます。
2014年2月3日
		から hiruta
		0件のコメント
2/3 さくらインターネットからストレージサービス Base Storageベータサービスが発表されました。
主な特徴として
まずはサインアップ
さくらの会員IDをもっていれば、ログインして電話認証
画面に記載された電話番号に電話を掛けて、音声案内で暗証番号が読み上げられるので、上記下部部分に暗証番号を入力してOK
Base Storageのページのコントロールパネルをクリック
さくらのクラウドとはコントロールパネルが異なるので注意。翌々は統一してもらいたいところ。
ネームスペース(S3だとBucket)を新規作成
パブリック、プライベートしか設定できず。S3ほどのアクセスポリシーの機能はなさそう。
アクセストークンのユーザ名が、AWSだとアクセスキー、トークンが、シークレットキーに相当します。
ここ に記載されている通りで、s3cmdでストレージへのアクセスは成功しました。
s3cmd lsでは表示されるのに、コントロールパネルの一覧にはなにも表示されない症状が表示されてしまいます。
次に、fluentd(td-agent)のs3-pluginをさくらのBase Storageに振り向けてみた。
aws_key_id、aws_sec_key、s3_bucket、s3_endpoint を変更。
SSLのワイルドカードSSLが「*.storage.sakura.ad.jp」なので、「s.b.storage.sakura.ad.jp」だとSSLでエラーが起きているようにみられる。td-agentが出力したエラーは下記となります。
2014-02-03 20:57:40 +0900 [error]: unexpected error error_class=OpenSSL::SSL::SSLError error=#<OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed>
2014年1月31日
		から hiruta
		0件のコメント
2014年1月21日
		から hiruta
		0件のコメント
M3インスタンスタイプの価格が時間あたり $0.171から$0.113にプライスダウンのニュースリリースがAWsから発表されました。元記事はこちら。
料金表見たけどm1.mediumならm3.mediumに置換えで、m1.small並の価格のはないか http://t.co/QvCs3ZuX4o
— 真吾 (@yoshidashingo) 2014, 1月 21
となっていますが、m3.medium、前世代のm1を比較してみました。
| vCPU | ECU | メモリ | インスタンスストレージ(GB) | Linux/UNIX 料金 | |
| m3.medium | 1 | 3 | 3.75 | 1 x 4 SSD | $0.113/時間 | 
| m1.medium | 1 | 2 | 3.75 | 1 x 410 | $0.175/時間 | 
| m1.small | 1 | 1 | 1.7 | 1 x 160 | $0.088/時間 | 
| c3.large | 2 | 7 | 3.75 | 2 x 16 SSD | $0.192/時間 | 
上記表から一目でわかる通り、m3.mediumをm1.smallに近い価格で利用できます。
おまえに、m3.mediumのインスタンスストレージはSSDなので、高速なIOを必要とする処理も十分対応できると思われます。
2014年1月19日
		から hiruta
		0件のコメント
分散ストレージソフトウェアであるRiak CSをEC2上への導入。(トライ中)
rpmも公開されていますが、chefから構築をあえて試してみました。
対象AWS EC2の環境は下記となります。
| OS | Ubuntu Server 12.04.3 LTS | 
| AMI | ami-3f32ac3e | 
| インスタンスタイプ | m1.small | 
ここ に記載されている通り、libssl0.9.8をインストールをします。
sudo apt-get install libssl0.9.8
ファイルディスクリプタの上限変更。
vi /etc/security/limits.conf
root soft nofile 65536 root hard nofile 65536 riak soft nofile 65536 riak hard nofile 65536
まずは、githubから、Riak CSのCookbookを取得します。
git clone https://github.com/basho/riak-cs-chef-cookbook.git
次に、chef-soloをEC2にインストールします。
knife solo prepare -i ~/ec2-riak-cs-key.pem ec2-user@xx.xx.xx.xx
次に、実行するレシピを編集します。
vi nodes/xx.xx.xxx.xx.json
{
 "run_list":[
 "recipe[yum]",
 "recipe[riak]",
 "recipe[riak-cs]",
 "recipe[riak-cs::stanchion]"
 ]
}
※同じレシピを、Amazon Linuxで実行するとyumのレシピのところで中断してしまいました。
次に、cookbookをドライラン。
knife solo cook -i ~/ec2-riak-cs-key.pem ubuntu@xx.xx.xx.xx -W
いよいよ、cookbooksの実行を行います。
knife solo cook -i ~/ec2-riak-cs-key.pem ubuntu@xx.xx.xx.xx
Riak CS起動時に、エラー発生。
[2014-01-19T07:41:43+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out Chef Client failed. 2 resources updated [2014-01-19T07:41:43+00:00] ERROR: service[riak-cs] (riak-cs::default line 56) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1' ---- Begin output of /etc/init.d/riak-cs start ---- STDOUT: sudo: unable to resolve host ip-172-16-60-47 Node 'riak-cs@172.16.60.47' not responding to pings. riak-cs failed to start within 15 seconds, see the output of 'riak-cs console' for more information. If you want to wait longer, set the environment variable WAIT_FOR_ERLANG to the number of seconds to wait. STDERR: sudo: unable to resolve host ip-172-16-60-47 ---- End output of /etc/init.d/riak-cs start ---- Ran /etc/init.d/riak-cs start returned 1 [2014-01-19T07:41:43+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1) ERROR: RuntimeError: chef-solo failed. See output above.
そこで、Riak-CSの基盤であるRiakの動作確認をしました。
sudo riak start
sudo riak attach
Riakのコンソールを表示できましたので、Riakは問題ないようです。
</pre> Remote Shell: Use "Ctrl-C a" to quit. q() or init:stop() will terminate the riak node. Erlang R15B01 (erts-5.9.1) [source] [64-bit] [async-threads:0] [kernel-poll:false] Eshell V5.9.1 (abort with ^G) (riak@172.16.60.47)1>
riak、riak-cs自体は正常にインストールされているようでした。riak-admin member-statusとか表示できるところまでは確認しました。
2014年1月9日
		から hiruta
		0件のコメント
CloudFrontを使って、S3 Bucketのファイルの配信をしてみました。
まず、バケットポリシーの設定から (下記のぼかしている部分にCloudFrontを利用するS3 Bucketを指定します。)
CloudFrontのConsoleにある「Create Distributions」から新規設定を行います。
Origin Domain NameにCloudFrontに使うS3 Bucketを設定します。
CloudFrontのアクセスログも取れます。詳細なブログ記事が、こちら に載っています。
Alternate Domain Namesに、独自ドメインでCloudFrontを利用するときに利用します。独自ドメインをCloudFrontで使うには、DNSの設定が必須です。
また、独自ドメインを使って、CloudFrontにアクセスする場合、デフォルトの、*.cloudfront.netのSSL証明書ではなく、独自ドメイン用のSSL証明書が必要になります。(.cloudfront.netのSSL証明書を利用すると、ブラウザが警告画面になります。)
Geo Restrictioを利用して、配信するエッジを設定することが可能です。
2014年1月5日
		から hiruta
		0件のコメント
CentOS 6.5 64bitにOTNでダウンロードできるOracle11gRelease2をインストールしてみました。
CentOS 6.5はESXi 5.1上に構築済、各種パッケージは最新化済とします。
必要なパッケージをもろもろインストールします。
yum install compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel yum install glibc glibc-common glibc-devel glibc-headers gcc gcc-c++ libaio yum install libaio libgcc libstdc++ libstdc++ make sysstat unixODBC unixODBC-devel yum install unzip
64bitのCentOSですが、compat-libstdc++33に関しては32bit版も必要でした。runInstallerコマンドを実行後、Oracleをインストールするために必要なパッケージが不足している場合は、インストールログに出力されます。
yum install compat-libstdc++-33.i686
Oracle用のユーザ、グループの作成をします。
groupadd oinstall groupadd dba useradd -m -g oinstall -G dba -s /bin/bash oracle
カーネルパラメータの変更をします。
vi /etc/sysctl.conf
以下を追加します。
fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576</p>
ユーザの上限値の設定をします。
nano /etc/security/limits.conf
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
nano /etc/pam.d/login
session required /lib64/security/pam_limits.so session required pam_limits.so
nano /etc/profile.d/custom.sh
#!/bin/bash if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
oraInst.locファイルの作成。サイレントインストールでは必要。
vi oralnst.loc
Oracle インベントリディレクトリの指定を行います。
inventory_loc=/opt/oracle/oraInventory inst_group=oinstall
oracleユーザがoralnst.locファイルを参照できるようにします。
chown oracle:oinstall oralnst.loc chmod 664 oralnst.loc mkdir -p /opt/oracle/oradata chown -R oracle:oinstall /opt/oracle chmod -R 755 /opt/oracle/
以下でOracle11gR2がインストールされます。インストール中はログに書き込まれていきますので、tailfコマンド等でインストール過程の確認が行えます。インストール時のエラーなども出力されますので、インストールが中断する場合もログを参照すると解決の糸口になるかと思われます。
./runInstaller -silent -responseFile /usr/src/oracle/db.rsp
orainstRoot.shとroot.shをインストール後手動で実行が必要です。
最後に、環境変数等の設定をします。
vi ~/.bash_profile
export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2 export ORACLE_SID=orcl export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export PATH=$ORACLE_HOME/bin:$PAT
emctl start dbconsole
ブラウザ等からEnterprise Managerの画面が開ければOK
2014年1月2日
		から hiruta
		0件のコメント
Oracle VM VirtualBoxでは、VMDK(Virtual Machine Disk)を仮想ディスクとして作成できるので、VMImport for Linuxを使って、AWSにインポートできるのではと思い、試してみました。Oracle VM VirtualBoxの仮想マシンをAWSに取り込むことができると便利かと思いましたが、
結論、以下エラーが出て、失敗してしまいました。
ERROR: File uses unsupported compression algorithm 0
同じVMDKと言っても、vmware esxiの仮想ディスクとはファイル仕様が異なるからではと予想されます。(圧縮アルゴリムがサポートしていないから?)
フォーラムにはイメージフォーマットが対応していない場合、上記エラーが出力されます。
2013年12月17日
		から hiruta
		0件のコメント
ESXiイメージ、Hyper-VイメージからAWSのインスタンスに移行できるツールが発表されました。
http://aws.typepad.com/aws/2013/12/vm-import-export-for-linux.html
インポートできるインスタンスタイプには以下に限定されます。
※小規模向けのm1.small、m1.mediumには対応していません。インスタンスにインポートしたあとでも、m1.small等には変更できませんが、c3インスタンスには変更できるようです。(現在c3インスタンスがキャパ不足で、確認できません。)
VMDK、VHDをインポートするには、ec2-import-instanceコマンドを使用します。S3にVMDKをアップロードしたあとで、コンバート処理がバックグランドで走るようです。バックグランドの処理ステータスを確認するには、ec2-describe-conversion-tasksコマンドを利用します。
ec2-import-instanceで使用できる引数は下記となります。VPC内に構成することも可能です。
| ec2-import-instance -t instance_type [-g group] -f file_format -a architecture [-p platform_name] -b s3_bucket_name [-o owner] -w secret_key [–prefix prefix] [–manifest-url url] [-s volume_size ] [-z availability_zone] [-d description] [–user-data user_data] [–user-data-file disk_image_filename] [–subnet subnet_id] [–private-ip-address ip_address] [–monitor] [–instance-initiated-shutdown-behavior behavior] [–x days] [–ignore-region-affinity] [–dry-run] [–no-upload] [–dont-verify-format] | 
ec2-import-instanceは、1つのVMDK、VHDファイルしか指定できませんので、OSディスク以外は、ec2-import-volumeコマンドにて、EBSにインポート後、Attach Diskする必要があります。
ec2-import-volumeで使用できる引数は下記となります。
| ec2-import-volume disk_image -f file_format [-s volume_size] -z availability_zone [-b s3_bucket_name] [-o owner] -w secret_key [–prefix prefix] [–manifest-url url] [-d description] [–x days] [–ignore-region-affinity] [–dry-run] [–no-upload] [–dont-verify-format] | 
vmware環境で複数NICインターフェースもしくは、サブインターフェースを使っている環境をAWSに移行すると、プライマリIPアドレス以外は、無視されて、移行されないことを注意してください。プライマリIPアドレスについても、–private-ip-addressオプションを付けないと、AWS側でDHCPによりプライベートIPアドレスが割り当てられます。