作成者別アーカイブ: aknishi

Amazon SES 利用時、最大送信レート制限に引っかからない方法を考える

| コメントをどうぞ

Amazon SES 利用時、何も考えずメールを大量送信していると以下のようなエラーが出ることがあります。

Maximum sending rate exceeded

最大送信レートを超過したぞ、というエラーメッセージです。

最大送信レートとは

SESのドキュメントには以下のようにあります。

続きを読む

Amazon SESの送信制限を解除する(SandBoxの外へ移動する)

| コメントをどうぞ

所用で Amazon SES を使う機会があり、送信制限解除について調べました。

最近になって申請フォーマットが変わったという話も聞くので、参考までにメモしておきます。

目的

Amazon SES は最初は SandBox 上で動作しており、以下の送信制限がある。

  • 事前に登録したメルアド以外には送信できない
  • 1日当たり200通までしか送信できない
  • 1秒当たり1通までしか送信できない

本運用開始にあたり、この制限を解除したい。

手順

AWSのマネジメントコンソールにログインし、以下のURLへ移動。

http://aws.amazon.com/ses/extendedaccessrequest/

以下のフォームが表示されます。

aws_increase_request

 

  1. CC
    この申請に関する通知のCCを送るメールアドレス。IAMユーザーでは必須。
  2. 内容
    「サービス制限の増加」のままでOK。
  3. 制限タイプ
    「SES送信制限」のままでOK。
  4. リクエスト1
    リージョンを選択し、増加を希望する制限項目を選択する。
    「希望する一日あたりの送信クォータ」は、24 時間当たりに送信できる E メールの最大数。
    「希望する最大送信レート」は、1 秒当たりにアカウントから受け付ける E メールの最大数。
    SandBoxよりは大きくしておきましょう。
  5. メールの種類
    メールの用途を「取引」「システム通知」「サブスクリプション」「マーケティング」「その他」から選択。
    素直に用途を書きます。
  6. ウェブサイトのURL
    任意です。
  7. 私はAWSサービス利用規約と AUP に準拠してメールを送信します
    「はい」にします。「いいえ」だと多分通りません。
  8. 私は明確にリクエストされた受信者にのみメールを送信します
    「はい」にします。「いいえ」だと多分通りません。
  9. バウンスや苦情を処理するプロセスがあります
    「はい」にします。「いいえ」だと多分通りません。
  10. 申請理由の説明
    申請理由をしっかり書きましょう。

以上を入力し終えたら、[送信]をクリックします。

これで1~2日ほどで承認メールが届くと思われます。SandBoxモードは解除され、任意の宛先にメールを送信することができるようになります。

ウィンドウのサイズを変えていないのに window.resize イベントが発生する

| コメントをどうぞ

IE8で、ウィンドウの大きさを変えていないのに window.resize イベントが発生することがあります。

再現方法

ドキュメント内で要素の高さを変更するだけで再現します。

以下、サンプルHTMLです。

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
    <script>
    function resized(e){
      alert("window resized!");
    }
    function doResize(){
      document.getElementById("field").style.height = "100px"
    }
    if (window.addEventListener) {
      window.addEventListener("resize", resized, false);
    }
    else {
      window.attachEvent("onresize", resized);
    }
    </script>
  </head>
  <body style="background-color:green;">
    <input type="button" id="doResize" value="ResizeTest" onclick="doResize()">
  <div id="field" style="background-color:#000000;color:#FFF;">リサイズテスト</div>
  </body>
</html>

続きを読む

IE10以降で iframe 内ドキュメントの表示が崩れることがある問題について

| 1件のフィードバック

IE10 以降で、iframeドキュメント内の表示が崩れることがあったので調査を行いました。

結果から書きますと、 iframe親のドキュメントモードが 9 以上、iframeドキュメントが IE5 Quirksモード である場合 に問題が発生する可能性があることがわかりました。

現象

  • 親(= iframe の親ドキュメント)はmetaタグで 最新のレンダリングモード(edge)が指定されている
  • <meta http-equiv="X-UA-Compatible" content="IE=edge">
  • 子(= iframe ドキュメント)は古いドキュメントなので、Quirksモードでレンダリングされている。DOCTYPEスイッチで指定
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  • 親ドキュメント内iframeから子を参照すると一部スタイルが崩れている
  • 子を iframe を介さずに直接表示した場合は問題なし
  • iframeを介して参照した時、子のドキュメントモードは「 10 」だった(IE10で参照)
  • iframeを介さずに参照した時、子のドキュメントモードは「 5 」だった(IE10で参照)

