PLAY DEVELOPERS BLOG
https://developers.play.jp/
HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。
フィード

【New Relic User Group Vol.16】2025年総決算 LT に登壇しました!
PLAY DEVELOPERS BLOG
こんにちは。テックリードの丸山 @maruyamaworks です。 2025/12/17 に開催された New Relic User Group Vol.16 2025年総決算LT 〜持ち寄れ!現場の知見と失敗談〜 にて「New Relic 1 年生の振り返りと Cloud Cost Intelligence について」と題して登壇させていただきました。 nrug.connpass.com ▼ 当日の登壇資料はこちら speakerdeck.com 弊社では昨年 11 月より一部プロダクトで New Relic の導入を開始しました。また、組織横断的チームである "技術推進室" が中心となり…
15日前

New RelicでDynamoDB Streamsをまたいだ分散トレーシングを実現した
PLAY DEVELOPERS BLOG
こんにちは、PLAY CLOUD本部 技術推進室の市川です。 PLAY CLOUDでは現在、システム運用の質を高めるためにオブザーバビリティ(可観測性)の強化に注力し、New Relicの導入を進めています。 現代のシステムは、マイクロサービスやイベント駆動アーキテクチャの普及により、その構造が複雑化しています。システム全体を流れる一つのリクエストを起点に、処理がどのサービスを通過し、どこでボトルネックやエラーが発生しているのかを追跡する分散トレーシングは、この複雑化した環境において欠かせない要素です。 New Relicの導入を進める中で、特にAWS DynamoDB Streamsを介して…
21日前

Raycast で作業効率化!おすすめの機能6選
PLAY DEVELOPERS BLOG
こんにちは。2025年度に入社しました、PLAY CLOUD本部プラットフォーム技術部開発第1グループ所属のウォンです。 本記事では、Raycastを用いて日々のPC操作を効率化するため、私が特に頻繁に利用している標準機能3選と推奨拡張機能3選を紹介します。皆さんの日々の作業効率化やRaycast活用の参考になれば幸いです。 Raycastとは Raycastを導入するメリット 推奨標準機能3選 Clipboard History Window Management Quicklinks 推奨拡張機能3選 Brew Change Case Color Picker 最後に Raycastとは …
22日前

大規模フロントエンド分離を成功させるための具体的なアプローチと知見
PLAY DEVELOPERS BLOG
こんにちは、PLAY CLOUD本部 技術推進室の市川です。 前回は、サービス間の差異をなくすための共通Node.jsモジュール管理について解説しました。 developers.play.jp 今回もPLAY CLOUD全体の改善の一環として実施した、アーキテクチャの大幅な変更について、その背景や具体的な手法についてご紹介します。 具体的には、PLAY CLOUDの管理画面をSPA(Single Page Application)化し、フロントエンドとバックエンドを完全に分離させた話になります。 従来の構成と課題 実施した構成変更 リポジトリのサービスごとの分離 フロントエンドとバックエンドの…
1ヶ月前

Slack の Event Subscription と GAS を使ってエラーを整理し 65% 解消した話
PLAY DEVELOPERS BLOG
こんにちは。OTTサービス技術部 開発第5グループの松本です。 「アラートが多すぎて、どれを直せばいいか分からない…」私たちITエンジニアが日常的に抱えるこのモヤモヤを解消した取り組みのレポートです。本プロジェクトでは、Slack API、Google App Script (GAS)、そしてGoogleスプレッドシートという、身近なツールを連携させ、エラーアラートの発生状況を自動で記録・集計する仕組みを構築しました。この仕組みのおかげで、「勘」ではなく「データ」に基づいた合理的な優先順位付けが可能に。最も頻繁に発生するエラーを狙い撃ちで根本解決した結果、なんとアラートの総量を導入前の 35%…
1ヶ月前

