AWS

serverless frameworkでpublic repositoryに含めるべきではないデプロイ情報を扱う

AWS

AWS Lambdaの開発環境としてServerless Frameworkを使ってみることにしました。Frameworkと銘打っていますがソフトウェアの中に組み込んで使うフレームワークではなく、各種のSource Code as a Serviceに対するデプロイや運用をサポートしてくれるためのツー…

MFAによって認証された有効期限付きのAWS Access Keyをできるだけ楽に使いたい

AWSのIAMユーザーを作って権限を与えて管理している場合、やっぱりふとしたミスが怖い。例えば、AccessKeyとSecretAccessKeyをプログラムの中に埋め込んでしまっていることを忘れて public repository にコミットしてしまったりなど。 そもそも、profileをち…

AWS LambdaにアップロードしたZIPファイルの取得方法

AWS

ちょっとした作業ミスで Lambda 関数をデプロイした後にローカルのファイルを跡形も無くすっ飛ばしたので、現在アップロード済みのファイルを取得できないか調べた。結論としてはできる。 aws lambda get-function --function-name [your function name]とし…

Amazon Simple Workflow ServicesをAWSCLIで使ってみて理解する

AWS

ちょうどAWS上でワークフローが必要になるような業務を実装することになったので、アーキテクチャを考えてみました。 もちろん、それらのワークフローの実施が冗長化されており、同時にスケールすることも前提で。…と、意気込んで以下のコンセプトを元にした…

Amazon Cognito User Pools のAuthorize APIを結局解読した

AWS

1度挫折したんですが、Node.js側からせめてサーバーサイドでも認証できました。 具体的なコードを(ほとんどコピーですが)以下のプロジェクトに上げました。https://github.com/a-hisame/cognito-userpools-examplecognito-idpのGetAuthenticationDetailsとA…

Amazon Cognito User Pools をPythonから利用しようとして挫折した

先週のAWS Summit in シカゴで発表された AWS Cognito User Pools ですが、モバイルやウェブ画面からだけではなくて、サーバー側の認証機構として使えないかをPythonとAWSCLIで色々試行錯誤して失敗したので記録しておきます。原理的にはできなくもないんで…

AWS LambdaでVPC内のPrivateインスタンスにSSH接続する

http://aws.typepad.com/aws_japan/2016/02/access-resources-in-a-vpc-from-your-lambda-functions.html昨年のAWS re:Inventで対応が発表されていましたが、とうとうAWS LambdaからVPC内リソースにアクセスが出来るようになったので何が出来るのか眺めてい…

AWS LambdaのPython版をいまさらながら使ってみた

ので、導入の時に迷った点を残しておく。 pythonで用意するエントリポイントのファイル名や関数名は自由 (ただし、Configuration#Handlerで"ファイル名.エントリポイント関数名" で指定する必要がある) エントリポイントの関数の第一引数は基本dict形式でイ…

Amazon Linux上のOpenJDKをアップデートするとTimeZoneのデフォルトがおかしくなったというお話

はじめに Amazon Linuxで動作するJavaのWebアプリケーションを動かしていたんだけれど、アップデートをするとどうにもログの出力日付がおかしい。 ということで色々調査してみてた結果、以下のTimeZoneのデフォルト値(取得方法は下記のソースコードを参照)が…

Amazon SQSでVisibility Timeout中のメッセージを消す方法

AWS

Amazon SQSのキューからメッセージを取得した場合、Visibility Timeoutという期限が設定されてこの間にはメッセージを受信した時に取得したReceiptHandleを利用しない限りVisibility Timeoutの再設定およびメッセージの削除を行うことができない。Visibility…

Amazon Linux で yum に失敗する

Amazon Linuxを仕事で使っていると、誰もが一度は通る道。インターネットには接続できるのに、Amazon Linux上でyumコマンドのどれを実行してもタイムアウトになってしまうことがある。yumが使えないという場合の大半の事象がこれで良く聞かれる上に結構汎用…

AWSCLIではまったこと

AWS

awscliを普通のbashとかと同じ感覚で使ってはまったのでメモ。一般に、bashとかだと . とか .. がパスの間に挟まってもそれを解釈した上で処理してくれる。これは、srcやdestとして使ってもおんなじ。 # 以下の2文は同じ結果を返す ls /var ls /var/./log/..…

DynamoDBのテーブル存在チェック

DynamoDBのテーブルの存在チェックをする方法。 ListTableを利用する 一番簡単なのはListTableを実施して、その中にお目当てのテーブルがあるかどうかを見ればよい。 def exists_table(table_name, connection): return table_name in connection.list_table…

SQSでメッセージ受信回数による処理切り分けをしたい

SQSのVisibility Timeoutを使って再実行をするのはいいんだけれども、無効な命令が投げられてたりした場合には有限で終了して欲しいので、それを実現するにはどうすればいいのかというお話。幾つか方法はあるけれども、主に考えられるのは2つ。 MessageのAtt…

環境構築中にハマったこと

AWS

直近でサーバをセットアップしていてはまったネタを幾つか。 なお、両方ともテスト環境では動作していたので、調査に色々と手間取りました。 両方とも、原因は再構築時に色々バージョンが上がっていたことですが、その問題にぶち当たりそうな人がしばらくで…