続きを読む

[Docker] MySQLコンテナと連携したTomcatコンテナのデータソース設定を動的に行うメモ

| コメントをどうぞ

Dockerにはコンテナ同士をリンクする機能があり、IPアドレスやポート番号などの情報をリンク先コンテナに渡すことができます。

この機能を使って、MySQLコンテナから渡される接続情報をTomcatコンテナのデータソース設定として動的に定義する方法を調査してみました。

以下はTomcatコンテナ “tomcat_test” を作成し、MySQLコンテナ “some-mysql” をリンクするコマンドです。

docker run --link some-mysql:mysql -it -p 8888:8080 --name tomcat_test tomcat:7.0 /bin/bash

Dockerイメージはオフィシャルで提供されているものを利用しています。

printenv で確認すると、以下のような環境変数が追加されていることが確認できます。

MYSQL_ENV_MYSQL_MAJOR=5.6
MYSQL_ENV_MYSQL_VERSION=5.6.22
MYSQL_ENV_MYSQL_ROOT_PASSWORD=mysecretpassword
MYSQL_PORT_3306_TCP=tcp://172.17.0.9:3306
MYSQL_PORT_3306_TCP_ADDR=172.17.0.9
MYSQL_PORT_3306_TCP_PORT=3306
MYSQL_PORT_3306_TCP_PROTO=tcp
MYSQL_PORT=tcp://172.17.0.9:3306
MYSQL_NAME=/tomcat_test/mysql

続きを読む

Google Apps Scriptでお手軽RSS配信サービスを作る

| コメントをどうぞ

Google Apps Scriptで簡単なRSS配信サービスを作ってみました。

仕様

  • スプレッドシートを読み込み、行データを RSS の item 要素として出力
  • RSSタイトルはスプレッドシート名を利用
  • XML出力はテンプレートを利用(出力内容をカスタマイズ可能に)

続きを読む

Google Apps Scriptでデッドリンクチェッカーを作ってみる

| コメントをどうぞ

最近 Google Apps Script (GAS)  を触り始めまして。

勉強を兼ねて簡単アプリを組んでみました。以下仕様です。

  • 指定サイト内のデッドリンクを検出(href/@srcをチェック)
  • 発見されたら通知メールを出す
  • 指定間隔で定期実行
  • サイトの階層までは辿らない

続きを読む

Windows環境で手早くDockerを試してみるメモ

| コメントをどうぞ

最近はVagrantやChefをかじっていましたが、世間はどうもDockerで盛り上がっている様子です。

Dockerについての知識は、

「仮想化ソフトウェアの一種?」「コンテナ型?」「速いらしい」

くらいのぼやっとしたものしかありません。さすがにこの知識では恥をかきそうなので、少し調査してみることにします。

とりあえずDocker上で何らかのアプリを動作させることができれば、ある程度理解できるのではないでしょうか。

環境はWindows 7 (64bit)。動作させるアプリはJenkinsとします。

続きを読む

[Chef] infoScoopのレシピを作ってみる②

| コメントをどうぞ

infoScoopのレシピを作ってみる①

前回で必要なリソースの調べがついたので、実際にinfoScoopのレシピ(CookBook)を作ってみました。 以下はCookBookの構成です。

/infoscoop
|
├─attributes
│     default.rb
|
├─definitions
├─files
│ └─default
│     infoscoop-opensource-3.4.0.tar.gz
│
├─libraries
├─providers
├─recipes
│     default.rb
│     mysql.rb
│     tomcat7.rb
│
├─resources
└─templates
 └─default
      infoscoop.xml.erb
      my.cnf.erb

動作確認環境は CentOS 6.5。 infoScoop OpenSourceサイトからダウンロードしたtar.gzファイルを使ってリポジトリDBの初期化、Tomcatへのデプロイまで行います。 急拵えなので、冪等性や設定値(Attribute)などは適当です。このへんは後々対応していきたいと思います。

続きを読む

[Chef] infoScoopのレシピを作ってみる①

| コメントをどうぞ

前回の記事で開発環境とサンプルレシピの作成・動作確認まで行ったので、そろそろ本格的なChefレシピの作成を考えてみます。

前回作成したサンプルでは、指定パスにディレクトリを作成する程度の処理しか行っていませんでした。

今回は infoScoop のレシピ化を前提に、もう少し踏み込んだところまで調査してみます。 続きを読む