GASを活用したSlack–Asana間のデザイン依頼フロー構築
PLAY DEVELOPERS BLOG
今年も秋が短かったですね。こんにちは、デザイナーの池田です。 今回は「デザイナーへの依頼を効率化したいよぉ〜〜」という思いから、地味〜に2022年からやっていた事を世に出して行こうと思います。 さいしょに Slackのワークフローを導入 やりたい事は増えていく Slackの「リスト」機能を使ってみるがやりたい事が出来ないッ SlackAppがあるじゃない やりたいことはこんな感じ 一覧はAsanaにお任せ STEP1 依頼投稿されたのをAsanaに登録 準備:スプレッドシートを用意 STEP 1-1 Slackワークフロー「チャンネルに投稿」 STEP 1-2 Slackワークフロー「依頼スト…
1ヶ月前

【 AWS Media Services 勉強会レポート】動画配信技術の基礎を習得
PLAY DEVELOPERS BLOG
PLAY では、技術力の向上を目的としたLT会の開催やテックブログの運営などを積極的に行なっています。今回、当社の核である「動画配信技術」の基礎を学ぶため、アマゾン ウェブサービス ジャパン合同会社様ご協力のもと、AWS Media Servicesに特化した社内勉強会を2日間にわたって開催しました!本記事では、総勢約70名の社員が参加した勉強会の様子をレポートします。 今回実施した勉強会のカリキュラム <座学>動画配信の全体像と技術の基礎を学ぶ <ハンズオン>AWSを活用した配信システム構築の実践 今回実施した勉強会のカリキュラム 勉強会では座学とハンズオンを通じて、動画配信の実装方法につい…
1ヶ月前

Androidアプリを軽くするレイアウトの3つのコツ
PLAY DEVELOPERS BLOG
こんにちは。OTTサービス技術部 開発第3グループの古川です。 みなさんレイアウトの書き方を気にしてますか? AndroidやAndroidTVはさまざまなスペックの端末がありそれぞれでなるべく変わらない操作感を提供する必要があります。 そのために描画のパフォーマンスはとても大事な要素なのですが今回はレイアウトの書き方の観点からパフォーマンスのちょっとした工夫で軽くなるコツをまとめてみました。 この記事で解説すること ネスト(View階層)の深さを避ける方法 深い階層が生む問題 メモリ消費の増加 レンダリング速度の低下&画面の遅延 保守・可読性の低下 ネストの浅い構造を実現するテクニック Co…
1ヶ月前

LinuxTV 向けアプリ開発者が Vega OS と向き合った話 〜フォーカス編〜
PLAY DEVELOPERS BLOG
こんにちは、OTT サービス技術部の宮田です。 今回はAmazonから発表された新型FireTVのOSである「Vega OS」向けアプリの開発にチャレンジする中でハマったことと、その解決策を一つ紹介します。 本題に入る前に フォーカス管理 LinuxTVでのフォーカス管理手法 自前フォーカス管理の問題点 ネイティブでのフォーカス管理 ネイティブフォーカスの問題 TVFocusGuideView おわりに 本題に入る前に 本題に入る前に、状況を説明させていただきます。 タイトルで触れているLinuxTVとは、Linux系OSが搭載されているTVを指し、アプリはHTMLで動作するWebアプリを用意…
2ヶ月前

就業型インターン参加レポート:動画配信サービスの裏側とエンジニアリングの本質
PLAY DEVELOPERS BLOG
こんにちは!インターン生の畑です。 今回は、就業型インターンの参加レポートをお届けします。 なかなかに濃い期間でしたので、得られた学びのアウトプットも兼ねて書きました! インターンについて 期間 出会い 業務内容 担当業務 使用技術 動画配信サービスの裏側 再生ビーコンなるものがあるらしい SDUI (Server-Driven UI) LTもしてきました! AIとの向き合い方 規模の大きなシステムの洗礼 タスクの先にあるもの 最後に インターンについて play.jp 期間 2025/9/17~2025/10/31 (約1.5ヶ月間) 出会い 私は現在大学院一年で絶賛就活中なのですが、とある…
2ヶ月前

