AWS Sendy Setup and Database Management

ソフトウェアアーキテクチャ & アマゾンウェブサービス Projects for $30 – $250. I need an AWS SES Sendy Setup on an Amazon Server. Have sent emails before, to the account. Also, I need Database Management/Data Cleanup on continuing basis after setup is needed as the database is l… 続きを読む

AWS EMR, python

さらに表示: aws lambda python, looking f, aws emr hadoop hamburg freelancer, aws emr oozie, python html include html, aws emr, aws ses python, aws boto python code, looking emr, python aws s3, aws python jobs, looking python company, looking part time python, looking headers banners websites … 続きを読む

Implement face Rekognition system in AWS

さらに表示: aws rekognition sdk, aws rekognition video, amazon rekognition tutorial, amazon rekognition sample, aws rekognition tutorial, aws rekognition pricing, amazon rekognition api, aws rekognition ocr, use amazon network drive, configure iis use amazon ses, use amazon aws vba, use amazon … 続きを読む

バックエンドエンジニア

【開発体制】 アジャイルな開発体制としてスクラムを採用 【開発環境】 □言語:PHP(フレームワーク:FuelPHP)□環境:Linux(AWS EC2 ), Apache □DB : MySQL□バージョン管理:Git, GitHub□メール配信 : AWS SES□画像サーバ: AWS S3□CDN : AWS CloudFront□キャッシュ : AWS ElasticCache□その他 : RDS, … 続きを読む

Route53で取得したドメインをCognitoユーザープールの送信元アドレスに使う

サービスの認証にCognitoを使う際、サービスへの初回登録時の確認コード送信や、パスワード変更確認メールの送信などをする必要が出てくるかと思います。
そのようなシステムメールの送信元メールアドレスをカスタマイズする方法です。

方法としては、SESに送信元にしたいアドレスを登録し、それをCognitoから参照する形になります。

SESに登録したアドレスを送信元として使えるようにするためには、SES登録後、そのアドレスに送信される確認URLにアクセスする必要があります。

送信元に使いたいアドレスが既にメールを受信できる状態であればつまづくことはないかと思いますが、Route53でドメインを取得した時点ではメールを受信する手段がないためSESからの確認メールを確認する手段がないことになります。

今回はそんな場合の対処法です。
ちなみにドメインは取得済みの想定です。
SES、SNSはバージニアリージョンです。

設定値

  • ドメイン:ykarakita.com
  • Cognitoに設定する送信元メールアドレス :info@ykarakita.com
  • 確認メールが受信可能なメールアドレス:xxx@gmail.com

手順

  1. SNSのトピックを作成し、受信可能なメールアドレス(gmailとか)をサブスクリプションとして登録する
  2. ドメインをSESに登録する、同時にRoute53にMXレコードとTXTレコードを作成する
  3. SESの受信ルールを作成し、1.で作成したSNSトピックを指定する
  4. Cognitoで送信元にするメールアドレスをSESに登録する
  5. 1.で登録したメールアドレスに確認メールが届くので承認リンクをブラウザで開く

1. SNSのトピックを作成し、受信可能なメールアドレス(gmailとか)をサブスクリプションとして登録する

10.png
コンソールでSESを開き、TopicsからCreate new topicを開く。

11.png
Display nameはメール送信時の送信者名になる。
名前を入力してCreate Topic

12.png
作成したTopicのARNのリンクからTopic詳細画面へ。

13.png
Create subscriptionをクリック

14.png
こんな感じで入力する。Endpointはメール受信可能なメールアドレス。Create subscription する。

スクリーンショット 2018-02-02 0.44.41.png
そうすると、登録されたメールアドレスに確認メールが届くのでConfirm subscriptionのリンクへ行くと下のような画面が表示される。

スクリーンショット 2018-02-02 0.44.46.png

これでこのSNSトピックにパブリッシュしたらgmailにメールが飛ぶようになっているはず。

