aws memo

AWS関連の備忘録 (※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。1年以上古いエントリは疑ってかかってください)

AWS

MongoDB: foursquareは EC2上で MongoDBが動いている

という、スライド。 単一リージョン、単一アベイラビリティゾーン(AZ)に、7つのShardクラスタ(最大で14shard)と3つの非Shardクラスタ。各シャードは3か4のReplica Sets。 m2.4xlarge(68GBメモリ)に、EBS4本でRAID0。データはほぼオンメモリで保持。 iosta…

複数のデータセンターにMongoDBを配備する戦略

MongoDB: Strategies for Multiple Data Center Deployment | Architects Zone MongoDB NY 2012の資料から。 これ、普通にオンプレミスやってたら縁遠いけど、AWSだと複数のリージョンをまたがせてすぐに試せるので、グローバルなアプリケーション作る時の参…

訳:Netflixが 6.29のAWSと嵐から学んだこと

2012年6月は、立て続けにUS EASTリージョンでダウンタイムが発生している。 NetflixのようにマルチAZの構成にして、常に擬似的に障害を発生させる仕組み( Chaos Monkey)を導入していても、ダウンする場合があることが明らかになった。さらなる可用性向上のた…

訳: AWSで高可用性を実現するベストプラクティス

AWS Cloud Best Practice: Introduction to High Availability Deployment | Newvem AWSのアーキテクチャセンターにも図があるが、解説が少ないので、このシナリオ・ステップは参考になるだろう。 しかし、インフラがRoute53でリージョン間冗長性を考えるグ…

MongoDB: AWSでのTips

MongoDB Casual Talks で発表された、MongoDB onAWSの資料。 元ネタは、MongoDB on AWS White Paper (PDF) MongoDB on EC2 #mongodbcasual View more PowerPoint from Yasuhiro Matsuo 議事メモブログエントリ Mongo DB Casual Talksに参加してきました - Te…

DevOps: Netflixが、Webベースのクラウド管理・デプロイツール AsgardをOSS化

NetflixがWebベースの管理・デプロイツール Asgard をOSS化した。 The Netflix Tech Blog: Asgard: Web-based Cloud Management and Deployment AWS Management Consoleよりも、直感的かもしれないし、AutoScaleもGUIで設定できたり、自動化をGUIから設定で…

EC2: PostgreSQLをS3にバックアップする

heroku/WAL-E という、HerokuがOSS化したPython製のツール。 バックアップ、およびWALをS3に保存(Push)したり、取得(fetch)したりするものらしい。 通常、EBSのスナップショットでフルバックアップを取得できても、次回のスナップショット取得までの期間のデ…

訳:クラウドのアプリケーションデザインパターン

P.15からの、MTTRとMTTFを、従来のITとクラウドで比較検証するあたりがいい。 従来のITは、MTTFを長くすることに注力していたが、クラウドでは、MTTRを短くすることに注力できる。MTTFとMTTRがそれぞれ長い・短いでどうなるかを検証する。 P.17-P20 従来のIT…

AWS : Reserved Instanceの購入と支払い

Reserved Instanceは、最初に予約金( upfront )を支払うことで、キャパシティを確保(予約)して必ずインスタンスを起動することができる。また、副次的に従量課金の単価が安くなる。 upfrontの請求タイミングは購入時点となるので、通常の課金が月末締めで請…

EC2: AMazon Linux にFluentdをインストール

Fluentdは、Ruby1.9で動作するが、Amazon Linux 2012.03にプリインストールされているRubyは ruby 1.8.7 (2011-12-28 patchlevel 357) [x86_64-linux] となっている。ので、そのまま sudo gem install fluentd ではインストール出来ないので、事前にRuby1.9…

AWS: 構成や利用状況をチェック、アドバイスするサービス Trusted Advisor report

サポートの1サービスとして、Trusted Advisor report サービスというものがある。 http://aws.amazon.com/jp/premiumsupport/trustedadvisor/ サポートのサービスなので、旧体系ではGold/Platinum、新体系ではBusiness/Enterpriseが対象。 フォームで、アカ…

AWS: Oracleサポート関連のメモ

まずは、Oracleが出している、FAQを参照。 Oracle Database Oracle Applications (E-Business Suite, JD-Edwards, People Soft, Siebel, etc) Fusion Middleware Enterprise Manager Oracle Linux について、本番環境かテスト(or 開発、トレーニング、デモ)…

