タグ

ブックマーク / dev.classmethod.jp (146)

  • 神奈川県立高校ネット出願システムのGmail到達性問題、改めて深堀りしてみた | DevelopersIO

    神奈川県ネット出願システムのGmailへのメール到達性問題は、不適切なサーバー設定、大量メール送信、DNSミス、バウンスメール処理不備、急激な送信量増加、準備不足、新ドメインの低信頼性が複合的に作用して発生したと推測されます。 2024年1月、神奈川県のネット出願システムでGmailにメールが届かないトラブルが発生しました。 身内が受験するため、出願システムのトラブルに巻き込まれた当事者として原因調査を試みていました。 先日『日経クロステック』より、件について取材を受ける機会がありました。 取材協力した記事で取り上げられた問題について、さらに深堀り、詳細な分析を行った内容を以下に紹介いたします。 問題の概要 概要 志願者登録時、二次元コード読み取りと空メール送信が必要 "@gmail.com"アドレスへの返信メールが届かない不具合発生 原因 システムのメールサーバ設定が不十分 大量メール

    神奈川県立高校ネット出願システムのGmail到達性問題、改めて深堀りしてみた | DevelopersIO
    tk-1124
    tk-1124 2024/09/04
  • yamlでテストシナリオを書いてそのまま実行までできるAPIテストツールの新星 “runn” を試してみた | DevelopersIO

    yamlでテストシナリオを書いたらそのまま実行できる……そんな夢のようなシナリオテストツール"runn"の紹介とやってみた記録です これまでのシナリオテストツールに対する課題感 シナリオテストツールといえば、 Cucumber や Gauge といったツールが有名です。 ですが、これらのツールは「シナリオファイル」とは別に、シナリオを実行するためのコードも書かないといけません。しかも、そのコードではAPIを呼び出す処理を特定のプログラミング言語を使って書かなければなりません。その中には、HTTP Clientを実際に操作するような処理も含まれます。 私は「シナリオテストがしたい」のであって、「シナリオに沿ってAPI呼び出しを行う処理を書きたい」のではありません。こういった課題感を、ここ数年ずっと抱えてきました。 そんなとき、ついに見つけたツールが "runn" でした。 APIのシナリオテ

    yamlでテストシナリオを書いてそのまま実行までできるAPIテストツールの新星 “runn” を試してみた | DevelopersIO
    tk-1124
    tk-1124 2024/02/27
  • 突貫でおぼえるSPF、DKIM、DMARC | DevelopersIO

    しばたです。 昨年10月にGoogle(Gmail)および米国Yahoo!においてスパム対策の強化がアナウンスされました。 この件に関してつい先日まで他人事でいたのですが、実は全然他人事では済まないことが発覚し突貫で知識を仕入れています。 アナウンスに対する具体的な対応策についてはこちらのZennの記事を見れば全部わかる感じです。 最高ですね。 また、メール送信にAmazon SESを使っている場合はAWSのブログを確認すると良いでしょう。 「これらの記事を読み解けば万事解決!」という感じではあるのですが、私自身が学んだなかで予め知っておくと良さそうに思えた点がいくつかありました。 記事ではその辺を共有するのと、実際にAmazon SESの環境を作って動作確認をしたのでその結果も合わせて共有します。 はじめに覚えておくと良い基礎知識 Zennの記事でも詳細な解説がありますが、個人的に「最

    突貫でおぼえるSPF、DKIM、DMARC | DevelopersIO
    tk-1124
    tk-1124 2024/01/28
  • SQLFluffを完全に理解する | DevelopersIO

    Google Cloudのデータエンジニアをしています、はんざわです。 今回はSQLのリンターであるSQLFluffを触りながら理解を深めたいと思います。 検証環境 macOS: 13.3.1 Python: 3.9.5 SQLFluffとは SQLFluffとは、SQLのフォーマットを自動で問題点の指摘や修正をしてくれるオープンソースサービスです。 さっそくインストールして使ってみたいと思います。 インストール SQLFluffをインストールするにはPython3が必要です。 $ pip3 install sqlfluff 正常にインストールできているか確認します。 $ sqlfluff version 2.0.7 インストールが完了しました。実際にクエリを用意し、使ってみたいと思います。 さっそく使ってみる sqlfluffには大きくlintとfixの2つの機能があります。 まずはli

    SQLFluffを完全に理解する | DevelopersIO
  • Data Validation Tool (DVT) で、BigQuery と Redshift のデータが一致してるか検証してみた。 | DevelopersIO

    Data Validation Tool (DVT) で、BigQuery と Redshift のデータが一致してるか検証してみた。 こんにちは、みかみです。 最近、大好きな伏見稲荷大社に観光行ったのですが、荘厳に立ち並ぶ鳥居が続くあの道の最後にすら辿り着けず、途中でリタイアしてきました。。(昔は山まで登ったんだけどなぁ。。体力つけねばw やりたいこと BigQuery と Redshift のデータを検証したい BigQuery と Redshift のテーブルデータ件数を比較したい BigQuery と Redshift のテーブルのサンプリングデータが一致しているか確認したい Data Validation Tool とは BigQuery & Redshift に限らず、Cloud SQL や Teradata、Snowflak、ファイルシステム(GCS、S3 など)にも対

    Data Validation Tool (DVT) で、BigQuery と Redshift のデータが一致してるか検証してみた。 | DevelopersIO
    tk-1124
    tk-1124 2022/08/07
  • Glueのジョブどこから実行しよう..トリガー?ワークフロー?Step Functions? | DevelopersIO

    ETLのワークロードが単一のGlueジョブ(以下、ジョブ)で済むのであれば、Glueのトリガー(以下、トリガー)や、EventBridgeと連携させたLambda Functionなどで実行すればいいと思いますが、ジョブ同士が依存関係を持ったり、Glue以外での処理が見込まれる場合、どう設計しておくべきか... 今回はジョブの実行/管理で検討できそうな、トリガー、ワークフローがどういったものか簡単に整理しつつ、どうやって実行/管理した方がよさそうか考えてみました。 トリガー Glueにはトリガーと呼ばれるオブジェクトがあり、手動または自動で1つ以上のクローラーや、ジョブを実行することができます。 トリガーには起動方法が設定でき、以下を指定することが可能です。 スケジュール…固定のサイクルを指定(毎日24時など) オンデマンド…コンソールやAPIから実行 ジョブイベント…他のジョブイベント

    Glueのジョブどこから実行しよう..トリガー?ワークフロー?Step Functions? | DevelopersIO
  • Lambda無しでもいけます!!許可されたサイトにだけCORSを許可するためにAPI Gatewayのモックレスポンスを動的に設定してみた | DevelopersIO

    CX事業部@大阪の岩田です。現在開発中の案件でAPI GatewayからのレスポンスヘッダAccess-Control-Allow-Headersを動的に設定したいという要件があり、API Gatewayのマッピングテンプレートを使って要件を実現しました。マッピングテンプレートを記述するためのVTLに関して情報があまり見つからなかったので、対応した内容についてブログにまとめてみました。 やりたかったこと 現在開発中の案件ではSPAからAPI Gateway × Lambdaで構築したREST APIを呼び出すというよくある構成で開発を進めています。開発中のSPAは 開発者のローカルマシン AWS上の開発環境(S3やCloudFront) といった複数の環境で稼働するため、開発環境に関してはAPI GatewayAccess-Control-Allow-Origin: *を返却することでク

    Lambda無しでもいけます!!許可されたサイトにだけCORSを許可するためにAPI Gatewayのモックレスポンスを動的に設定してみた | DevelopersIO
  • VS Code の画面を共有するときはキー入力が見える「スクリーンキャストモード」を有効にしてみよう | DevelopersIO

    VS Code の「スクリーンキャストモード」使ってますか? スクリーンキャストモードとは 百聞は一見に如かず。 お分かりでしょうか。どのキーを入力したのかが一目瞭然です。マウスもクリック時には赤丸が表示されるのでどこをクリックしたかが分かりやすくなっています。(マウス押下時の黄色はスクリーンキャプチャソフトが付与したものです) スクリーンキャストモードは VS Code 1.31 January 2019 で搭載された機能ですが、意外と知らない人も多く、私自身この機能の名前がパッと出てこないこともあったので今回改めて紹介してみました。 https://code.visualstudio.com/updates/v1_31#_screencast-mode スクリーンキャストモードを有効にする デフォルトではショートカットキーは割り当てられていません。コマンドパレットから Develope

    VS Code の画面を共有するときはキー入力が見える「スクリーンキャストモード」を有効にしてみよう | DevelopersIO
  • 【保存版】東京リージョンの AWS 障害発生時にクラスメソッドのテクニカルサポートチームがやっていること | DevelopersIO

    どのような事前準備をしているか 有事の際は想定外のことが発生しやすく、事前準備をしていないと冷静な対応が難しくなります。 いきなりしっかりした事前準備をすることは難しいので、徐々に成熟度を上げていきます。 章では以下の観点で、事前準備についてご紹介します。 手順書 自動化 訓練 手順書 フローやチェックリストを含む手順書を準備しています。 手順書の内容は後述します。 分かりやすい手順書を準備することも重要ですが、その手順書への導線づくりも大切にしています。 運用周りのドキュメントは数が多く、目的のドキュメントが埋もれてしまい他のメンバーが見つけられない場合があるからです。 周知に加えて、ドキュメントの階層を見直したり、特定チャンネルに手順書の URL をピン留めしておくなど、手順書に辿り着きやすくする工夫をしています。 分かりやすい手順書の書き方については、以下のブログが参考になります。

    【保存版】東京リージョンの AWS 障害発生時にクラスメソッドのテクニカルサポートチームがやっていること | DevelopersIO
  • [アップデート] AWS App Meshが「仮想ゲートウェイ」を使ったメッシュ外部からのIngressアクセスをサポートしました | DevelopersIO

    [アップデート] AWS App Meshが「仮想ゲートウェイ」を使ったメッシュ外部からのIngressアクセスをサポートしました みなさん、こんにちは! AWS事業部の青柳@福岡オフィスです。 AWSが提供するメッシュサービス AWS App Mesh において、新しい機能「仮想ゲートウェイ」(Virtual Gateway) がリリースされました。 AWS App Mesh launches ingress support with virtual gateways これは「App Meshの使い方が大きく広がるんじゃないか?」と思える、結構ビッグなアップデートではないかと思います。 AWSブログでハンズオンも公開されていますので、こちらに沿って試してみたいと思います。 Introducing Ingress support in AWS App Mesh | Containers

    [アップデート] AWS App Meshが「仮想ゲートウェイ」を使ったメッシュ外部からのIngressアクセスをサポートしました | DevelopersIO
  • GitLab.comはどうやって6TBのPostgreSQLを9.6から11にたった2時間で移行したのか? | DevelopersIO

    GitレポジトリのホスティングサービスGitLab.comは2020年の5月に 6TB あるPostgreSQL 9.6クラスターをたった2時間のメンテウィンドウ中に11.7へアップグレードしました。 GitLab.comのエンジニアブログに、このPostgreSQLのメジャーアップグレードプロジェクトが解説されていたので、かんたんにご紹介します。 How we upgraded PostgreSQL at GitLab.com | GitLab ポイント PostgreSQL 9.6から 11.7 へのメジャーアップグレード 2時間のメンテナンスウィンドウ内でアップグレード完了 データサイズは6TB DBクラスターは GCP 上の 12台の VM インスタンスで構成 クラスターはアップグレード用の8台とリカバリー用の4台に分割 pg_upgrade & ハードリンクでインプレースアップグ

    GitLab.comはどうやって6TBのPostgreSQLを9.6から11にたった2時間で移行したのか? | DevelopersIO
  • React界隈で話題になっている「React Server Components」についてまとめました! | DevelopersIO

    React界隈で話題になっている「React Server Components」についてまとめました! どうもReact大好きCX事業部の片岡です! 今回はReact界隈で話題になっている「React Server Components」についての内容を意訳してみました。 元ネタ 話題になっているこちらの記事が元ネタです。 https://reactjs.org/blog/2020/12/21/data-fetching-with-react-server-components.html 概要 Fetch APIでデータをやり取りすると、バケツリレーが発生します。例えば、Spotifyのアーティストページにはアーティストの情報と人気の曲とアルバム一覧が並びます。この時、人気の曲とアルバム一覧を取得するには、アーティスト情報を取ってこないといけません。そうすると、アーティスト情報を取得して

    React界隈で話題になっている「React Server Components」についてまとめました! | DevelopersIO
  • くらめその情シス:クラスメソッドの基幹ネットワーク構成を紹介します。 | DevelopersIO

    はじめに どうも、情シスの徳道@上越オフィスです。今回はネットワークネタです。 唐突ですが、会社を代表するグローバルIPアドレスって多くの場合は社の固定グローバルIPアドレス(プロバイダに依存)ではないでしょうか。 ゼロトラストが叫ばれて久しいですが、弊社のようにお客さまの環境を保守するサービスを行っている場合、やはり境界防御として接続元のグローバルIPアドレスを指定して許可されることが多いです。 地方オフィスが増えてくると特定の環境への接続許可をしてもらうIPアドレスの登録も増えてきます。VPN接続で社など特定拠点経由での接続を行っていたとしても、プロバイダに依存することになったり冗長化が大変だったりしますね。 弊社では数年前からAWSのElastic IP経由で変化しない&冗長化されたグローバルIPアドレスからAWSに接続する社内ネットワークを構築してきました。 今回はクラスメソッ

    くらめその情シス:クラスメソッドの基幹ネットワーク構成を紹介します。 | DevelopersIO
  • AWS Organizationsの設計に必須なOU設計のベストプラクティスを学ぶ | DevelopersIO

    指針がないとかなり難しいAWS OrganizationsのOU設計、指針とするためのAWS公式ブログを日語で纏めてみました。 「OrganizationsのOU設計、難しすぎでは…」 AWS Organizationsでマルチアカウント環境を構築していくとき、避けて通れないのがOrganizationsにおけるOUの設計。SCPに紐づく単位というざっくりした知識はありながらも、いざ設計を開始すると途方にくれる人も多いんじゃないでしょうか。 そんな(自分も含めた)迷える子羊に向けて、AWSがその解となりうるブログを公開しています。 Best Practices for Organizational Units with AWS Organizations このブログは、上記記事をベースにOU設計のベストプラクティスを掴むことを目的として日語で纏めたものとなります。完全な翻訳ではないこと

    AWS Organizationsの設計に必須なOU設計のベストプラクティスを学ぶ | DevelopersIO
  • SendGrid と Amazon Route 53 で SPF, DKIM 設定してメール送信してみる | DevelopersIO

    はじめに おはようございます、もきゅりんです。 メールを送信するときには、高信頼性にしましょう、ということを先日のブログ、Amazon SES でメール送信するときのベストプラクティスまとめ(2020年10月) でまとめました。 では、 Amazon SES(以下SES) ではない方法で対応するとどうなるのか。 ということで、皆大好き SendGrid と Amazon Route53(以下Route53) で SPF, DKIM 設定する方法をまとめてみました。 (SendGrid では DMARC は対応していません。) 稿では改めて SPF, DKIM, DMARC の詳しい説明はしません。(SPF, DKIM, DMARC は被害が後を絶たない、なりすましメールの対策に有効な手法となる「送信ドメイン認証」の方法です。それぞれ異なった技術の認証方式であり、どれかではなく、組み合わせ

    SendGrid と Amazon Route 53 で SPF, DKIM 設定してメール送信してみる | DevelopersIO
    tk-1124
    tk-1124 2020/10/18
  • 3〜4時間でAWSの監視系のサービス一気に学べたらコスパ良いと思いませんか | DevelopersIO

    突然ですが、以下の機能がそれぞれどういうものか すべて ご存知でしょうか? CloudWatch ServiceLens X-Ray CloudWatch Contributor Insights CloudWatch Synthetics CloudWatch Container Insights CloudWatch Logs Insights CloudWatch メトリクス Metric Math 検索式 カスタムメトリクス CloudWatch ダッシュボード CloudWatch 異常検出(Anomaly Detection) CloudWatch 埋め込みメトリックフォーマット CloudWatch アラーム 異常検出に基づいたアラーム 複合アラーム 私はわからなかったですね。ここ 1〜2年のCloudWatch系のアップデート量は凄まじいなと個人的には思っていて、Cloud

    3〜4時間でAWSの監視系のサービス一気に学べたらコスパ良いと思いませんか | DevelopersIO
  • ぼくの考えた最強のMac環境 | DevelopersIO

    こんにちは、クラスメソッドの岡です。 先日MacBookProにコーヒーをこぼしてしまい、見事に壊れました。 電源はつくけどバックアップが取れない。。しかし不幸中の幸いで直前にGoogleDriveにデータを移していて、gitにもpushしていたので復元する必要はあまりないかも、、? ということで、環境の見直しも兼ねて新しいMacをまっさらな状態からセットアップすることにしました。 今回はセットアップも兼ねて自分のお気に入りのツール等を一部ご紹介させていただこうと思います。 環境 macOS Catalina 10.15.6 アプリケーション 1Password: パスワード管理 Googleアカウントのパスワードすら覚えてないのでとりあえず1Passwordを入れます。 他にサインインしているデバイスがあれば、環境設定→アカウント→その他のデバイスを設定でセットアップ用のQRコードが出せ

    ぼくの考えた最強のMac環境 | DevelopersIO
  • AWS システム構築 非機能要件ヒアリングシートを公開してみた | DevelopersIO

    こんにちは。 ご機嫌いかがでしょうか。 "No human labor is no human error" が大好きなネクストモード株式会社の吉井 亮です。 日国内においても多くのシステムがクラウド上で稼働していることと思います。 俊敏性、拡張性、従量課金、IaS、セキュリティなどクラウドのメリットを享受しやすい所謂 SoE で多くの実績があるように感じます。 ここ1~2年は、社内基幹システム・情報システム、SoR 系のシステムのクラウド移行が格化してきたというのが肌感覚であります。 クラウドでのシステムインフラ構築は従来のようにゼロから非機能要件定義を行っていくものではなく、ベストプラクティスをまず実装して少しずつ微調整を行っていくものと考えています。とはいえ、システムごとの要件は予め明らかにしておくことがインフラ構築においても重要になります。 クラウド上では出来ること出来ないこと

    AWS システム構築 非機能要件ヒアリングシートを公開してみた | DevelopersIO
  • 最大同時接続数を1に制限したRDSにRDS Proxyを構成して基本動作を押さえよう | DevelopersIO

    CX事業部@大阪の岩田です。 社内で需要がありそうだったので、RDS Proxyの基動作について簡単にまとめてみました。クライアントからの最大同時接続数を1に設定したRDSに対してRDS Proxyを構成し、クライアントアプリケーションに見立てたEC2からいくつかのパターンで接続を試行した結果をまとめています。 環境 今回検証に利用した環境です。 RDS for PostgreSQL 11.8-R1 インスタンスクラス db.t3.micro max_connections: 9 バックグラウンドでrdsadminユーザー、rdsproxyadminユーザーがDBに接続するのを考慮して9に設定しています。今回の環境であればmax_connectionsを9に設定することで非マスターユーザーからの同時接続数を1に制限することができます。 RDS Proxy エンジンの互換性: Postg

    最大同時接続数を1に制限したRDSにRDS Proxyを構成して基本動作を押さえよう | DevelopersIO
  • CloudFrontとLambda@EdgeでA/Bテストをサクッと導入してみる | DevelopersIO

    ウェブサイトでA/Bテストする場合、以下の流れで作業します A/B 2パターンのサイト(機能)を用意 ユーザーをどちらかに振り分ける A/Bのどちらが有効か評価 この2つ目のユーザー振り分けは実現方法が色々考えられます。 ブログでは、Amazon CloudFront とエッジコンピューティングの Lambda@Edge(以下L@E) を使い、アプリ改修なしに、同じURLを利用しながら、ユーザーをA/Bに振り分ける方法を紹介します。 完成図 ポイント ポイントは次の3点です アプリケーションは改修しない L@EでA/Bテスト用のCookieを発行し、A/B振り分ける CloudFrontではA/Bテスト用のCookieをキーにキャッシュ 前提として、A/Bを実装したアプリケーションに異なるホストを割り当て、URIパス部の仕様は同じとします。 1. アプリケーションは改修しない アプリケー

    CloudFrontとLambda@EdgeでA/Bテストをサクッと導入してみる | DevelopersIO