Blog Archives

AWS CLIにオレオレwaitコマンドを追加する

aws cliには API 呼び出し後、特定のステータスになるまでポーリングする wait コマンドがあります。 例えば ec2 インスタンスを起動する API を呼び出し後、インスタンスの起動が完了するまで待つには $ aws ec2 wait instance-running –instance-ids xxx のようにします。 この wait 機能が実装されるまでは というように、ポーリング処理を自前で実装しなければいけ ませんでした(例外処理も真面目にやるとさらにごちゃごちゃする)。 この wait 系コマンドを独自追加する方法をメモ。 cloudformationでスタック構築完了を待つ 例として cloudformation でスタックの作成APIをたたいたあと (crete-stack)、スタックの構築が完了するまでポーリングするコマンド $ aws cloudformation wait stack-completed を実装してみましょう。 AWS CLI で

Tagged with: , , ,
Posted in aws, python

AWS Machine LearningのSchemaを自動生成する

やりたいこと AWS Machine Learning では学習・評価データのスキーマ定義が必要。 http://docs.aws.amazon.com/machine-learning/latest/dg/creating_datasources.html#creating-a-data-schema-for-amazon-ml マネージメントコンソールからデータセットを指定する時は、サーバーサイドでスキーマを推測してくれるがクライアントからAPIと叩く時は、スキーマは自分で用意しないといけない。 このスキーマ作成の作業を簡略化するために、AWS 中の人が作成したスキーマ推測ツールを利用してみる。 スキーマファイルの定義 まずはスキーマファイルのサンプルから 重要な属性は以下 rowId サロゲートキー このデータは学習には利用されず、予測結果も含めてリファレンス目的で利用。 dataFileContainsHeader 元データの1行目にヘッダー行が含まれていると true targetAttributeName 目的変数 attributeType データの各カラムのデータ型 カラム名とそのデータ型(NUMERIC/CATEGORICAL/TEXT/BINARY)で構成される。 詳細は次のURLを参照 http://docs.aws.amazon.com/machine-learning/latest/dg/creating_datasources.html#creating-a-data-schema-for-amazon-ml 最終的にはこの JSON 形式のスキーマをいい感じで自動生成したい。 スキーマを自動生成してみる github の次のレポジトリにある ml-tools-python ディレクトリにある guess_schema.py でスキーマを自動生成させる。 https://github.com/awslabs/machine-learning-samples にある ml-tools-python ディレクトリの guess_schema.py

Tagged with: ,
Posted in aws

Amazon Machine LearningのチュートリアルをAWS CLIから実行してみる

Summary “Amazon Machine Learning Developer Guide” には “Tutorial: Using Amazon ML to Predict Responses to a Marketing Offer” というこのサービスの初心者向けのチュートリアルが含まれている。 Tutorial: Using Amazon ML to Predict Responses to a Marketing Offer http://docs.aws.amazon.com/machine-learning/latest/mlconcepts/mlconcepts.html チュートリアルはマネージドコンソールから操作しているので、将来のスクリプト化を見据えて AWS CLI から操作してみる。 チュートリアルの流れ University of California, Irvine

Tagged with: ,
Posted in aws

[AWS]ELBのプライベートIPアドレスを調べる

Summary VPC 内にたてた ELB(internet-facing/internal) のプライベート IP アドレスをコマンドラインツールの AWS-CLI から調べる方法をメモ。 tl;dr : EC2 DescribeNetworkInterfaces を使う EC2 サービスには DescribeNetworkInterfaces という NIC 向けの API が存在する。この API を使うと ELB のグローバル/プライベート IP アドレスを確認できる。 NIC 一覧からお目当ての ELB を突き止めるには? ELB インスタンスの NIC の設定は aws が裏でやっているためか、ELB のNIC は

Tagged with: , , ,
Posted in aws

S3にBasic認証付きリクエストをすると400:Bad Requestになる

nginx で S3 にリバースプロキシしたサイトで、特定の URL 配下にしらーっとBasic認証を追加したら、S3 のリソースの取得が”400 : Bad Request” でことごとく失敗していた。 現象を再現させる まずはこの動きを確認してみる S3を用意 バケットを作成し、オブジェクトを public-read の ACL つきて PUT する。 public read が付いているので、anonymous user も GET できる。 Basic 認証付きでリクエスト 次に Basic 認証付きでリクエストしてみる みごとに 400 Bad Request エラーが発生した。 nginx での解決

Tagged with: , , ,
Posted in aws, middleware

[AWS]マルチAZなElastiCache Redisの永続性についてメモ

Redis のデータを永続化させるには RDB : point in time スナップショット AOF : write ahead logging(WAL) の2種類の方法がある。 AWS ElastiCache Redis で Multi-AZ かつ自動フェイルオーバーなレプリケーショングループを組んでいる Redis での動きをメモ。 このようなレプリケーショングループの作り方は次のURLを参照 http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/AutoFailover.html Redis の RDB と AOF について RDB について RDB は point-in-time にダンプしたファイル。 通常の Redis であれば SAVE

Tagged with: ,
Posted in aws, middleware

[AWS]S3オブジェクトのHTTPステータスコードをカスタマイズして計画メンテナンスページを構築

計画メンテナンスでサイトを一時的に閉じる時、ブラウザでアクセスしてくる一般ユーザにはメンテナンスページを返せば十分だけれども、 検索ボットにはメンテナンスページの HTTP ステータスコードを 503:Service Unavailable で返すのが好ましい。 Official Google Webmaster Central Blog: How to deal with planned site downtime メンテナンスページは静的という前提のもと、AWS の DNS サービス route53 と CDN サービス CloudFront とストレージサービス S3 を組み合わせで実現してみる。 route53-ELB-EC2 というようなサーバ構成の場合、メンテナンスの前後で route53 の Alias Target を本番用の ELB からメンテナンスページ用の

Tagged with: , , ,
Posted in aws
Archives