2. ドメインをSESに登録する、同時にRoute53にMXレコードとTXTレコードを作成する

SESコンソール左側のDomainsを選択。
9.png
Verify a New Domainから、あらかじめRoute53で取得済みのドメイン名を入力。

スクリーンショット 2018-02-01 23.52.52.png
このドメイン所有者の確認としてDNSレコードを登録するように言われる。今回はホストゾーンもRoute53に作成しているためそのままUse Route53へ。

スクリーンショット 2018-02-01 23.52.56.png
すべてチェックを付けてCreate Record Sets

1.png
登録したドメインのステータスはpending verificationになっている。
1分くらいたつとverifiedになる。

3. SESの受信ルールを作成し、1.で作成したSNSトピックを指定する

SESのコンソールからRule SetsView Active Rule SetCreate Ruleを開く。
7.png

8.png

スクリーンショット 2018-02-02 0.55.30.png
ここにはCognitoの送信元にしたいメールアドレスを入力。Add Recipientで追加。

スクリーンショット 2018-02-01 22.34.44.png
Next Stepへ。

5.png
Actionには先ほど作成したSNSトピックを選択する。

スクリーンショット 2018-02-01 23.49.20.png
スクリーンショット 2018-02-01 23.50.33.png
スクリーンショット 2018-02-01 23.50.39.png
こんな感じ。

4. Cognitoで送信元にするメールアドレスをSESに登録する

SESコンソールのEmail Addressesを開く。
2.png

3.png
Verify a New Email Addressから送信元メールアドレスにしたいアドレスを入力。

4.png

5. 1.で登録したメールアドレスに確認メールが届くので承認リンクをブラウザで開く

メールアドレスを登録すると、SNSサブスクリプションに登録したメールアドレスあてに確認メールが届くので、その中から下の方にあるhttps://email-verification.us-east-1.amazonaws.comで始まるURLを探し出してブラウザで開く。

スクリーンショット 2018-02-02 1.10.51.png
こんな画面が表示される!

20.png
ちゃんとverifiedになりました。

これでCognitoの送信元メールアドレスに指定する準備ができました。

スクリーンショット 2018-02-02 10.15.52.png

Cognitoの設定画面で選択できる!

以上です。

続きを読む

SESでメールを受信してS3バケットに保管する

手順概要

SESを使ってS3のバケットに受信メールを保管するまでの手順を整理する。

手順詳細

Rule Setの作成

SESのホーム画面で、Email ReceivingからRule Setsを選択する。
image.png

Create a New Rule Setをクリックする。

image.png

Rule setの名前(Rule set name、ここではtest-rulesetを指定する)を記述し、Create a Rule Setボタンをクリックする。

image.png

この時点では作成したRule set(test-ruleset)は有効化されず、
Inactive Rule Setsとして作成される(あとで有効化する)。
test-rulesetリンクを選択してRuleの作成に進む。

image.png

Ruleの作成

Create Ruleボタンをクリックする。

image.png

Ruleを適用する受信先メールアドレスの設定

Recipients(受信先メールアドレス)を指定する。
特に指定しない場合は、受信可能な全てのメールアドレスを対象としたルールになる。

受信先メールアドレスを記載したあと、Add RecipientボタンをクリックしてRuleを適用するアドレスを指定する。

image.png

指定が終わったら、画面右下の Next Step ボタンをクリックする。

メール受信時アクションの設定

メールを受信した際にどのようなアクションを実行するのかを指定する。
メールをBounceさせたり、特定のLambdaを実行させたりといったことも可能。
今回はS3を選択して、特定のバケットにメールを保管する
(複数のアクションを指定することももちろん可能)

image.png

S3のアクションの指定

image.png

  1. 保管先とするS3バケットを指定する
  2. S3バケットにメールが保管された際の通知先SNSトピックを指定する(オプション)

ここまで完了したら、画面右下の Next Stepボタンをクリックして、
次のステップ(Rule詳細の設定)に進む。

Rule詳細の設定