CF: CloudFrontがストリーミングで対応しているプロトコル

現状対応しているRTMP系のプロトコルは、Working with Streaming Distributions - Amazon CloudFront によると RTMP Adobe Real-Time Message protocol RTMPT Adobe streaming tunnleled over HTTP RTMPE Adobe encrypted RTMPTE Adobe encrypted tunneled o…

AWS: SlideShareのタグまとめ

AWS

現時点で、AmazonWebServicesアカウントで385以上のスライドが SlideShareに上がっているらしい。 幾つかは翻訳して( ゚д゚)ホスィ… Getting Started (AWS and Services Overview) CUstomer presentations Partner presentations Solution architecture and best …

AWS: Xen Hypervisorのセキュリティ情報

Xen Security Advisories こちらに。 今日2012.06.12時点では、Xen.orgからセキュリティアドバイザリが出ているが、どれも該当しないよ、と書かれている。

RDS: MySQLの管理者向けTips

RDSは、DBのroot権限をもらえないので、色々とRDS独自の代替手段(プロシージャ)が用意されている。 このあたりは要チェック。 Appendix: Common DBA Tasks for MySQL - Amazon Relational Database Service めぼしいものをピックアップ Slow Log ローテーシ…

EC2: EC2 API Tools を Amazon Linuxにインストール

