「ほっ」と。キャンペーン

What Would Jesus Do?

カテゴリ:AWS( 29 )




s3cmdでmultipartオプションを利用してs3へアップロード

s3cmdで5GB以上のファイルをs3にアップロードする場合は、
オプションでmultipart-chunk-size-mbを指定する必要があります。

このmultipart-chunk-size-mbオプションは
version1.1.0以降で利用可能となります。

現在の最新バージョンをサイトで確認すると、1.1.0-beta2となります。

s3cmdのインストール方法は過去のblogで紹介しております。

実際のコマンドは
/usr/bin/s3cmd sync --multipart-chunk-size-mb=5120 ファイル名 s3://s3バケット名
となります。
(ファイルを5GB毎に分割してアップロードします。)

大きめなファイルとなりますので、当たり前ですがそれなりに時間がかかります
[PR]



by cimacoppi | 2012-12-06 15:59 | AWS

s3cmd実行時にエラー発生

s3cmdを利用して、s3バケットへのファイルの、
アップロード・ダウンロードが可能となります。

しかし、s3cmd実行時に下記の用なエラーに遭遇しました。

The difference between the
request time and the current time is too large.

原因を調査したことろ、s3cmdコマンドを実行している、
Linuxサーバの時刻設定に若干のずれがありました。

Linuxの時刻設定を行ったところ、
正常にアップロードができました。

NTPはやはり入れたほうがいいかもですね。
[PR]



by cimacoppi | 2012-02-13 15:09 | AWS

RDSでfunctionを作成する

RDSでfunctionを作成しようとすると

You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

のエラーが発生します。

利用するためには、DB Parameter Groupの
log_bin_trust_function_creatorsを
有効にする必要があります。

設定はいつもの、SDK for PHPを利用します。

------------------------------------------------------------------------------------
require_once("./sdk.class.php");

$rds = new AmazonRDS();
$rds->set_region(AmazonRDS::REGION_APAC_NE1);
$response = $rds->modify_db_parameter_group('test', array(
array(
"ParameterName" => "log_bin_trust_function_creators",
"ParameterValue" => "on",
"ApplyMethod" => "immediate"
),
));

var_dump($response);

------------------------------------------------------------------------------------

これで作成可能となります。
[PR]



by cimacoppi | 2012-01-27 21:12 | AWS

EC2インスタンスのMetadataを取得

EC2インスタンスのMetadataは、ec2-metadataコマンドで、
取得が可能ですが、今回はcurlコマンドでの取得方法を書きます。
(curlコマンドインストール方法は割愛します)

コマンドは

curl http://169.254.169.254/latest/meta-data/

となります。

IPアドレスの指定は、169.254.169.254となります。

上記コマンドを実行すると、下記の項目が表示されます。

ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
instance-action
instance-id
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups

例えばインスタンスタイプが知りたい場合は

curl http://169.254.169.254/latest/meta-data/instance-type/

となります。

meta-dataについてはここに記載されています。
[PR]



by cimacoppi | 2012-01-13 10:48 | AWS

SDK for PHP でインスタンスを停止せずにAMIを作成

今回はSDK for PHP を利用して、
EC2インスタンスを停止せずにAMIを作成する方法を、
書きます。

スクリプトは下記のようになります。
※東京リージョンでインスタンスが起動しているとします。

require_once("sdk.class.php");

define("AWS_KEY" , "アクセスキー");
define("AWS_SECRET_KEY", "シークレットキー");

$ec2 = new AmazonEC2();
$ec2->set_region(AmazonEC2::REGION_APAC_NE1);


$response = $ec2->create_image('インスタンスID','AMI名',
array("NoReboot" => true));

// Success?
var_dump($response->isOK());


運用中でサービスを止められない時は、
非常に便利だと思います。
[PR]



by cimacoppi | 2011-11-14 16:10 | AWS

SDK for PHP でEC2インスタンスをスタート

前回SDK for PHP でEC2インスタンスの停止方法を、
書きましたので、今回はEC2インスタンススタート方法を書きます。

こちらの記述も停止同様簡単に書けます。

vi start_instances.php


require_once("/opt/sdk-1.4.2.1/sdk.class.php");

define("AWS_KEY" , "AAAAAAAAAAAAAA");
define("AWS_SECRET_KEY", "SSSSSSSSSSSSSSS");

$ec2 = new AmazonEC2();
$ec2->set_region(AmazonEC2::REGION_APAC_NE1);


$response = $ec2->start_instances('i-aaaaaaaa');

// Success?
var_dump($response->isOK());

?>

コンソールも便利ですけど、SDK for PHPも便利だと思います。
[PR]



by cimacoppi | 2011-10-31 21:25 | AWS

SDK for PHP でEC2インスタンスを停止

EC2のインスタンスの停止方法は、
ec2-stop-instancesコマンドから、
実行可能ですが、SDK for PHPからも、
もちろん可能となります。
(東京リージョンのインスタンスとします。)

スクリプトは下記のようになります。

vi stop_instances.php

require_once("/opt/sdk-1.4.2.1/sdk.class.php");

define("AWS_KEY" , "AAAAAAAAAAAAAA");
define("AWS_SECRET_KEY", "SSSSSSSSSSSSSSS");