image.png

  1. Ruleの名前を指定する
  2. Ruleを所属させるRule setの名前を指定する
  3. Rule適用の順番を指定する(直前のRuleをどこにするかを記述)
    • この場合は、単一のルールしか設定していないので<Beginning>を指定して、最初に評価・適用されるRuleとする。

Rule Setの有効化

先ほど作成したRule set(test-ruleset)を選択して、
Set as Active Rule Setボタンをクリックする。

image.png

メール受信の確認

対象となるドメインのメールアドレスにメールを送信する。
(Ruleの対象となる受信先アドレスを指定している場合はそのメールアドレスに送信する)

image.png

下図のように指定したS3バケットにメールが届いていれば受信できている。
(MIME形式なので、対応したアプリケーションでの読み込みが必要)

image.png

続きを読む

SESでメール送信ドメインの登録を行う

目的

  • SESドメインを認証するための手順について整理する。
  • おそらく今後何度も行うと思われるので自分向けの備忘録

前提

  • 認証したいドメインがすでにRoute 53の管理配下におかれていること

手順

Route53の画面に移動する。

image.png

  1. SESのホーム画面で、Identity ManagementDomainsを選択する。
  2. Vefify a New Domainボタンをクリックする。

image.png

対象としたいドメイン名(ここではexample.com)を入力する。
また、DKIMを使ったメールの送信者認証を行う場合は、
Generate DKIM SettingsチェックボックスをONにする。
ここまで終わったら、Verify This Domainボタンをクリックして、
次の画面へと遷移する。

image.png

確認のダイアログが表示される(2回表示される。上記SSは2回目の画面)。
メールの受信を行う場合はEmail Receiving Recordのあたりに表示されるチェックボックスをONにする。
今回は設定するドメインがRoute 53の配下にあるので、Use Route53ボタンをクリックするのみで設定は完了する。
(Route 53以外で管理している場合は表示されたDNSレコードの設定をドメインを管理しているDNSに設定する)

image.png

設定したドメインのステータスがverifiedになっていれば設定完了。
AWSのCLIからメールを送信してみてちゃんと送信できるかも念のため確認すれば一旦はOK。

続きを読む

タイムテーブル|AWS Lambda実践講座2018[ 2018年3月1日(木)・ 2018年3月9日(金)(全2回)]

19:00~21:00(120分). AWS Lambda実践授業の前のPC持参環境の説明/ガイダンス. Lambda開発者カウントの作成; Lambda実行ルールの作成/Lambda開発マシンの準備/AWS CLIの準備; IAMユーザーの作成、作成したIAMユーザーのログイン; API Gateway、SES・SQS、SNSを操作する権限; IAMロールの作成; S3/ … 続きを読む

AWSのSESでLaravelからメールを送ろう

なんだかめちゃくちゃハマった。ゲロゲロ

AWSのメール機能

Simple Email Serviceというのが機能してる。
大まかには

  1. ドメイン登録
  2. アドレス認証(既にメールが受け取れるアドレスで!gmailとかでよい)
  3. AWSサポートへの制限解除依頼
  4. SMTP設定
  5. IAMユーザー作成

が必要になる。多分、これを読んでくれてる人は、独自ドメインでメールを送りたいという勝手な思い込みが入っている。

Laravelのenv設定

MAIL_DRIVER=smtp
MAIL_HOST=email-smtp.us-east-1.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=AKISJT76GP4M7ZI3MJQA
MAIL_PASSWORD=AlUtz238aIAlIHvoawJfz2yDmj8HpD95BGKX/1kbIe0H
MAIL_FROM_ADDRESS=noreply@example.com
MAIL_FROM_USER=EXAMPLE
MAIL_ENCRYPTION=tls

これをenvに貼れば良い。

MAIL_USERNAME=
MAIL_PASSWORD=

これはIAMユーザーを作った時に「今回しかダウンロードできません!!!」って忠告されるあれだ。

続きを読む