Talked at AWS Dev Day Japan 2022. - 解説動画 : https://www.youtube.com/watch?v=hT7Se0oFEkU - イベントページ: https://aws.amazon.com/jp/events/devday/japan/ - Proposal:https://github.com/aws-events/aws-dev-day-online-japan-2022-cfp/issues/82
Laravel5でAWSのQueueサービスであるSQSに2つのキューを作成して、処理を実行させる。 [下準備] AWSの管理画面にログイン SQSに移動して、2つのキューを作成する 注文メールの送信処理をするORDER_MAIL_QUEUEというキューを作成。 商品在庫が少ないことを管理者に警告するALERT_MAIL_QUEUEを作成。 ユーザーにアクセス権を与えて終了 [Laravel] .envファイルを編集 QUEUE_DRIVERの値をsqsに変更 config/queue.phpを編集 connectionsの項目に、sqsドライバーを使用したコネクションを2つ定義する コネクション名は自由 keyとsecretはIAMのアクセスキーを指定。 queueにはキューのプロパティの項目に表示されているURLを指定。 regionは使用しているリュージョン。 <?php retur
PDFを作る処理をWeb上でやります。このPDFを作るには、最低でも数分かかる事が解っています。したがって、PDFが出来たら、ユーザーにメールでお知らせする事にします。 ここでは、フロントエンドにRuby on Railsを、バックエンドにJavaを用いています。両者は同一のデータベースを参照出来るようになっています。言い換えると、両者で共有している部分はデータベースだけで、粗な結合になっています。 フロントエンドの役割は、ユーザーと直接対話する事です。ここでは、PDF作成受付画面と、受付完了画面の表示を行います。 動きを解説する前に、少しデータベースに関して書いておきます。データベースは、ごく一般的なRDBを使用し、PDF作成ジョブを表す「Jobs」というテーブルを用意してあります。 このJobsテーブルは、このように定義してあります。 CREATE TABLE jobs ( id SE
AWS SQSはフルマネージドなジョブキューのサービスです。 利用する際にはいくつか注意点があるので要点をまとめてみました。 1. 順番は保証されない キューに送信した順番で受信されるとは限らない 順番を確保したい時はメッセージ内容にシーケンス番号やタイムスタンプを含めて、自前で実装する必要がある 2. 同じメッセージが複数回配信される場合がある 同じ処理を行いたくない場合は、メッセージを受信した時に、同じメッセージIDの場合は処理をスキップする等の処理が必要 3. メッセージの削除にはReceiptHandleを使う メッセージの受信時に取得できる メッセージの削除・Visibility timeoutの変更に必要 メッセージを受信したエビデンスにもなる ただし、同じメッセージでも複数回受信した場合はReceiptHandleは別になるため注意 4. Visibility timeout
Amazon Web ServiceでSESとSQSを使って、大量に高速に送ることが出来るメールマガジン配信システムを構築してみました。 もともと、別の開発者の人が開発していたものを、引き継いで受託していたサービスが、日々会員数が増えるたびにメールの配信時間が伸びていき、最終的に2万人に配信するのに6時間ほどかかるシステムになっていました。 システム システム構成はシンプルでAWSのEC2のインスタンス上でDBやアプリケーションが動いており、画像などのリソースの保存にS3を、メール送信にSESを使っています。 ちなみにアプリケーションはJavaEEです。最近ではちょっと珍しい?ですね。 問題点 もともとのシステムは、管理画面から登録されたメルマガ情報からメルマガを受診する対象のユーザーを取得し、名前などを埋め込んだスプールを作成する「スプール生成バッチ」と、DBに登録されたスプールを順番に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く