Visual Studio Code のデバッガーで Out of Memory を解消する
PLAY DEVELOPERS BLOG
こんにちは。PLAY CLOUD本部プラットフォーム技術部 開発第2グループ所属のガリです。 とあるサーバーレス関数で Out of Memory (OOM) が発生しました。処理するデータ量が増えたため、暫定対応としてメモリ割り当てを増やしたところ、問題は一時的に解消されたようです。しかし、メモリを増やすことでコストが上がってしまい、さらにデータ量が増えれば増えるほど、将来的に再発する可能性があります。コストを抑えつつ再発を防止するためには、サーバーレス関数の最適化が必要でした。 問題となったボトルネックを特定するために、プロファイラを使用してみました。 対象のサーバーレス関数はそれほど複雑…
2ヶ月前

Observability Conference Tokyo 2025 に現地参加してきました! #o11yconjp
PLAY DEVELOPERS BLOG
こんにちは、テックリードの丸山 @maruyamaworks です。 弊社が提供しているプラットフォーム PLAY CLOUD では、パフォーマンスの改善や不具合の早期発見等を目的として、昨年 11 月ごろから Observability を高めるためのツールとして New Relic を導入しています。導入からまもなく 1 年を迎えようというタイミングで、ちょうど Observability (o11y) を主題としたカンファレンスが開催されるとのことでしたので、他社様でのノウハウや最新の活用事例等を学ぶため、このたび現地参加してまいりました。今回はそのレポートをお届けしたいと思います。 イ…
2ヶ月前

社内 LT 会「てっくじゃむ」10月16日のイベントレポート
PLAY DEVELOPERS BLOG
2025年10月16日(木)に、PLAY 社内で 「てっくじゃむ」を開催しました。 このイベントは PLAY の技術情報交流を活発化させるため不定期で開催している社内の LT 会です。 ジャムセッション(即興で行われる演奏会)のように、普段はあまり関わりがない人たちが、ふらりと立ち寄って話をするような場であってほしい、また、パンにジャムを塗るようにエンジニアにも知識を塗り足していきたい、といった想いを込めて「てっくじゃむ」と名付けています。 今回はインターン生を含む3名が登壇しました! 登壇者 タイトル 畑 エンジニアリングの難しさを垣間見た話 鈴木 Claude Codeでどんなことができる…
2ヶ月前

Amazon Bedrockを使ってナレッジベースを作ってみよう
PLAY DEVELOPERS BLOG
みなさん、こんにちは。4月に入社しました、メディアサプライチェーン技術部開発第2グループの山本です。普段の開発やビジネスの業務において、以下のような場面に遭遇したことはないでしょうか? 「あのファイル、どこにあったっけ...?」「情報が点在していてどこからみたらいいか分からない」「探すのに時間がかかるし、もう諦めよう・・・」 今回、Bedrockを使ってナレッジベースを作成し、このような課題を解決したいと思います。 システム構成図 料金について S3 Vectors OpenSearch Serverless 比較 構築 ナレッジベースを作成 Lambda関数の作成 Slackアプリの作成 質…
3ヶ月前

iOSDC Japan 2025で登壇しました
PLAY DEVELOPERS BLOG
こんにちは! iOSエンジニアの鈴木斗夢です。 iOSDC Japan 2025の参加レポートをお届けします! iOSDC Japan 2025とは 「iOSDC Japan 2025」は、国内最大級のiOSエンジニア向けカンファレンスです。 PLAYはシルバースポンサーとして協賛しました! PLAY シルバースポンサー iOSDCに登壇するためプロポーザルに応募した 今年は、登壇を目指してプロポーザルに応募しました。 いくつか応募していたんですが、 モバイルチームのマネージャーの上野さんに相談したところ、 「位置判定にAIを組み込んだ話も刺さるんじゃない?」とアドバイスをいただき、応募したプ…
3ヶ月前

