Gunosy Tech Blog

Gunosy Tech Blogは株式会社Gunosyのエンジニアが知見を共有する技術ブログです。

AWS

Gunosy のデータ活用を支える統合データ基盤 Baikal の話

はじめに Baikal について Baikal を支える技術と工夫 AWS アカウント Terraform ワークフロー基盤 Athena Lake Formation アーキテクチャ Extract & Load データ生成元 AWS アカウントにある RDS からデータ抽出 データ生成元 AWS アカウントにある DynamoD…

10倍スパイクの速報時に耐えうるAPIのスケーリングの仕組み

広告技術部のUT@mocyutoです Gunosyではニュース記事を配信運用するメディア部門とアプリ上などに広告を配信運用する広告部門があります。 (本記事では「メディア」とはグノシーやニュースパスなどのサービスを指し、「広告」はそのメディアに出す広告を指…

広告配信用の画像変換・キャッシュ配信サービスを作った話

Gunosyでネットワーク広告系のプロダクトを扱っているeastです。今回は、弊社アドネットワークで配信されるクリエイティブ画像の画像変換・キャッシュ配信サービスを構築した話をします。 経緯 今までは無駄に高品質な画像を配信していた 最新の画像フォーマ…

Fitbitのカスタムレポートを作成してLINEに通知する

本記事は、Gunosy Advent Calendar 2020 21日目の記事です。 昨日の記事はUT@mocyuto さんの「既存システムをkubernetesに移行して大きくコストカットした話」でした。 はじめに 必要なもの Fitbitのデータを取得するためのトークンを発行する LINE Notifyの…

既存システムをkubernetesに移行して大きくコストカットした話

この記事は Gunosy Advent Calendar 2020 の 20日目の記事です。 広告技術部のUT @mocyuto です。 チームの話 移行への決断 実際の移行 移行先のアーキテクチャ 移行の際ハマったところ 各種新規機能投入 移行後のコスト推移 まとめ 今回は既存システムをイ…

Amazon AthenaのPartition Projectionを使ったALB Access Logの実例 (w/ terraform & glue catalog)

こんにちは、グノシー広告技術部、Adnwチームでマネージャーをやっているサンドバーグです! この記事は Gunosy Advent Calendar 2020 18日目の物となります。 昨日はsyouitさんの変更に強いリスト面とUICollectionViewの話でした。 内容としては弊社のiOSア…

TerraformでLaunch Templateを使ったManaged Node Groupを導入する

この記事はGunosy Advent Calendar 2020の9日目の記事です。 前回の記事は大関さんの「ゼロから始めるEKS事始め(後編)」でした。 EKS関連の内容が続きますが、仕込みじゃありません! tech.gunosy.io はじめに Managed Node GroupでLaunch Templateを使う …

ゼロから始めるEKS事始め(後編)

本記事は、Gunosy Advent Calendar 2020 8日目の記事です。 前回の続きとなります。 tech.gunosy.io 今回は後編として、実際にEKSクラスター構築の途中からアプリをデプロイする環境を整える流れをご案内し、最後に運用管理フェーズで必要となるであろうオス…

ゼロから始めるEKS事始め(前編)

本記事は、Gunosy Advent Calendar 2020 7日目の記事です。 前回は、しゅんけー君の「その実験、再現できますか?pyenvとpoetryによる “そんなに頑張らない” 再現可能な実験環境構築」でした data.gunosy.io はじめに 前提条件 目指すクラスター像 使用する…

AWS Node Termination Handlerの新機能について

はじめに こんにちは。SRE部の板谷(@SItaya5)です。 Gunosyでは様々なプロダクトでEKS(Amazon Elastic Kubernetes Service)を運用しています。 Worker Nodeはスポットインスタンスを含めたEC2をASG(Auto Scaling Groups)で管理しています。 そのため、インス…

秒間3万リクエストをkubernetesでさばく

こんにちは!スタンディングデスクを導入して快適な開発環境と運動不足の両方を解消できるようになったのではと感じている、広告技術部のUT@mocyutoです。 今回は半年ほどEKSを運用して秒間3万リクエストのトラフィックをさばくほどになりました。 秒間3万は…

ECSのログ管理にFirelensを導入してみた

はじめに こんにちは。SRE部の板谷(@SItaya5)です。 Gunosyでは様々なプロダクトでECS(Amazon Elastic Container Service)を使用してタスクを実行しています。 ECSの起動タイプにはEC2とFargateの2種類がありますが、どちらのタイプも混在しています。 ログ…

AppSync + Nuxt.js(SSR)によるリアルタイム野球詳細ページについて

この記事は Gunosy Advent Calendar 2019 の8日目の記事です。なお、昨日は id: tomoko_tsubasa さんの 新米Gopherとしてこの1年やってきたこと - Gunosy Tech Blogでした。 はじめに こんにちは。グノシー事業部でサーバーサイドを担当している吉澤(azihso…

オンラインサービスをECS on Spot Instanceで構築&運用した

広告技術部のUT(@mocyuto)です。 最近またポケモンGOをちょっとやり始めてしまいました。 今回はオンラインの広告サービスをSpotInstanceを利用したECSで構築し、2ヶ月ほど運用した話を紹介したいと思います。 はじめに アーキテクチャ設計 広告配信 ログ設…

AWS Neptuneを使ってニュースパスのコメント機能をGraphDBで実装・運用する方法

こんにちは。ニュースパスのサーバーサイドエンジニアをしているmanoです。 昨年末から、ニュースパスで記事にコメントができるようになりました。 そのコメントデータを、AWS Neptuneを使ってグラフ構造で保持しています。 今回は、その実装・運用について…

EC2上のPythonバッチをECSのDigdagに置き換えた話

広告技術部のUT@mocyutoです。 ついに桜が開花し、やっと春の訪れを感じはじめましたね。 外で気持ちよく飲みたい季節になってきました。 はじめに システム概要 なぜ移行するのか Celeryをやめたい LevelDBをやめたい 移行計画 アーキテクチャ ECS Athena C…

まだログイン認証で消耗してるの? ~ALBで簡単認証機構~

こんにちは!広告技術部のUT@mocyutoです! 最近はスマブラでなんのキャラを使おうか迷っています この記事はGunosy Advent Calender 19日目の記事です。 昨日の記事は@mathetakeのpeer-to-peerはGoogleの夢を見るかでした。 はじめに OIDC ALBの認証機能 一…

サーバーレスプッシュ管理画面のコンセプト【グノスポ連載第六回】

はじめに こんにちは。グノシー事業部でサーバーサイドの開発を担当している ふそやん (@azihsoyn) | Twitterです。 こちらは Gunosy Advent Calendar 2018 9日目の記事です。なお、昨日の記事は oota3 さんの firecrackerの中身をのぞいてみた - Gunosy Tec…

AWS re:Invent2018に参加してきました!

はじめに こんにちは。広告技術部のUTことmocyutoです。 もうすぐスマブラが出るので最近ずっとソワソワしています。 タイトルの通り、re:Inventに参加してきました! 今年は私とSREのmgiの二人で参加してきました。 会社から参加させてもらえるのはありがた…

AppSyncベースのフルサーバーレスアーキテクチャ【グノスポ連載第四回】

はじめに サーバーレスにした動機 AppSyncベースでいくと決めたこと リソースが限られていたこと 新しい技術に投資しておきたかった 実際のアーキテクチャ Step Functionsについて サーバーサイドkotlinについて 所感 良かった点 課題 おわりに はじめに グ…

広告技術部合宿行ってきました Part. 1

広告技術部は8月末に三浦海岸のマホロバマインズ三浦に2泊3日で開発合宿にいきました! 今回のブログはアドネットワークチーム(以下ADNWチーム)の紹介です!今回ADNWチームは二班に別れ、それぞれ配信システムの改善と管理画面の改良に着手しました。 配信側…

マルチクラウド環境のためのGoパッケージ、Go Cloudを使ってみた

こんにちは、メディア事業本部のエンジニアの@__timakin__ です。 僕が好きなGo言語は、先日バージョン1.11のリリースパーティも開かれ、wasmサポートやModules機能など、結構目新しさのある機能が足されることになりました。 で、その最新のGo界隈の話題の…

ライブストリーミング時に必要なGoのAPIの番組キャッシュ機構

こんにちは。新規事業開発室、LUCRA開発チームの高橋(@__timakin__)です。 現在LUCRAでは、ライブ番組の放送を行なっております。 prtimes.jp ライブストリーミングというのは無尽蔵に改善事項が生まれるタスク生成器のような開発分野の一つでありますが、…

re:invent必須アイテム gunosy.fm #7 #gunosyfm

かとうです。しばらくぶりのgunosy.fmです。大変お待たせしました。 第7回目はあいぼうさん(@aibou)とAWS re:Invent 2017について話しました。 ポッドキャストでは会場の様子に加え、今後日本から参加される方にも参考になるre:Invent期間中の過ごし方につ…