ここをみる限り
リポジトリからcloud foundryをインストールできるようになっているので、Ubuntu 11.10をSun VirtualBoxにインストールしました。64bit版をインストール。
11.10は以下アーカイブページからISOファイルをダウンロード行えます。Ubutuのトップでは最新版しかダウンロードできません、
2013年8月1日
から hiruta
0件のコメント
ここをみる限り
リポジトリからcloud foundryをインストールできるようになっているので、Ubuntu 11.10をSun VirtualBoxにインストールしました。64bit版をインストール。
11.10は以下アーカイブページからISOファイルをダウンロード行えます。Ubutuのトップでは最新版しかダウンロードできません、
2013年7月30日
から hiruta
第10回Cloudn勉強会に参加しました。 はコメントを受け付けていません
第10回Cloudn勉強会 に参加しました。
今回は、Cloudnの概要、PaaSサービスの今後の展開、デモンストレーションを行われました。
最近のニュース記事についても触れられた。「IBMもPaaS基盤として、Cloud foudryを全面サポート」
Accel-Martの基盤として、Cloudn PaaSを使用しているとのこと。
PaaSはプリセットされた実行環境、DBが提供され、運用保守軽減が図れる。PaaSを使うこと、分散環境の構築も簡単に、インスタンスが物理サーバー障害などによりダウンした場合も、正常動作しているDEA上で自動起動してくれます。
PaaSサービスを使う場合の注意事項についての説明がありました。
今後のPaaSの機能拡張としては、
最後にデモンストレーション
vmcコマンド、ブラウザでの操作
Windows7 64bitだとvmcをインストールして使えるのだが、PCを再起動するとエラーがでて、使えなくなってしまう。原因は現在調査中。
※コントロールパネルからダウンロードされるWindows用ツールは、タイムアウトの調整など行っているようです。
アプリケーションのデプロイ、インスタンス変更、bindするサービス作成、独自ドメインのマッピングなどが行われました。
質疑応答の時間で、Cloud foundryが最近Version 2がリリースことで、CloudnのPaaSのバージョンアップするのかの質問がありました。
→現状検証中とのこと。cloud foundryは複数のモジュールがあり、すべてのバージョンアップする必要はない。ルータモジュールのバージョンアップは行いたい回答がありました。ルーターをバージョンアップすることにより、WebSocketにも対応できるようになるようだ。
Cloudn PaaSの帯域について 各インスタンスは、100Mベストエフォートで接続。ただし、値は非公表だが、上限値はあるようですが、帯域で問題になることはなさそうです。
2013年7月29日
から hiruta
Cloudn PaaSファーストインプレッション はコメントを受け付けていません
Cloudn PaaS スタートアップガイドをもとにwordpressをPaaSインフラにアップロードしてみました。
PaaSは、インフラ部分(Apache、nginx、データベース)を気にすることなく、開発したアプリケーションをPaaSにデプロイするだけで動かすことができる魅力的なサービスです。Cloudn PaaSはvmware が開発したPaaS基盤を採用しており、Cloud foundry基盤のPaaSサービスからの乗換もしやすい。
wordpressオフィシャルサイトからダウンロードできるものをPaaSにアップロードするには、wp-config.phpの以下部分を変更する必要があります。(DB接続部分+認証用ユニークキー)
$services = getenv("VCAP_SERVICES");
$services_json = json_decode($services,true);
$mysql_config = $services_json["mysql-5.5"][0]["credentials"];
// ** MySQL settings from resource descriptor ** //
define('DB_NAME', $mysql_config["name"]);
define('DB_USER', $mysql_config["user"]);
define('DB_PASSWORD', $mysql_config["password"]);
define('DB_HOST', $mysql_config["hostname"]);
define('DB_PORT', $mysql_config["port"]);
wordpressを解凍したフォルダに移動して、vmcコマンドでアップロードします。
vmc push xxxx-sample
データベースを使うので、サービスを作成、アプリケーションに紐付け(Bind)を行います。
ブラウザからアップロードするファイルの上限は2Mですが、.htaccessに、upload_max_filesizeとpost_max_sizeで変更可能のようです。
PaaSにアップロードしてから、WordPress管理画面からテーマをインストールすると、PaaSアプリケーションを再起動とか行うとインストールしたテーマがリセットされるので、PaaSにデプロイする前に使用するテーマは予め同封させておかないといけないようです。
CMSとして稼働する場合、稼働してからアップするもの(画像、ドキュメント類)はObject Storageに保存するように変更する必要があります。なお、再起動後も、データベースは保持されます。
9月27日までに申し込みと利用料金の¥5,000が無料となるキャンペーンを行っているので、試したい方は下記よりお申し込みを。『法人サービスとなっていますが』、個人でも問題なく申し込み可能です。
![]()
2013年7月28日
から hiruta
githubにアップロードする【CUI編】 はコメントを受け付けていません
git push -u origin masterでgithubにアップロードするのだが、以下エラーでアップロードできなかった。
$ git push -u origin master
error: The requested URL returned error: 403 Forbidden while accessing https://github.com/webse/aws-cloud.git/info/refs
fatal: HTTP request failed
githubへのアップするためのアクセス権限がないエラーになります。
https//username@github.com/というようにgithubのユーザを指定するとアップロードできるようになります。パスワードを聞いてきますが。
vi .git/config
[remote "origin"]
url = https://webse@github.com/webse/aws-cloud.git
fetch = +refs/heads/*:refs/remotes/origin/*
AWS SDK for PHP 2のサンプルを以下に公開しています。
https://github.com/webse/aws-cloud
BillingでFreeプランにしていないと、プライベートリポジトリを作っていない場合も課金されるので、注意。
2013年7月25日
から hiruta
CloudnのObjectStorageで、MultipartUploadがうまくいかない。(Try編) はコメントを受け付けていません
CloudnのObjectStorageで、MultipartUploadを試してみました。
AWS SDK for PHP 2は、getcomposer.org よりインストールしました。インストール方法はこちらの記事を参照。
<?php
require_once("aws/vendor/autoload.php");
use Aws\Common\Aws;
use Aws\Common\Enum\Size;
use Aws\S3\Enum\CannedAcl;
use Aws\Common\Enum\Region;
use Aws\Common\Exception\MultipartUploadException;
use Aws\S3\Model\MultipartUpload\UploadBuilder;
use Aws\S3\S3Client;
$access_key = '--access_key---';
$secret_key = '---secret_key---';
$region = Region::AP_NORTHEAST_1; // Region::AP_NORTHEAST_1 = Tokyo Region
$end_point_url = 'http://str.cloudn-service.com';
$bucket = 'devstore';
try {
// S3
// $s3 = Aws::factory(array(
// 'key' => $access_key,
// 'secret' => $secret_key,
// 'base_url' => $end_point_url
// ))->get('s3');
$config = array(
'key' => $access_key,
'secret' => $secret_key,
'base_url' => $end_point_url
);
$s3 = S3Client::factory($config);
$filename = 'P1000267.JPG';
$transfer = UploadBuilder::newInstance()
->setClient($s3)
->setSource($filename)
->setBucket($bucket)
->setKey($filename)
->setMinPartSize ( 5 * Size::MB)
->build();
$transfer->upload();
} catch (MultipartUploadException $e) {
echo $e->getPrevious();
$transfer->abort();
}
実行させると、以下エラーとなってしまう。過去のフォーラムの投稿をみていると、AWS SDK for PHP 2のバグでBucketに”(ダブルコーティション)を利用しているとエラーになることがあるが、SDK自体は最新を使っている(と思う。たぶん)のでこのケースは考えにくい。S3に正常にアップロードできるので、あとはCloudn側しか原因が考えられない。
$ php upload-test2.php Aws\S3\Exception\MalformedXMLException: AWS Error Code: MalformedXML, Status Code: 400, AWS Request ID: ACEE3A10F51811E2, AWS Error Type: client, AWS Error Message: The XML you provided was not well-formed or did not validate against our published schema., User-Agent: aws-sdk-php2/2.4.1 Guzzle/3.7.1 curl/7.19.7 PHP/5.3.3 MUP[
また、S3で対応しているブラウザからストレージにアップロードを行える『 Browser-Based Uploaded by POST』にはObject StorageではPOST Objectをサポートしていないので、使うことができない。(同じクラウドストレージ基盤を使用しているニフティクラウドストレージも未サポートでした。)
上記の件でCloudnのサポートから以下の回答を頂きました。結論分割送信は現時点で動作しないとことです。
こちらでも、調査確認させていただきましたが、
させていただきました。
現時点では、もうしわけございませんが、
することがでません。
引き続き、調査を進めてまいります。
追記させていただきたく思います。
S3が一番使い勝手がいい。S3の場合、トラフィック課金があるので、トラフィック量によっては、コストが掛かる場合もありうる。アップロードは、ブラウザを使わず、Javaで実装がいいのか。
CompleteMultiUploadにバグがあった模様。バグfixする前も、S3では問題ない動作をしていたのは疑問が残るところ。
2013年7月25日
から hiruta
aws-sdk-php環境構築 はコメントを受け付けていません
aws-sdk-phpのライブラリをgetcomposerから構築可能。PEARでもインストールは可能だが、PEARでインストールする場合、root権限が必要なので、root権限がない環境に構築する際便利。
getcomposer.orgにWordPressサイトのバックアップとかを行える便利なパッケージ等いろいろあるようです。
pomander https://packagist.org/packages/pomander/wordpress
curl -s http://getcomposer.org/installer | php
vi composer.json
{
"require":{
"aws/aws-sdk-php" : "dev-master"
}
}
php composer.phar install
あとは、AWS SDKを使うファイルの先頭で、以下を入れればAWS SDK for PHP 2が使用できます。
require "aws/vendor/autoload.php";
2013年7月22日
から hiruta
昨日契約したUQ WIMAX 端末が届きました。 はコメントを受け付けていません
昨日契約したUQ WIMAXの端末が今日宅急便で届いた。(佐川急便)契約プラ

ンは、UQ Step(2段階プラン)設定は簡単。電源オン
。契約チェックが行われて、小窓のディスプレイにアンテナと「WIMAX」が表示されれば、開通。WPSに対応しているので、無線LANの暗号キーを入力なしで、ルーターの設定情報を自動的に設定して、Wi-Fi接続してすんなり終了。(らくらく無線スタートもでいるようです。)WIMAXの場合、大容量通信を行っても、3Gのような速度制限の心配もないので、無線インターネットでは最適。ただし、エリア的には地方では3Gには劣るので、さらなるエリア拡大、品質向上が望まれるところ。
グローバルIPアドレスが割り当てはオプションになったので、ルーターのWAN側にはプライベートIPアドレスが割り当てられている。(100.64.3で始まるもの)通常の利用はプライベートIPアドレスでも問題なさそうです。グローバルIPアドレスオプションも月額+100円。
勉強会会場などでちょっとネットに接続できると便利なので、このような場合に活用する予定。(公衆無線LANはスポットレベルなのでNG)
ルーターの管理画面も用意されているので、詳細な設定も可能。MACアドレスのフィルタリングを設定していますが、許可するMACアドレスを追加する度に、設定を保存するときに再起動がかかる。この点がマイナスポイント。設定変更の度に、再起動が必要なところ以外は文句はありません。

MACアドレスフィルタリングで特定MACアドレスのみに早速制限をしました。
スマホのWi-Fi接続も、スマホがWPSに対応していたので、ものの1分ほどで設定完了。
2013年7月21日
から hiruta
AWSSDK for PHP 2を使う場合のnginxなどのタイムアウトの設定 はコメントを受け付けていません
AWS SDK for PHP 2のMultipartUploadでアップロードする際、webサーバーのタイムアウト時間を延ばしてやる必要があります。
nginxのFastCGIのタイムアウト時間の設定から (/etc/nginx/conf.d/default.conf)
fastcgi_send_timeout 1800; fastcgi_read_timeout 1800; fastcgi_connect_timeout 1800;
次に、php-fpmの設定 (/etc/php-fpm.d/www.conf)
request_terminate_timeout = 1800
最後に、phpの設定 (/etc/php.ini)
max_execution_time = 1800
Connection reset by peerがnginxのログにある場合、タイムアウト時間を疑うといい。
2013/07/21 09:29:16 [error] 7746#0: *3569 recv() failed (104: Connection reset b y peer) while reading response header from upstream, client: xxx.xxx.xxx.xxxx, ser ver: www.webtechlogy.net, request: "GET /sample/upload-cn.php HTTP/1.0", upstrea m: "fastcgi://127.0.0.1:9000", host: "www.xxxx.net"
2013年7月20日
から hiruta
MultipartUpload を試してみました。 はコメントを受け付けていません
Amazon S3にAWS SDK for PHP 2からMultipartUploadを試してみました。以下例は、5M単位で分割して送信を行うようになっています。回線負荷も分散が可能になります。createMultipartUpload → uploadParts → completeMultipartUploadで処理が行われます。uploadPartsは分割分処理が走ります。(Amazon S3はメディアファイルの配信には最適。)
require_once("AWSSDKforPHP/aws.phar");
use Aws\Common\Aws;
use Aws\Common\Enum\Region;
use Aws\S3\Enum\CannedAcl;
use Aws\S3\Exception\S3Exception;
use Guzzle\Http\EntityBody;
use Aws\Common\Exception\MultipartUploadException;
use Aws\S3\Model\MultipartUpload\UploadBuilder;
$access_key = 'access key';
$secret_key = 'secret key';
$region = Region::AP_NORTHEAST_1; // Region::AP_NORTHEAST_1 = Tokyo Region
$end_point_url = 'http://str.cloudn-service.com';
$bucket = 'xxxx';
try {
// S3
$s3 = Aws::factory(array(
'key' => $access_key,
'secret' => $secret_key,
'region' => $region,
// 'base_url' => $end_point_url,
))->get('s3');
$info = new FInfo(FILEINFO_MIME_TYPE);
// Upload File
$filename = "sample.mp4";
$body = EntityBody::factory(fopen($filename, 'r'));
$filetype = $info->file($filename);
$key = "test" . time();
$response = $s3->createMultipartUpload(array(
'Bucket' => $bucket,
'Key' => $key
));
$uploadId = $response['UploadId'];
echo('createMultipartUpload: Finished with id: ' . $uploadId);
$chunkSize = 5242880;
$start = 0;
$part = 0;
$length = $body->getSize();
while($start < $length) {
$end = $start + $chunkSize;
if($end > $length)
$end = $length;
$body->seek($start);
$body->setSize($end);
$real_chunk_size = $end - $start;
var_dump('Sending part #'. $part . ' containing '.$start.' through '. $end . ' of ' . $length);
$response = $s3->uploadPart(array(
'Bucket' => $bucket,
'Key' => $key,
'Body' => $body->read($real_chunk_size),
'PartNumber' => (string)$part+1,
'UploadId' => $uploadId,
'ContentMD5' => hash_file('md5', $filename)
));
$etag = $response->getPath('ETag');
$requestId = $response->getPath('RequestId');
var_dump('Part Received with Etag: '.$etag.' and RequestId: ' .$requestId);
$part++;
$start += $chunkSize;
}
$parts = $s3->listParts(array(
'Bucket' => $bucket,
'Key' => $key,
'UploadId' => $uploadId,
));
$s3->completeMultipartUpload(array(
'Bucket' => $bucket,
'Key' => $key,
'UploadId' => $uploadId,
'Parts' => $parts['Parts']
));
var_dump('Done');
} catch (S3Exception $e) {
$s3->abortMultipartUpload(array(
'Bucket' => $bucket,
'Key' => $key,
'UploadId' => $uploadId
));
S3互換を歌っているCloudnのObjectStorageへのMultipartUploadを試しているのだが、completeMultipartUploadで例外が発生。
putObjectでは問題なくアップロードが完了するので、MultipartUploadの設定ではと考えれる。
あとは、Browser Based Uploaded Using POST が実現できれば。
2013年7月18日
から hiruta
CloudnのObjectStorageをAWS PHP SDKから操作してみました。 はコメントを受け付けていません
CloudnのObjectStorageをAWS SDK for PHP 2 から操作してみました。
まずは、必要なライブラリのインストール。(検証はさくらのVPSで行いました。)
pear install aws/sdk pear channel-discover pear.amazonwebservices.com pear channel-discover guzzlephp.org/pear pear channel-discover pear.symfony.com
以下は、指定Bucket( 以下の場合 xxxx)内のファイルを羅列するだけの簡単なプログラムになります。ひとつ気をつけないといけないは、「baae_url」を「http://」から記載する必要があるところ。
アクセスキーとシークレットキーは契約している個々の情報に置き換えてください。
require_once("AWSSDKforPHP/aws.phar");
use Aws\Common\Aws;
use Aws\Common\Enum\Region;
use Aws\S3\Enum\CannedAcl;
use Aws\S3\Exception\S3Exception;
use Guzzle\Http\EntityBody;
$access_key = 'access key';
$secret_key = 'secret key';
$end_point_url = 'http://str.cloudn-service.com';
$bucket = 'xxxx;
try {
// S3
$s3 = Aws::factory(array(
'key' => $access_key,
'secret' => $secret_key,
'base_url' => $end_point_url,
))->get('s3');
$info = new FInfo(FILEINFO_MIME_TYPE);
$iterator = $s3->getIterator('listObjects',array(
'Bucket' => $bucket
));
foreach ($iterator as $object) {
echo $object['Key'] . "\n";
}
} catch (S3Exception $e) {
}
AWSで使っているものも簡単にCloudnに移植ができると思われます。さすが、ベンダーロックインフリーを歌っていることはあります。
AWSがトラフィック量によっては、月額コストが上がるのに対し、Cloudnは月額の上限が設定されているので、財布にもやさしいと思われます。(さくらのクラウドも月額上限があります。)
ファイルアップロードもputObjectでできるかと思われますが、次回。