AWS– tag –
-
素材ダウンロード負荷軽減のためにApache – PHP から切り離し、Fastly – S3 経由で配信するようにしました
開発
こんにちは。PR TIMESでエンジニアをしている田中 (@Romira915)です。 この記事では、認可をアプリケーション側に残したまま、素材ダウンロード用ZIPの配信をApache・PHPからFastly・S3へ切り出した方法と、実装時に遭遇したキャッシュ制御の問題を紹介します。 【はじめに】 PR TIMESでは、企業が投稿したプレスリリースに含まれる画像を、まとめてZIPでダウンロードできる「素材ダウンロード」という機能を提供しています。 ZIPファイルは一度生成されるとリリースが更新されるまでEC2ローカルに保持され、配信... -
Google API 認証を Service Account キーから WIF に移行した話
未分類
こんにちは!PR TIMES 開発本部のエンジニア、トゥ(codyzard)です。 今回は、AWS 上で動くバッチから利用している複数の Google API の認証を、Service Account キーから WIF(Workload Identity Federation) へ移行した話を紹介します。対象となる API は、BigQuery、Retail API、Google Analytics Data API(以下、GA4 Data API)です。 このうち、GA4 Data API の移行では、次の2つの理由により追加対応が必要になりました。 Google Analytics 固有の権限モデルにより、Service Account impersonation が必... -
AWS CloudTrail ログを BigQuery 上で分析できるようにしました
インフラ
【はじめに】 こんにちは!PR TIMES第二開発部の加来安東です。 本記事では、AWS CloudTrail の監査ログを Google Cloud(BigQuery)上で分析できるように整備した事例についてご紹介します。 BigQuery Data Transfer Service(以下、DTS)による S3→BigQuery 転送と、スケジュールクエリによる整形処理をどのように組み合わせるかは、データ転送フローの設計上、重要なポイントとなります。 この記事は、次のような方に役立つ内容です。 Athena 上で CloudTrail を扱っており、Google Cloud への移行を検討してい... -
RDS の CPU 使用率上昇に対する原因調査と改善対応
開発
【はじめに】 こんにちは、バックエンドエンジニアの田中 湧大 (@Romira915)です。 近頃、PR TIMESのバックエンド基盤においてAmazon RDS for PostgreSQLのCPU使用率が継続的に上昇していることが観測されるようになりました。 以前は20%前後→現在は40%前後に上昇しており、ピークタイムには90%を超えてアラートが発報される状況も発生しています。 このまま放置した場合、以下のようなリスクが顕在化する恐れがあります。 API レスポンスの悪化によるユーザー体験の低下 重要なデータ操作失敗によるサービス全体... -
監査ログ検索が27倍高速化。BigQuery 移行でコスト削減と高速化を両立した BaseMachina のログ分析基盤
インフラ
こんにちは!PR TIMES ソフトウェアエンジニアの河瀨翔吾(@shogogg)です。現在はバックエンド開発を主に担当しています。好きな秋の味覚は秋刀魚ですが、今年はまだ食べられていません😢。 今回は BaseMachina(ベースマキナ)の監査ログを BigQuery 経由で参照できるようにした背景や試行錯誤した経験、具体的な手法についてお話しします! 【BaseMachina(ベースマキナ)とは】 BaseMachina は株式会社ベースマキナが開発・運営するローコード SaaS です。手間の掛かる管理画面の開発を少ないコードで実現でき... -
PR TIMESのOpenSearchをバージョンアップしました
開発
こんにちは。バックエンドエンジニアの筒井(@tsuttsun_wind)です。PR TIMESの検索は、OpenSearchに支えられています。今回、OpenSearchのバージョンを1.3から2.19に上げる対応を行いました。この記事では、経緯や移行方法、移行中に発覚した改善が必要な実装などを交えて紹介していきます。 【背景】 弊社のインフラは主にAWSを利用しています。 OpenSearchはAWSで展開されているOpenSearch Serviceを利用していて、バージョン1.3で運用していました。 最近、OpenSearch Serviceのドメインが一部EOLになることが... -
Amazon FSx for NetApp ONTAPで手動バックアップおよびリストアを行うTips
開発
こんにちは。バックエンドエンジニアの筒井(@tsuttsun_wind)です。 PR TIMESではファイルストレージとしてAmazon FSx for NetApp ONTAP(以降、FSx)を利用しています。 通常は自動バックアップを行っていますが、「特定のタイミングでバックアップをしたい」や、「過去のバックアップから必要なタイミングでリストアしたい」といったケースが生じます。 この記事では、FSx上での手動バックアップの実行やリストアを行う際の具体的な手順と運用上の注意点を紹介します。 【FSxのバックアップについて】 FSxでは、... -
PHPでAWS SDKのテストをMockする
開発
こんにちは。バックエンドエンジニアの筒井(@tsuttsun_wind)です。今回は、PHPでAWS SDKのテストをMockする方法について紹介します。 【背景】 現在、PR TIMESでアップロードされる画像はAWS S3(以降S3)に格納されています。 これまでに実装されたテストコードでは、開発環境のS3に直接接続しているため、不必要なデータ書き込みやコストが発生するという問題を抱えています。 AWSなどの外部環境に直接接続してテストすることは上記の問題で好ましくないことや、外部サービスがメンテナンスなどで停止している... -
C言語とCGIで大量のFAX送信作業を自動化した話
開発
こんにちは、PR TIMESの開発部インターンの三宅です。PR TIMESではFAXを用いてプレスリリースの発信を行うことができます。今回、私はこれまで手動で送っていたFAXをWindows環境のC言語のCGIプログラムを作成し自動送信できる仕組みを開発しました。その内容について紹介します。 【背景】 PR TIMESには、「プレスリリースのFAX配信」というオプションサービスが用意されています。通常はメディアリストとして選定した各メディアにメールでプレスリリースを配信しています。そこにオプションサービスを付加するこ... -
LibreChatをセルフホスティングして社内利用できるようにしました
開発
こんにちは、開発部でバックエンドエンジニアをしている田中 湧大(@Romira915)です。 今回は社内向けのAIチャットボットツールとしてOSSのLibreChatをセルフホストして公開したのでその紹介をします。 【LibreChatを新たにセルフホストした理由】 弊社では以前からOSSのchatbot-uiをCloud Runにセルフホストしていました。 https://developers.prtimes.com/2023/04/05/use-chatbot-ui/ しかしchatbot-uiはいくつかの課題がありました。 運用していたバージョン(ver1系)ではGPT-4oやGPT-4o miniなどの最新のモ...