これから GitHub Enterprise Cloud を導入する企業に EMU をおすすめする 4 つの理由
PLAY DEVELOPERS BLOG
こんにちは。テックリードの丸山 @maruyamaworks です。 みなさん、GitHub は使っていますか? GitHub は企業向けに 複数のプラン を提供していますが、ある程度の規模の会社であれば GitHub Enterprise を利用しているというケースも多いのではないかと思います。弊社もこれまで、GitHub Enterprise を利用していました。 GitHub Enterprise では、通常のクラウド環境 github.com だけではなく、自社で用意したサーバー(EC2 等)に GitHub をインストールして使う方式も選択することができます。これらを区別して、前者の…
3ヶ月前

VerdaccioからGitHub Packagesへのnpmパッケージ移行
PLAY DEVELOPERS BLOG
背景 当初想定していた作業フロー 実際の作業フロー(と起こった問題) 1. GitHub Packagesの初期設定 Personal Access Token(PAT)の設定 ローカルマシンの初期設定 ~/.npmrcの修正 ~/.yarnrcの修正 2. 既存のnpmパッケージをGitHub Packagesにアップロード registry設定の追加 既存のnpmパッケージのスコープの問題 npm scriptsでエラー 修正済のpackage.json 移行用スクリプト(Ruby) 3. GitHub Packagesからインストール productionでインストール出来ない問題 4.…
3ヶ月前

サービス間の差異をなくす共通 Node.js モジュール管理
PLAY DEVELOPERS BLOG
こんにちは、PLAY CLOUD本部 技術推進室の市川です。 弊社の提供するプラットフォーム「PLAY CLOUD」は、さまざまな機能を持った複数のサービスから構成されています。 技術推進室ではこれらのサービスを横断して技術的な課題を解決し、より良いサービスを提供するための取り組みを行っています。 今回は、PLAY CLOUDの管理画面で利用している共通モジュールをnpmパッケージとして分離し各サービスで利用できるようにしたことに関して話そうと思います。 背景 共通モジュールとは 従来の課題 サービス間の差異をなくす施策 共通モジュールのnpmパッケージ化 サービス側のnpmパッケージ利用への…
3ヶ月前

OAuth 2.0 クライアントID作成から Gmail API 呼び出しまで
PLAY DEVELOPERS BLOG
皆さん、こんにちは。 プラットフォーム技術部の林と申します。 前回の投稿から気づけば2年が経ってしまいました。 しばらくご無沙汰しておりましたが、また記事を書いてみようと思います。 もし以前の記事の Playwright にご興味がある方は、こちらもぜひご覧ください。 developers.play.jp 今回は、個人的に学習している Google API の OAuth 認証について、Google Cloud Console とバックエンドに焦点を当てて解説します。フロントエンドとバックエンドの役割を分け、バックエンドで Gmail API を使って実際にメールを送信するまでの流れを紹介しま…
4ヶ月前

AWSのランニングコストを削減しよう! opswitchを使った定期停止・起動について
PLAY DEVELOPERS BLOG
OTT サービス技術部の赤澤です。 前回のブログではAWSリソースのコスト削減のためにAmazon EventBridgeを利用した定期的なリソースの停止、起動の方法を紹介しました。 developers.play.jp 約2年前に執筆したブログですが、現在はCloudFormationテンプレートからの設定ではなく、クラスメソッド株式会社様が提供しているopswitchというツールを使っています。 なぜ「opswitch」に切り替えたのか? 実際に「opswitch」でスケジュールを設定してみる AWSアカウントの連携 タスクの作成 ジョブの作成 まとめ なぜ「opswitch」に切り替えた…
4ヶ月前

AWS Elemental LinkからMediaLiveへ打ち上げてライブ配信する
PLAY DEVELOPERS BLOG
こんにちは。2024年度に入社しました、PLAY CLOUD本部プラットフォーム技術部 開発第1グループ所属の朱です。 本記事では、AWS Elemental Linkを用いてMediaLiveにライブ映像を入力し、最終的にMediaPackageを経由してHLSストリーム(.m3u8)を配信する基本的なフローを整理します。Link導入の具体的な手順や考慮ポイントを整理する際の参考になれば幸いです。 AWS MediaLiveの基本構造とライブ配信フロー Input Channel Output Elemental Linkとは Elemental Linkを用いたMediaLive配信の設定…
4ヶ月前

