AWS
アプリの状態だけ保持しているようなあまり大きくないDynamoDBのテーブルを バックアップするのにDataPipeline使うのもどうかと思うのでツール作ろうかと考えていたら 既にあった。 bchew/dynamodumpgithub.com 使ってみたら結構便利だったので使い方をまと…
AWS CLIとjqを使用した実装です。 設定した世代数分保持して古いバックアップから消していきます。 設定値 説明 MAX_IMAGE_NUM バックアップのイメージを保持する世代数 INSTANCE_ID バックアップを取得する対象のEC2インスタンスID AMI_NAME 取得するAMIの…
Packerを使用してAMIの作成を自動化が出来たのでJenkinsでCIしてみようと思います。 Packerの使い方やJenkinsの使い方は割愛して簡単にポイントのみまとめます。 Jenkinsの設定 Gitリポジトリを指定 こちらのようなリポジトリを作成します。 template.jsonが…
Twilioという電話通知を行えるAPIサービスを使用して、 SNS通知 -> Lambda -> Twilio -> 携帯電話 という流れで電話通知を行う仕組みを作ってみます。 使用するサービス Amazon SNS AWS Lambda Twilio Twilioのアカウントを作成する サインアップからアカウ…
クロスアカウントと外部ID このあたりに書いてあることを実践してみます。 外部 ID について - AWS Security Token Service 一時的なセキュリティ認証情報を使用して AWS リソースをリクエストする - AWS Security Token Service 準備 アクセス元のアカウン…
re:Invent 2014のスライドが少しずつ登録されているようなので気になるものをメモ。 サービス別 Amazon Key Management Service (SEC301) Encryption and Key Management in AWS | AWS re:Invent 2014 (SEC406) NEW LAUNCH: Building Secure Applications wi…
CloudFormationのテンプレートは変数を定義したり他のコンポーネントを参照させたり結構いろいろなことが出来ますが汎用的に書こうとすると複雑になってしまい慣れてない人だと読みづらいテンプレートになってしまうため、 テンプレートのテンプレートを作成…
NewRelicのServersデータ収集用のデーモンをインストールします。 プログラミング言語とか関係なく「.ebextensions」に設定ファイルを置くだけ。 Node.jsでもJavaでも同じ設定ファイルが使えます。 configファイルを作成 設定ファイルの書き方とか置き方とか…
前回に続きBeanstalkネタですがBeanstalkでは構成管理ツールのような起動時に環境の初期化を行う機能が備わっています。 EC2 インスタンス上のソフトウェアのカスタマイズ - AWS Elastic Beanstalk Node.jsのアプリケーションをホスティングするだけでなくRe…
今までEC2でゴリゴリ作っていたのですが最近ElasticBeanstalkの便利さに気付き始めました。 初期の頃に少しだけ触って初心者向けの機能だと今まで侮っていたのですがEclipseのプラグインも発達してサクサク開発できるので楽しいです。 ElasticBeanstalkでJav…
Secure ShellはChromeからSSHするアプリ。 Windowsの開発環境では普段TeraTermを使用しているのですが、 接続先も保存できて便利そうなので試しに使ってみました。 公開鍵を作成 EC2に接続する際に使用する秘密鍵から公開鍵を生成します。 >ssh-keygen -y -f…
ダウンロードと起動 Additional Tools and Libraries For Amazon DynamoDB - Amazon DynamoDB ここまでは公式ドキュメントに載ってる通り。 $ java –Djava.library.path=. -jar DynamoDBLocal.jar aws-java-sdkから呼び出す 基本的にエンドポイントを"http:/…
今のところ使う予定は無いのですが試しに使って見ました。 思ったより変換速度が早くかなり良いサービスだと思います。 ジョブの設定が少しわかりづらかったので使い方をメモ。 パイプライン作成 S3にテスト用のバケットを1つ作成してInput及びOutputに同じ…
基本的にこちらの手順に沿ってインストールします。 JDK7ののインストール Java SE Downloadsのページから。ここでは「jdk-7u25-linux-x64.rpm」を選択します。 $ wget http://download.oracle.com/otn-pub/java/jdk/7u25-b15/jdk-7u25-linux-x64.rpm?AuthPa…
EC2インスタンスから「http://169.254.169.254/latest/meta-data/」にアクセスすることで 呼び出し元インスタンスのメタ情報が取得出来ますが(参考) aws-java-sdkに見当たらなかったので自分で作ってみた。 package jp.yustam.aws.ec2.util; import java.io.…
aws-java-sdkを1.4.1にしたら追加されていたのでメモ 東京リージョンを使ってるとエンドポイントの指定が地味に面倒だったので嬉しい 今まで public AmazonEC2Client ec2client(AWSCredentials cre) { AmazonEC2Client client = new AmazonEC2Client(cre); c…
Amazon ElasticMapreduceのテストを兼ねて性能測定を行ったので分かったことをメモ ジョブフローの起動 ジョブフローを登録してからステータスが「RUNNING」に変わるまで4分~6分かかる 立ち上げるインスタンスの数が変わってもこの時間は変わらない MapTask…
以前作成したブラウザからS3へ直接ファイルをアップロードする画面を使って 300MBほどのデータをアップロードしたところ以下のようなエラーが発生した HTTP/1.1 400 Bad Request <html> <head> <title></title> </head> <body> <code>EntityTooLarge</code>Your proposed upload exceeds the maximu…</body></html>
Jersey-JSONとAWS-Java-SDKの併用時はjacksonのバージョンに注意 java.lang.NoClassDefFoundError: org/codehaus/jackson/map/deser/std/StdDeserializer StdDeserializer.StringDeserializer (Jackson JSON Processor) 1.9系からはStdDeserializerを使用し…
S3のディレクトリを配下のオブジェクトごと一括で削除したいと思ったのですが ディレクトリを削除するというAPIは用意されていないようでオブジェクトを ひとつずつ削除する必要があるそうです AWS Developer Forums: Delete folder using Java API ... if (…
今回作る仕組みの概要 SQSにあらかじめメッセージを1つ登録しておきCloudWatchがそれを監視する 取得可能なメッセージ(Available)が閾値(1個)を超えるとAlarmを発生 SNSを通してEC2インスタンスへHTTPリクエストを送信 受信したAPIでSQSのメッセージを取得し…
通知サービスSNSからSQSへは無料でメッセージを送れるみたいです SNSのメッセージは8KBの制限があるためSQSへメッセージを直接転送できるなら そっちの方が良い。主にCloudWatchと連携して使うことになると思います SQSキューを作成 前回と同様名前を入力す…
Amazon Simple Queue Service(Amazon SQS)を少し触ってみたのでメモ 64KBまでの文字列を登録するだけのシンプルなサービス メッセージを追加して取得してみる キューの作成は名前を入力するだけなので省略。作成するとURLが生成される AWS-SDKforJavaにてメ…
Hadoopの制御を設定の変更で行う場合にコマンドライン引数で文字列を渡すことはできるが パラメータが増えると引数が長くなってしまうのでファイルから設定を読み込むようにしたいここでは実行するjarファイルからS3上に配置したプロパティファイル読み込ん…
前回のソースでは有効期限のみの制限となるのでリンクを知っている人なら 誰でもダウンロードできてしまう問題があるもう一段回セキュリティを強化する方法として時間の制限に加えてIPアドレスの制限をかける IPアドレスの制限はIAMのポリシーで行うことがで…
CloudデザインパターンのPrivate DistributionパターンをJavaで作る際のメモ CDP:Private Distributionパターン - AWS-CloudDesignPattern AWSCredentials cre = new BasicAWSCredentials(【AWSアクセスキー】, 【AWSシークレットキー】); AmazonS3Client cl…
先日S3にブラウザから直接アップロードする機能を作成しましたがAWSアクセスキーが クライアントに見えてしまうのはセキュリティ的に望ましくないのでS3アップロード専用の アカウントを作成します。ここではIAMを使用する IAMポリシーを作成する AWS Policy…
先日の続きでリダイレクトしたときにリダイレクト先に渡される情報をチェックしました。変数「request」はjavax.servlet.http.HttpServletRequestを使用 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> サーバ側のソース System.out.println("[Method]\t" + request.getMe…
CloudデザインパターンのDirect Object UploadパターンをJavaで作る際のメモ CDP:Direct Object Uploadパターン - AWS-CloudDesignPatternBrowser Uploads to S3 using HTML POST Forms : Articles & Tutorials : Amazon Web Services こちらを参考にHTMLを…
Amazon Elastic MapReduce(EMR)を使用するとSimpleDBが使用されるということだったので確認してみました。 public class SimpleDB { public static void main(String[] args) throws ParseException { String accessKey = "XXXXXXXXXXXXXXXXXXXX"; String se…