$ec2 = new AmazonEC2();
$ec2->set_region(AmazonEC2::REGION_APAC_NE1);


$response = $ec2->stop_instances('i-44a0c945',
array( "Force" => true));

// Success?
var_dump($response->isOK());

?>

インスタンスが正常に停止できない場合は一度試してみてください。
[PR]



by cimacoppi | 2011-10-31 21:21 | AWS

RDSでテーブルロック待機時間を変更する

RDSを利用している場合でも、
テーブルロック待機時間の変更をすることは可能となります。
設定のMAXの値は、通常のMySQLと同じく、
1,073,741,824
となります。

設定はSDK for PHPを利用します。
※東京リージョンでパラメーターグループ hogeとするとします。


require_once("./sdk.class.php");

$rds = new AmazonRDS();
$rds->set_region(AmazonRDS::REGION_APAC_NE1);
$response = $rds->modify_db_parameter_group('hoge', array(
array(
"ParameterName" => "innodb_lock_wait_timeout",
"ParameterValue" => "1073741824",
"ApplyMethod" => "pending-reboot"
),
));

var_dump($response);

?>

ApplyMethodの値が、
pending-reboot
となっていますので、設定後RDSの再起動が必要となります。

RDS再起動完了後、接続を行い
show variables like "innodb_lock_wait_timeout";
を実行すれば変更が確認できます。

mysql> show variables like "innodb_lock_wait_timeout";
+--------------------------+------------+
| Variable_name | Value |
+--------------------------+------------+
| innodb_lock_wait_timeout | 1073741824 |
+--------------------------+------------+
1 row in set (0.00 sec)
[PR]



by cimacoppi | 2011-10-27 10:40 | AWS

コマンドラインからインスタンス情報を取得

ec2din コマンドを利用すると、インスタンス情報を取得することができます。

例えば
ec2din -K pk.pem -C cert.pem --region ap-northeast-1
を実行すると、下記のような結果が返ってきます。

[root@ip-10-150-175-70 cimacoppi]# ec2din -K pk.pem -C cert.pem --region ap-northeast-1
RESERVATION r-f057c3f1 301385992664 default,WEB
INSTANCE i-980b9c99 ami-f401aaf5 ec2-175-41-199-5.ap-northeast-1.compute.amazonaws.com ip-10-150-175-70.ap-northeast-1.compute.internal running cimacoppi.net-tokyo 0 t1.micro 2011-06-17T03:24:36+0000 ap-northeast-1b monitoring-enabled 175.41.199.5 10.150.175.70 ebs paravirtual xen sg-10c07311, sg-24c07325
BLOCKDEVICE /dev/sda1 vol-0de2f165 2011-06-17T03:24:57.000Z
TAG instance i-980b9c99 Name admin
RESERVATION r-1e204d1f 301385992664 default,WEB
INSTANCE i-44a0c945 ami-f401aaf5 ec2-175-41-246-212.ap-northeast-1.compute.amazonaws.com ip-10-146-90-73.ap-northeast-1.compute.internal running cimacoppi.net-tokyo 0 t1.micro 2011-06-02T07:24:49+0000 ap-northeast-1a monitoring-enabled 175.41.246.212 10.146.90.73 ebs paravirtual xen sg-10c07311, sg-24c07325
BLOCKDEVICE /dev/sda1 vol-a22954c9 2011-06-02T07:25:09.000Z
TAG instance i-44a0c945 Name TEST

これだと何かなんだかわからないと思います。
そこで、インスタンス名・ElasticIP・Private IP Addressを知りたい場合などはawkコマンドを利用します。

コマンドは下記のようになります。

ec2din -K pk.pem -C cert.pem --region ap-northeast-1 | grep "INSTANCE" | awk '{print $2,$13,$14}'

↓のような結果が得られます。
i-980b9c99 175.41.199.5 10.150.175.70
i-44a0c945 175.41.246.212 10.146.90.73
[PR]



by cimacoppi | 2011-10-04 20:34 | AWS

ELBからportを削除する

ELBに設定したportを、何らかの理由で必要がなくなり、
削除が必要となった場合は、コマンドラインからの設定となります。

今回はport削除方法を書きます。
※前提条件としてAWS SDK for PHPが設定済みとします。

下記のELBから443portを削除します。

a0173028_104107.jpg



vi del.port


require_once("sdk.class.php");


$elb = new AmazonELB();
$elb->set_region(AmazonELB::REGION_APAC_NE1);

$response = $elb->DeleteLoadBalancerListeners('my-load-balancer', array(443));


var_dump($response->isOK());

?>

del-port.phpを実行
(trueが表示されれば成功)
[root@ip-10-150-175-70 sdk-1.3.1]# php del-port.php
bool(true)

443portが削除されているのが確認できます。

a0173028_1041575.jpg

[PR]



by cimacoppi | 2011-08-31 11:08 | AWS

クラウド・ノイズ
by cimacoppi
プロフィールを見る
画像一覧

検索

最新の記事

mod_line_editを..
at 2012-12-14 22:25
nagiosでOracleの..
at 2012-12-13 12:25
s3cmdでmultipar..
at 2012-12-06 15:59
tcpservr をssl化する
at 2012-03-10 21:50
telnetコマンドでpop..
at 2012-03-06 15:59

最新のトラックバック

ファン

ブログジャンル

画像一覧