Amazon EC2 API ToolsをAmazon Linuxにインストールする。 念のためインストール要件の確認 $ java -version $ echo $JAVA_HOME まずは、X.509 認証キーを作って、CERTファイルとプライベートキーファイルを取得しておく。(プライベートキーファイルは紛失…

EC2: AWSからメールがくるケース

通常は関係ないが、稀にAWSから通知メールが来るケースがある(しかも英語) よくあるメールの件名とその内容、および対策をメモ。 Amazon EC2 Maintenance - Network Connectivity Impact ネットワーク保守作業するから指定の時間帯ネットワーク切れるかも…

VPCのアドレスまわりの覚書

VPCを作る際、最初に 10.0.0.0/16 などでアドレス範囲を決める。 http://aws.amazon.com/jp/vpc/faqs/#I4 に書いてある通り、VPCのサイズは、/28から/16まで。 その中にサブネットを複数作成可能。作成できるサブネット数はデフォルトで20サブネット(上限緩…

S3: S3のアクセスログ

S3には、Server Access Loggingという機能がある。バケツ単位で設定して、有効化しているバケツのオブジェクトにアクセスした場合、指定した別のバケツにアクセスログが保存される。(デフォルトは無効) アクセスログのフォーマットはこちら。 この機能、現…

RDS: Oracle RDSのOEM等

Oracle RDSで、OEM( Oracle Enterprise Manager 11g Database Control )が使えるようになった。 Amazon RDS for Oracle DatabaseでOracle Enterprise Manager (OEM) を利用可能に! - Amazon Web Services ブログ OEMの機能については、こちらのPDFの"DC"の…

EMR: Hadoop ハンズオン資料

Python使ったStreamingと、PigでのWordcountの例。 EMRだとセットアップ周りは不要、実行方法も若干異なるけどもハンズオンのシナリオとしては参考になる。 Hands-on Hadoop: An intro for Web developers View more PowerPoint from Erik Eldridge

バックグラウンドで5億レコードをMySQLにロードする

Percona使うとかmy.cnf書き換え以外で、RDSでも使える部分があるか。 derwiki - Loading half a billion rows into MySQL ポイントはこのへん 外部キーチェック、ユニークチェックを無効にしておく 分離レベルを、READ-UNCOMMITTEDにしておく binlogを出さな…

RDS: MySQLの負荷対策テクニック

Load Management Techniques for MySQL | SQL Zone RDSでも参考になるとこはあるな。 ==== 並行処理しすぎるな(同時接続数を絞れ) 一度に処理するデータを絞れ CRONを調整しろ バッチ専用のSlaveを用意しろ innodb_old_blocks_time

CS:CloudSearchでWikipediaを検索するデモサイト

いつまであるかわからないけど。。。 Search Technologies, Wikipedia / Amazon CloudSearch Demo 仕組みの解説 http://www.searchtechnologies.com/wikipedia-cloudsearch-lab.html Aspireというコンテンツ処理プラットフォーム経由でWikipediaのダンプファ…

EBS: チューニングもしくはベストプラクティス

AWSが出しているホワイトペーパーのうち、DB関連のものにいろいろ書いてあるので、拾い読みするとよい。 MongoDB on AWS (PDF) RDBMS in the Cloud: Microsoft SQL Server 2008 R2 (PDF) EBSによるRAID構成やら、ファイルシステムやら、スナップショットやら…

AWS Summit 2012 NY のスライド一覧

Amazon Web Services’s slideshows on SlideShare 暇があったら見る。

NoSQL: WordpressのDBとしてNoSQLを使う

Cassandraの場合 Behind The Blog » Using WordPress with Cassandra or other NoSQL databases? MongoDBの場合 MongoPress - The MongoDB CMS - High-Performance NoSQL Web Management DynamoDBを使ったDynamoPressはよ WordPress › Support » Suggestion:…

CW: CloudWatchをデータ・ソースとして、Google Chartsでグラフ表示する

うまい組み合わせだ。 cloudviz :CloudWatchをデータ・ソースとして埋め込み可能なグラフを作成するのOSS。EC2とCloudWatchのAPIを使って取得したデータを、Google Interactive Charts(の Visualization API)を使ってグラフ作成する。Googleのデータソース…

EC2:AWSをレンダリングファームとして使う

クラウドにレンダリングファームを作るという事例。 AutoDeskは、AWSのソリューションプロバイダであり、Autodesk®360 というクラウドサービスを提供していて、PLM( Product Lifecycle Management)と BIM(Building Information Modeling)が使える。これがAWS…

EMR: Hive0.8.1 対応

2012.05.31に、Hive 0.8.1 がAmazon EMRで動作するようになった。 AWS Developer Forums: Support for Hive 0.8.1 1ヶ月半前の2012.04.10にHive 0.7.1.4とPig0.9.2に対応したのでペース速い。 詳細はこちら。 http://docs.amazonwebservices.com/ElasticMap…

EC2: Cloud-init でGitを使う

EC2の機能として、インスタンス作成時にUser Dataとしてパラメータ を渡すことで、起動時に cloud-initが動作する。 これを使って、インスタンス作成時に動的にGitからコンテンツを取得・デプロイすることが可能。 本格的にDevOpsやるなら、PuppetやChefを導…

EC2: AmazonLinuxにMongoDBをインストール

Amazon LinuxはRPMのバイナリがCentOSやRedHatと互換なので、そのままyumのリポジトリに10genのリポジトリを追加して、yumでインストール可能 まず、yumリポジトリに追加 詳細はこちら(CentOS and Fedora Packages - MongoDB) $ sudo vi /etc/yum.repos.d/Mo…

S3: 課金の算出とタイミング

S3やEBSの単価は 1GB/month でいくら、となっている。 では、計算をどうやっているか? Q: Amazon S3 を利用すると、どのようにして課金され、請求されますか? http://aws.amazon.com/jp/s3/faqs/#How_will_I_be_charged_and_billed_for_my_use_of_Amazon_S…

訳:DynamoDB:SSD Hot S3 Cold パターン

DynamoDBのベストプラクティス的なパターン High Scalability - High Scalability - DynamoDB Talk Notes and the SSD Hot S3 Cold Pattern ==== Amazon DynamoDB for Developersトークに参加する前の、DynamoDBに対する印象は、シンプル・速い・スケー…

CF: CloudFront のIPアドレスレンジ

CloudFrontのフォーラムの、Forum Announceに載っている。 AWS Developer Forums: Amazon CloudFront Public IP Ranges によると、2012/3/11時点では、以下のレンジが使われるらしい。 54.240.128.0/18 204.246.164.0/22 204.246.168.0/22 204.246.174.0/23 …

SQS: SupervisordでSQSのワーカープロセスを管理実行する

まずは、Supervisordのスクラップ Supervisord 本家 PHP+Kestrel+Supervisorでお手軽タスクキューイング : アシアルブログ スーパーサーバーSupervisorの導入手順メモ - Glide Note - グライドノート Supervisord を Amazon Linux AMI にインストール - mass…

SQS: ワーカープロセスの稼働管理にSupervisordが便利

SQS等のキューを介して非同期に処理を行う Queue Chain パターンを実装する場合、SQSに突っ込む処理はWebアプリ等の処理中に書けばよいので特に考えることはないが、SQSからメッセージを抜いて後続の非同期処理を実行するワーカープロセスをどのように起動管…

CS: SmugMugはCloudSearchを使っている

という記事。 SmugMug’s Sexy New Search « The SmugMug Blog 検索ページはこちら。 左カラムに、ジャンルのファセットリンクがあるし、絞込みのリンクも出てくる。 検索結果をスクロールするとエンドレスに写真が湧き出てくるデザイン。 ちなみに、フロント…

EC2: GPGPUクラスタインスタンス cg1.4xlargeのメモリ

cg1.4xlargeは、cc1.4xlargeにGPUとして NVIDIA Tesla M2050 "Fermi" が2個刺さっている、という認識だったので、利用可能メモリもcc1.4xlargeと同じ23GiBだという認識だった。 http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using_cluster_co…

EC2: cc2.8xlargeのリザーブドインスタンスを比較してみた

特にどうってこと無いんですが。1年モノのcc2.8xlargeのRI(Reserved Instance)の利用度合いと費用についてグラフ化。 http://aws.amazon.com/jp/ec2/pricing/ 縦軸はドル。横軸は累積の利用時間割合。1年(24h x 365d)で100%の計算。 つまり、1年のうち10数%…

EC2 : CC2にインスタンスディスク(ローカルディスク、エフェメラルディスク)を使ってRAID0

CC2では、インスタンスディスクが3360GiB( 4 x 840GiB)が使えるが、EBSバックドなHVM AMIをマネジメントコンソールから起動した場合、インスタンスディスク(ローカルディスク、エフェメラルディスク)は無効になっている。計算中の中間ファイルを書き込んだ…

DynamoDBの上限について

DynamoDBにも、他のサービス同様に上限(ソフトリミット)がある。 http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/Limits.html table_limit_writes テーブルのキャパシティ Write 10,000 table_limit_reads テーブルのキャパシテ…

EC2:Placement GroupとHPCインスタンスのネットワーク等

Placement Groupのメモ。とはいえ、実際に計測すべきです!! ==ネットワーク関連======= 同一のPlacement Groupに属しているHPCインスタンス間の通信は、10Gbpsフルバイセクション、Jumbo frame、かつノンブロッキングが可能。 異なるPlacement Gr…

EC2: RHEL6.2で XFSを使うには

XFSはRHELの標準になっているext系に比べて性能面で優れていることが多く、DB等が使うボリュームのファイルシステムに使うことが多い気がする。xfsのパッケージはRHELに標準で入っておらず、yumリポジトリにも無いのでyumでは入らない。xfsprogsのrpmをここ…

DynamoDB : PHPのセッション管理に使う

AWS SDK for PHPには、DynamoDBSessionHandlerというセッションを管理するクラスがあるので、比較的楽に導入が可能。 Amazon Linuxでの環境設定 パッケージインストール(DynamoDBアクセス用のCacheとしてAPCも入れる) $ sudo yum install php php-pear php-x…

S3: PHPで バケツの一覧を取得する

Amazon LinuxへのPHPとAWS SDK for PHPのセットアップ $ sudo yum install php php-pear php-xml $ sudo pear channel-discover pear.amazonwebservices.com $ sudo pear instlal aws/sdk 一覧のコード <?php error_reporting(E_ALL); require_once '/usr/s…

EC2: 1台のサーバに複数のドメインのSSLを稼働させる

現状では1台のEC2に大量のグローバルIPを振れないため、一工夫が必要。 Brightbox - New - Cloud IP Port Translation だと、ELBをSSL毎に立てて、バックエンドを1台のEC2に向ける。Management Consoleだと複数のELBが1台のEC2をバックエンドにすることはで…

EC2: S3に画像アップロードするPHPサンプルを作る

Amazon Linux 64bit インスタンス起動 パッケージ追加 $ sudo yum install php httpd mysql mysql-server php-mysql php-pear php-xml AWS SDK for PHPインストール $ sudo pear channel-discover pear.amazonwebservices.com $ sudo pear install aws/sdk …

EC2: Amazon Linux + Ruby SDKでDynamoにアクセスするまで

とりいそぎyum $ sudo yum install gcc make libxml2-devel libxslt-devel $ sudo yum install ruby-devel rubygems # for ruby1.8 $ sudo yum install ruby19-devel rubygems19 # for ruby1.9 とりいそぎ、AWS SDK for Rubyを入れる $ sudo gem install nok…