チーム開発におけるGitHubのおすすめ設定
PLAY DEVELOPERS BLOG
こんにちは、4月にPLAYに入社した原田です。 入社してすぐに、前職で活用していたGitHubの設定を思い出し、現在の案件リポジトリにもいくつか適用してみました。 その結果、開発チームの生産効率が向上しました! この記事では、私が実際に設定して効果を感じた、GitHubのおすすめ設定をご紹介します。 チーム開発の参考になれば幸いです。 ① Allow squash merging ② Always suggest updating pull request branches ③ Automatically delete head branches ④ Require pull request …
4ヶ月前

Figma で実現!チームコミュニケーションを高めるルール作り
PLAY DEVELOPERS BLOG
こんにちは、デザイングループの荒木です。去年、育休から復帰した一児の母デザイナーです。家事や育児の合間に仕事の効率やチームとのやり取りを考えながら、毎日バタバタしています。最近の悩みは、運動する時間がなかなか取れないことです。 デザイナーもエンジニアも迷わない環境を作るために 復帰後、久しぶりの案件参加でまず感じたのは、チーム内でデザインの作り方やデータ構成が人それぞれで、引き継ぎや案件理解に時間がかかることでした。コンポーネントや色、要件定義書、スプレッドシート、GitHubのURLなども散らばっており、全体を把握するだけでも少々手間がかかります。 その結果、「この色は正式?」「このボタンパ…
5ヶ月前

AWS Lambda のログの S3 出力が簡単になりました
PLAY DEVELOPERS BLOG
今年の5月よりLambdaのログ出力に仕様変更がありました。料金計算の際に Vended Logs として計上されるようになったほか、Vended Logs として S3 や Data Firehose へ出力できるようになりました。CloudWatch Logs 以外でのログ管理がしやすくなった他、S3 や Firehose へログ出力する際は料金面でも優遇されます。今まで通りにLambda関数を作成した場合、ログはこれまで通りにCloudWatch Logsで取込・保存され、参照もCloudWatch Logsの機能で行うことになります。ログ運用を変える予定が無い場合は、今回のローンチ以降も変更すべきことはありません。一方、CloudWatch Logsに取り込まれたログをS3へファイル出力したい場合、従来はAWSコンソールなどから手動でエクスポートするか、Data Firehose を使う必要がありました。これが今回のローンチ以降、Lambda から取り込むログを CloudWatch Logs で取り込んだ後、S3 バケットに直接出力することが可能になりました。また Lambda から取り込まれるログは Vended Logs に分類されるようになったため、 S3 や Data Firehose への出力に変更する場合は、CloudWatch Logs のログ取込料金が大幅に安くなります。
5ヶ月前

Node.js 組み込みテストランナー「node:test」の使用方法について
PLAY DEVELOPERS BLOG
メディアサプライチェーン技術部開発第2グループの長谷川です。 2023年4月にリリースされた Node.js v20 から、組み込みのテストランナーとして node:test が安定版機能となりました。新しく開発に取り組んだバックエンドのNode.jsのプロジェクトでユニットテストを整備するにあたり、外部ライブラリに依存せずに手軽にテストを書ける組み込みテストランナーを使用してみた経験から機能の概要、実際にテストコードを書く方法、主要なオプションなどをご紹介します。バックエンドの Node.js プロジェクトにテストを導入したい方の参考になれば幸いです。 node:test とは 基本的な使い…
5ヶ月前

動画配信技術を実装して理解する〜HLS配信編〜
PLAY DEVELOPERS BLOG
こんにちは、PLAY CLOUD本部 技術推進室 の石川です。「動画配信技術を実装して理解する」シリーズも4回目の記事となりました。 前回の記事はこちらになります。 developers.play.jp 今回は、前回のRTMPからHTTP-TS配信を行うプログラムを、インターネット配信のデファクトスタンダードであるHLSに変更するという部分を取り扱います。 HLS化は前回のMPEG-TSへのトランスマックスができてしまえばサクッとできますし、HLSで配信できると感動もひとしおです。 実際にデファクトスタンダードの配信プロトコルで配信する部分まで自作してしまいましょう。 では、RTMPをHLSに…
5ヶ月前

【 AWS GameDay イベントレポート】PLAY、HJホールディングス、日本テレビ、TVer 初の合同開催!
PLAY DEVELOPERS BLOG
2025年7月17日(木)にエンジニアの技術力向上を目的として開催した AWS GameDay の様子を余すことなくレポートします! AWS GameDayとは AWS GameDay は、チームベースの環境で、AWS ソリューションを利用して現実世界の技術的問題を解決することを参加者に課題として提示する、ゲーム化された学習イベントです。 AWS GameDay 公式サイト 今回は、PLAY のエンジニアだけでなく、日頃から強固な連携をいただいている HJホールディングス様、日本テレビ様、TVer 様 にもお声がけし、初の合同開催が実現しました! 『参加者がお互いに学び合うこと』を通じて AW…
5ヶ月前

社内 LT 会「てっくじゃむ」7月24日のイベントレポート
PLAY DEVELOPERS BLOG
2025年7月24日(木)に、PLAY 社内で 「てっくじゃむ」を開催しました。 このイベントは PLAY の技術情報交流を活発化させるため不定期で開催している社内の LT 会です。 ジャムセッション(即興で行われる演奏会)のように、普段はあまり関わりがない人たちが、ふらりと立ち寄って話をするような場であってほしい、また、パンにジャムを塗るようにエンジニアにも知識を塗り足していきたい、といった想いを込めて「てっくじゃむ」と名付けています。 今回は3名の社員が登壇しました! 登壇者 タイトル 土谷 Obsidianで始めるデイリーノート 坂本 n8nを使ってみよう! 杉嵜 AWS Lambda …
5ヶ月前

動画配信技術を実装して理解する〜MPEG-TS トランスマックス編〜
PLAY DEVELOPERS BLOG
こんにちは、PLAY CLOUD本部 技術推進室 の石川です。「動画配信技術を実装して理解する」も3回目の記事となりました。 前回の記事はこちらになります。 developers.play.jp 今回は、前回のHTTP-FLV配信のベースに対して、MPEG-TSにトランスマックスし、HTTP-TS配信を実装します。 本当はHLSにして配信するまでをまとめて書きたかったのですが、HLSで使うMPEG-TSへのトランスマックス処理だけで、非常に長くなってしまいました。 このため、FLVからMPEG-TSへのトランスマックス単体で記事にしたという次第です。 トランスマックスについての基礎知識は、以前…
6ヶ月前

AWS Summit Japan 2025 に現地参加してきました!
PLAY DEVELOPERS BLOG
2025年6月25,26日は AWS Summit Japan 2025 の開催日。前日に台風が接近したので心配でしたが無事に開催され、私も幕張現地まで出向いて2日間参加しました。クラウドベースのコンタクトセンターを構築できる Amazon Connect は、日本国内では東京リージョンでのみ提供されてましたが、大阪リージョンでも近日中に提供されると発表されました。加えて Amazon Connect Global Resiliency に対応するため、日本国内でのマルチリージョン構成が可能になります。申し込みは同日6月25日に開始しました。日本における生成 AI 技術の実用化を支援するプログラムとして「AWS ジャパン生成 AI 実用化推進プログラム」があります。今回、経済産業省と NEDO主催の懸賞金型プロジェクト「GENIAC-PRIZE」への応募者を支援するプランと、Agentic AI実用化への取り組みを総合的に支援するプランの追加が発表されました。生成AIの「Claude」を展開している Anthropic 社が、日本オフィスを今年の秋に開設することを発表しました。アジア太平洋地域で初の拠点となります。
6ヶ月前