maemaewaterの日記

エンジニア兼ゲーマーの人の日記です。PHP/Python/JavaScript/C#/C++などによるプログラムに関することを主に書いています。

Amazon EC2とDynamoDB

Amazon EC2でDynamoDBをPHPから使うまでの道のりです。

ここでは、Amazon EC2インスタンスのOSはAmazon Linux AMI 2012.09を使用しています。

SSHで作成したインスタンスに入り、PHPのインストールをします。

sudo yum install php
sudo yum install php-dom

次に、AmazonSDKを導入します。

wget http://pear.amazonwebservices.com/get/sdk-latest.zip
unzip sdk-latest.zip

サンプルの設定ファイルを~/.aws/sdk/にディレクトリを作成し、名前をconfig.inc.phpにして作成したディレクトリに置きます。

cp sdk-1.5.17.1/config-sample.inc.php ~/.aws/sdk/config.inc.php

config.inc.phpのkeyとsecretを自分のアカウントのものに設定します(これは、Amazon Management Consoleの右上のアカウント名の箇所を押し、Security Credentialsを選択して、アクセス証明書のアクセスキータブのアクセスキーIDとシークレットアクセスキーを入力します)。

DynamoDBは、EC2 Management ConsoleのServicesからDynamoDBを選択してテーブルを作成しておきます。テーブルの名前は"test2"にしておきました。また、プライマリキーはuserにしています。

ここで作成したDynamoDBにデータを追加は、次のPHPのプログラムで試してみました。

<?php
require_once dirname(__FILE__) . '/sdk-1.5.17.1' . '/sdk.class.php';

$dynamodb = new AmazonDynamoDB();
$dynamodb->set_hostname('dynamodb.ap-northeast-1.amazonaws.com');

$putr = $dynamodb->put_item(array(
        'TableName' => 'test2',
        'Item' => array(
                'user' => array( AmazonDynamoDB::TYPE_STRING => '3'),
                'address' => array (AmazonDynamoDB::TYPE_STRING => 'test'),
                'name' => array(AmazonDynamoDB::TYPE_STRING => 'test2')
                )
        )
        );

print_r($putr);
?>

この例では、リージョンは東京を使用しているため

$dynamodb->set_hostname('dynamodb.ap-northeast-1.amazonaws.com');

を使用して接続先を変更しています。

DynamoDB関連: