Amazon CognitoのGetOpenIdTokenForDeveloperIdentityとGetCredentialsForIdentityを使ってみる。

Amazon CognitoのGetOpenIdTokenForDeveloperIdentityとGetCredentialsForIdentityを使ってみたときのサンプルコードのメモ。 Amazon Cognito側でのIdentity Poolの作成は済んでいる前提。getOpenIdTokenForDeveloperIdentity AWSCredentials credentials = …

mod_rewriteを使ってAmazon S3のコンテンツを表示させる

自分で立てたWebサーバから静的コンテンツ(index.html等)を配信していた形を、元々のWebサーバのURLは変えずに、Amazon S3から配信させてみます。(事前にAmazon S3の該当バケットにindex.html等のコンテンツをアップしておきます。)今回は、Amazon Linux…

Amazon LinuxにRedisをインストール

yumを使ってRedisをAmazon Linuxにインストールしてみる。 $ sudo yum --enablerepo=epel install redis redis起動 $ sudo /etc/init.d/redis start redisの情報を確認 $ redis-cli -h localhost info redis_version:2.4.10 redis_git_sha1:00000000 redis_g…

AWS SDK for JavaScriptを使ってS3にダイレクトでファイルをアップロードする

AWS SDK for JavaScriptがリリースされました。これにより、例えばS3にJavaScriptのファイルを配置して、クライアントサイドでJavaScriptを実行、その中でS3へのファイルアップロードの処理を行えば、別途S3へのアップロードを行うためのWebサーバが必要なく…

S3バケット以下の特定のフォルダにのみアクセス可能なIAMユーザをつくる

以下のJSONポリシーをIAMユーザに割り当てることで、examplebucket以下のfolder1にのみアクセス可能でした。 { "Statement": [ { "Effect": "Allow", "Action": ["s3:*"], "Resource": ["arn:aws:s3:::examplebucket"], "Condition":{"StringLike":{"s3:pref…

AWS OpsWorksでのカスタムAMIの利用について

AWS OpsWorksで2013年10月現在サポートされているAMIは、Amazon LinuxとUbuntu 12.04 LTSベースです。これらを素のまま使うこともできますし、事前にEC2コンソールで起動して、必要なパッケージをインストールしておいて、それをOpsWorksで使うこともできま…

OpsWorksで起動されるインスタンスは複数のレイヤーに属することができる

OpsWorksで作成したインスタンスは複数のレイヤーに属することができます。例えばStatic Web Serverレイヤーに属するインスタンスを作成した場合、それにMySQLレイヤーも属させることで、1インスタンスで2つのレイヤーの役割をこなすことができます。ただし…

aws-cliを使ってAutoScaling Groupを作成してみる。

launch-configurationを作成 $ aws autoscaling create-launch-configuration --launch-configuration-name config1 --image-id ami-39b23d38 --instance-type t1.micro --key-name ap-northeast 作成結果を確認 $ aws autoscaling describe-launch-configur…

Amazon Linux 2013.03にデフォルトでインストールされているAWS CLIにhelpが入ってない。

https://forums.aws.amazon.com/thread.jspa?messageID=449307 こちらのディスカッションフォーラムにもあるように、Amazon Linux 2013.03にはaws-cliのhelp(manual entry)が入っていないです。 $ aws --version aws-cli/0.9.3 Python/2.6.8 Linux/3.4.43-43…

AWS CLIを使ってTagの値のみを取得する

AWS CLIを使って、以下のように割り当てられたインスタンスのTagの値のみ(今回はWordPress)を取得します。 今回はAmazon Linuxを使うので、AWS CLIのインストール方法は割愛します。# Amazon Linux 2013.03に入っているデフォルトのaws-cliを使いました。…

AWS Security Token Serviceを使ってみる

AWS SDKやAWSコマンドラインツールを使う場合、Security Credentialsが必要になります。Security Credentialsの中にはアクセスキーとシークレットアクセスキーが含まれています。AWSのサービスやリソースをAPIを使って管理するときには、この2つのキーを使…

DynamoDBでscanを実行してみる

DynamoDBのテーブル名が SampleTable, AttributeがIdとNameのみのテーブルに対してScanを実行した。AWS SDK for Javaで以下のように実行してみた。 import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.Map; …

AWS OpsWorksで起動されたインスタンスの中身を見てみる

AWS OpsWorksを使ってHAProxyのレイヤーを追加し、HAProxyインスタンスを立ち上げてみる。自分のkeypairを使うように設定すれば、SSHでログインすることができる。早速ログインしてみる。 ec2-userでログインができた。OpsWorksの動作に関連しそうなものは以…

Amazon LinuxにZabbix 1.8.16をインストール

Amazon Linux 2012.09にZabbix 1.8.16をインストールしました。そのときに以下のページを参照させて頂きました。 http://dev.classmethod.jp/cloud/aws/zabbix1_8_15-on-amazon-linux/

Amazon RDS(MySQL)のログファイル出力について

Amazon RDSでログファイルにアクセス可能になりました。【AWS発表】Amazon RDS - より簡単にログファイルにアクセス可能に今まではRDS MySQLのgeneral logなどはRDSのテーブル内に出力していました。 上記機能により、テーブルではなくファイルのみに出力さ…

GitマスターサーバをAmazon Linuxにインストールしてみる

Gitマスターサーバにgitをインストールする。 $ sudo yum install git git-all git-daemon $ git --version git version 1.7.4.5 xinetdを使ってgitサーバを起動する sudo /etc/init.d/xinetd start gitの設定ファイルでdisable = no に変更 sudo vi /etc/xi…

ElastiCacheを使ってみる

Amazon ElastiCacheはインストール、構築不要のmemcachedクラスタ。 現状はMemcached 1.4.5, 1.4.14 に対応しているようです。使ってみて気づいたことは以下です。 ElastiCacheへはEC2(VPC)インスタンスからのみアクセスが可能。 ElastiCacheのセキュリティ…

好きなドメイン名でS3のオブジェクトにアクセスさせる

S3で静的なWebホストが出来ることは周知の事実ですが、そのURLが xxxxxx.s3-website-ap-northeast-1.amazonaws.com といった形で、S3にホストしていることがユーザーさんにもわかってしまっていました。S3を使っているのがわからないようにしたい!という場…

Route 53でELBと通常のサーバをアクセス分散させてみる

下記のような構成をRoute 53の重みづけラウンドロビンでアクセス分散できるか試しました。 結果としては、アクセス分散できます。ただ1点注意が必要なのは、Route 53でELBにエイリアス機能を使ってアクセスを割り振る場合に、TTLの値をRoute 53側で現状セッ…

Route 53で重みづけラウンドロビンしてみる

前回シンプルなDNSラウンドロビンを試したので、今回はWeighted (重みづけ)ラウンドロビンをRoute 53で実行してみる。AWS Management Console上では以下のように設定した。 注意事項としては、Set IDのところに異なるIDを入れること。 あとは、TTLの値を小さ…

Route 53でアクセスを分散させてみる

Amazon Route 53でアクセスを分散させてみます。 通常のDNSサーバで出来るように、Route 53でもホスト名を使って、ラウンドロビンでアクセスを分散できます。その方法は、AWS Management Consoleを使って、 一つの名前に複数のIPアドレスを割り当ててみます…

Elastic Transcoderを使ってみる

トランスコーダにより、動画ファイルをエンコードして、解像度などが異なる形式に変換できる。今回発表されたElastic Transcoderは、その面倒な処理を簡単に引き受けてくれて、しかもその処理自体をスケーラブルに実行できるというもの。早速使ってみる。AWS…

HAProxyを使って複数のRDS MySQLへ負荷分散させてみる。

今回は、バックエンドのRDSの中身が異なるものを使うことで、違うRDSに接続していることを確認したい。 RDS Read Replicaだと、すぐにDBの中身が同期されてしまい、中身が同じになってしまう。 ので、敢えて異なるRDS2つを立ち上げて、それらの全面にhaprox…

AWS CLIを使ってみる。

新しいAWS CLIが出ていたので試してみました。(2013/02/08現在)Amazon Linuxで以下の手順でインストールしてます。 sudo easy_install awscli 次にawscliconfig.txtを作成して、以下のように書き込みます。 aws_access_key_id = AKIAJFLJI2KDXLJIYVCA aws_…

EC-CubeをEC2上でインストールしてみる

AWS

以下のサイトを参考にインストールしましたので、そのリンクだけ載せておきます。 http://blog.serverworks.co.jp/tech/2012/03/14/ec-cube-on-aws-install/ https://gist.github.com/2027612

EBS Snapshot Copy CLIを使ってみる。

コマンドラインでEBS Snapshot Copyを使ってみました。 今回はWindows環境で実行してます。EC2コマンドラインツールの最新版をダウンロードして、AwsCredentials等もろもろの設定をします。注意が必要なのが、EBS Snapshot Copyはpull形式であること。つまり…

Billing Report (CSV)の内容を確認してみる

「Programmatic Billing Access」によって、S3に出力されたBilling Report(CSV)の中身を確認してみました。 その一例が以下です。 ProductCode UsageType Operation UsageQuantity TotalCost AmazonEC2 APN1-BoxUsage.t1.micro RunInstances 1097 29.62 t1.m…

Programmatic Billing Accessを使ってみる

今回はAWSのBilling(請求書)に対して、プログラムからアクセスする方法を紹介します。AWSのBillingの情報が含まれたCSVファイルが、ユーザーが指定したS3 bucketに出力されます。そのCSVファイルをS3から取得して、中身の情報を確認するという方法です。 …

EBS Snapshot Copyしたものを使ってAMIを作成、起動してみる

前回のの「EBS Snapshot Copyを使ってみる」の応用で、リージョン間でコピーしたSnapshotを利用して新たにAMIを作成、起動してみました。本来であれば、こちらのページにありますように、リージョン間のAMIコピー機能がリリースされるとのことなので、それを…

EBS Snapshot Copyを使ってみる

AWSブログで「リージョン間のスナップショットコピーが可能に!」という記事が出ていましたので、早速試してみました。今回は、以下の順番で確認してます。 東京リージョンで空のEBSボリュームを作成 EBSボリュームをEC2インスタンスにattach EC2インスタン…

MultiRegions Active Standby パターン

2012年のCDPのAdvent Calendarで、12月20日分を担当させていただくことになりました!舟崎と申します。今回考えたデザインパターンは「MultiRegions Active Standbyパターン」です。システムをAWS上で構築しようとしたときに、そのシステム要件によっては「…

S3ダウンロード時にRangeを指定する

S3にアップしてあるオブジェクトをダウンロードするときに、0byte から 200 byte までを指定してダウンロードすることができます。それを試したときの、Java のソースコードが以下です。 import java.io.BufferedReader; import java.io.IOException; import…

異なるリージョンで同じインスタンス・AMIを作成する方法

AWS で HA を考えたときに「本当に日本のデータセンターにサーバーを立てておくだけで大丈夫か?」と不安に思われる方がいらっしゃると思います。(もちろん3つのアベイラビリティゾーン全てがダウンするということは、とても考えにくいですが。)そこで別…

DynamoDBを使ってみる

Amazon DynamoDB を使ってみました。 使ってみた一番最初の印象は、今までのDBとは次元が異なるものだなと。 DBのメンテナンスをユーザーがする必要はなくて、フルマネージドであると。 DBのRead および Write のスループットをManagement Consoleで自由に変…

同じセキュリティグループに属するインスタンスのリストを取得する

Amazon EC2を使って、インスタンスを起動すると、デフォルトでは固定IPで起動しません。 固定IPでないと、そのインスタンス間で通信するときに、どのIPと通信すればよいかがわかりません。そこで、今回は同じSecurity Groupに属するインスタンスの Public Dn…

Amazon S3のサービスを止めた後に、S3のオブジェクト(ファイル)にアクセスできるかどうか?

今回試しに、Simple Storage Service(S3)を停止してみた後、S3上に保存されていたオブジェクト(ファイル)へアクセスできるかどうか試してみました。AWSのManagement Consoleで画面右上にあるMyAccountのリンクを辿って、MyAccount ページへ遷移すると Serv…

S3 Presigned URL を使ってみる

Amazon S3にアップロードしたファイルをダウンロードするには、AWS アカウントの認証が必要になります。 アクセス権限を全員がアクセス可能な状態にすれば、S3 上のファイルの URL を指定しただけでダウンロードが可能ですが。一部の人のみダウンロード可能…

Elastic Beanstalk Configuration Files を使ってみる

Elastic Beanstalk Configuration Files という機能が先月リリースされましたね。これは、Beanstalk によって起動されたインスタンスの内部をConfiguration file を使って、カスタマイズすることが出来る機能です。これによって、Beanstalkで動作しているイ…

Elastic Beanstalk CLI を使ってみる

Elastic Beanstalk の CLI を使ってみたので、そのメモを載せます。まずは Elastic Beanstalk の CLI を以下からダウンロード http://aws.amazon.com/code/6752709412171743展開した後、PATH に eb.exe のあるフォルダのパスを追加する。 今回は Windows 環…

Oracle SQLPlus を Windows 上で動かす。

すごく初歩的なとこなのですけども、ハマってしまったので、ここにメモを残します。SQLPlus を使うには、Oracle のサイトにある Instant Clientをダウンロードして、zip を展開すればよいです。ここからダウンロードします。 http://www.oracle.com/technetw…

AWS Toolkit for Eclipseをインストールする

AWS

AWS Toolkit for Eclipseをインストールしてみる。 これを使うと、以下のサービスを使った開発が効率化される。 Amazon EC2 Management Amazon RDS Management Amazon SimpleDB Management AWS Elastic Beanstalk AWS Simple Workflow Tools 今回はEclipse 4…

S3に格納されるオブジェクトに有効期限を設定する。Amazon S3 Object Expiration

Amazon S3に保存されるファイルがどんどん増えていくと、気づかないうちに非常にたくさんのファイルが格納されていた、なんてことは容易に想像できる。 そこで、今回試すのがObject Expiration機能。 格納するファイルに対して、有効期限を設けて、その期限…

curl-loaderを使ってみる

Webサーバーへの負荷かけツール curl-loaderを使ってみる。 インストール 今回はAmazon Linux 上にインストールする。 Amazon Linux には、デフォルトでは make や gcc などが入っていないため、事前にインストールする。 yum install make gcc patch openss…

異なるAWSアカウント間で、S3のファイルのコピーを行うには?

異なるAWSアカウント間で、S3のファイルをコピーすることができます。 S3 の bucket のアクセスコントロールで、別のアカウントのアクセスを許可することで、アクセス、コピーが可能になります。 以下に、その具体的な方法をまとめました。1.S3 のバケット…

Windows Server 2008上でOracle SQLDeveloperを動かすとエラーになった。

SQLDeveloperのzipファイルをダウンロードして、Windows Server 2008上で展開、sqldeveloper.exeを実行したら、下記のようなエラーメッセージが出た。 This application failed to start because MSVCR71.dll was not found. MSVCR71のライブラリがないよ、…

AWS リスクとコンプライアンス ホワイトペーパーを読んだときのメモ

Amazon Web Services: リスクとコンプライアンス ホワイトペーパー(日本語版) http://d36cz9buwru1tt.cloudfront.net/jp/wp/AWS%20Risk%20and%20Compliance%20Whitepaper%20-%20July%202012%20FINAL.pdf Amazon Web Services: リスクとコンプライアンス ホ…

Elastic MapReduceを使ってみる(1)

AWS

Amazon Web ServicesのElastic MapReduce(EMR)を使ってみました。 そもそも、MapReduce とは? 多数のコンピュータの集合に対して、並列処理をさせるためのフレームワークのこと。 MapReduceは、その名の通り Map と Reduce の 2 つの処理がある。 Map 処理…

ELBからVPC内のインスタンスへアクセスさせる。

AWS

AWSのELBを使って、VPC内のWebサーバのインスタンスにアクセスさせてみます。今回の構成図は以下です。 注意事項 ELBをVPCサブネット内で正しくスケールアウトさせるには、フリーのIPアドレスを確保しておく必要があります。具体的には、そのサブネットが少…

Route 53 を使ってみる。

AWS

Amazon Web ServicesのRoute 53を使って、EC2インスタンスに自分が取得したドメインを貼り付ける方法を載せときます。 ドメイン取得 今回は「お名前.com」でドメインを取得しました。 取得したドメインをRoute 53で設定する AWS Management ConsoleでRoute 5…

EC2インスタンスの使用料金が閾値を超えたときに通知を出す方法

AWS

Amazon EC2を使い始めると、AutoScale などで起動しているインスタンスの数が増加して、使用料金が増えてしまうんじゃないか?って不安に思うことありますよね。 今回は、使用料金の閾値を設定して、それを越えたときに通知を出す方法を載せておきます。 ま…