サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
labs.gree.jp
住まい暮らしメディアLIMIAで開発を担当している樋口(@mahiguch1)です。 LIMIAではBigQueryを使ってデータ分析を行なっています。 前回MySQLからBigQueryへのデータ転送に関する記事を書いたところ、S3にあるALBやCloudFrontのログの転送について質問を受けたため、それについて共有します。 ALBログ転送設定 ALBログのSchemaは決まっているため、以下のようにしています。 files/etc/embulk/schema/alb_access_log.json [ {"name": "protocol", "type": "string", "mode": "nullable"}, {"name": "timestamp", "type": "timestamp", "mode": "nullable"}, {"name": "elb", "ty
こんにちはインフラの後藤です。 昨年、初めてIETFにHTTPの拡張仕様 "The PRELOAD Frame Extension"を提案したので、それについて説明してみたいと思います。 仕様の提案とは そもそも「HTTPの拡張仕様を提案した」とはどういうことか簡単に補足します。 HTTPやTLSの標準化はIETFという組織で行われています。IETFへの仕様の提案は、基本的にはInternet-Draftを出すことによって行います。このInternet-Draftを出し、各ワーキンググループのメーリングリストで議論を行うのが一般的な流れです。 個人の書いたInternet-DraftはIndividual Draftと呼ばれ、誰でも出すことが出来ます。会員のような仕組みはなく、何かしらの審査もありません。適切なフォーマットで作成すればWeb上の提出フォームから提出するだけです。もちろん提案
住まい暮らしメディアLIMIAで開発を担当している樋口です。 LIMIAではBigQueryを使ってデータ分析を行なっています。 ログデータについてはFirebase Analyticsに送信したデータをBigQueryへ書き出しています。 マスタデータについてはMySQLに格納されており、それをBigQueryへ送信する必要がありました。 embulkをfargate環境で動かすことで実現したため、それについて共有します。 embulkについて embulkはデータローダです。 fluentdのバッチ版と言われており、オープンソースで開発されています。 fluentdと同じようにプラグインを導入することで、様々なデータソースに対応しています。 LIMIAでは入力をMySQL、出力をBigQueryとしています。 そのため、プラグインとして embulk-input-mysql と emb
こんにちわ。せじまです。 秋くらいから艦これ再開したので、ちょうどよいWindowsタブレットはないものかと物色しており、 Surface GO LTE Advanced(一般向け)の発売を待ちわびている今日この頃です。 はじめに はるか昔kernel 2.6 の頃、Load Average が低めに出てしまうというバグがありました。 当時、弊社では Load Average を監視項目の一つにしていたため、これには大いに困りました。 また、その頃、私は resource monitoring に力を入れていたのですが、以前 blog でも書かせていただいた通り、MySQLのサーバ一台あたり200以上のmetricを収集していたため、「多すぎてどれを見ていいかわからない」といった声が社内から上がっていました。 そういった諸々の問題を解決するため、6年くらい前、私はあれこれ思案して、新しい
美容メディアのARINEでサーバーサイドの開発を行なっているエンジニアのたばたです。 最近ARINEで使っているバッチ処理の一部をApache Airflow + AWS Fargateに移行したので、それについて紹介します。 背景 ARINEではバックエンドのフレームワークとしてRuby on Railsを採用しています。定期的に実行するバッチ処理はバッチサーバーでRakeタスクをcronに設定して処理しています。 バッチ処理はRakeタスクとして実行されることが多かったのですが、機械学習周りの処理(関連する記事の計算や、オススメのユーザーなど)を行う場合は、処理をPythonで記述しコンテナにしてECSのスケジュールタスクとして実行していました。異なる2つ環境でバッチが実行されるため、その2つの間で依存関係がある場合は実行タイミングを調整して処理を動かしてました。 依存を時間で調節して
こんにちわ、そしてメリークリスマス。データエンジニアグループの鈴木です。 前回はDialogflowを利用したチャットボット導入事例をご紹介しました。 今回は、VTuber視聴・配信アプリのREALITYのGCPデータ基盤のシステム構成や各コンポーネントの役割についてお話しします。 一つ一つのアーキテクチャの解説は少ないですが、全体のシステム構成を振り返っていくので、GCPデータ基盤を検討している方にはお役に立てる内容があるかもしれません。 (システム構築をしたのが2018/9なため、情報が古い可能性があります。) 背景 以前の記事で紹介されたとおり、今回のプロダクト環境はGCPを多く利用しています。 弊社のデータ基盤環境はオンプレやAWSで長く運用しており、その既存基盤にデータを蓄積することも勿論可能でしたが、GCPコンポーネント同士の連携のしやすさや技術検証なども兼ねて、今回はGCP
はじめまして! GREE VR Studio Lab Directorの白井博士です。 博士といってもいろいろありますが、博士(工学)ですが、(エ)=エンタメ技術かもしれません。 見開きのマンガで表現するとこんな感じの人物です。 このマンガ「創る人を創る!」の続きとして、VRエンタメ関係の研究や執筆なども行ってきましたが、研究開発を世の中にアタッチする!という「社会実装」がとても重要と決意。 2018年6月よりグリー株式会社の中の人、「GREE VR Studio LabのDirector」として日々バーチャルな研究所を運営しております。 GREE VR Studio Labでは、VR/AR/MR(これらをあわせて"XR"と呼ぶようになってきましたね)エンタメ利用のための技術開発、vTuberに関連する技術開発や品質向上、評価、他社とのコラボレーションによる未来開発、イノベーション人材の発
概要 インフラエンジニアのほりぐちです。 グリーのエンジニアとしてはおそらく最大の11名もの人数で海外カンファレンスに参加してきました。日曜に出発し翌日曜に解散するという日程で、全員が終日自由行動になり連絡も1日に1回程度という状態でした。イベントや食事でのみ合流し軽く情報交換して、またその場で自由に行動していました。個人的な英語力がほぼなくても意外と楽しめたので海外カンファレンスの参加の参考になればと思います。 日程 http://reinvent.awseventsjapan.com/agenda/ 会期は日曜~金曜までありますが、初日は登録と Midnight Madness という事前パーティーのみ、金曜日は午前中のみなのでセッションがあるのは四日半です。我々のグループは日曜夜に到着し、土曜朝に帰る日程だったので、急いで登録をすませば初日 Midnight Madness に参加し
ゲーム API の場合は利用者が多く、利用者間の依存が低いので、一人の不具合が大勢に伝わることは稀ですが、ライブ画配信では配信者の不具合がすぐに大勢に伝わってしまうため、非常に神経質に扱っています。 こういった神経質な用途は動画配信だけでなく、 MMORPG 等の一つのチャンネルやゾーンでも不具合があると大量のプレイヤーにすぐに影響が出てしまうので性質は似てます。一方でコンテナ技術を中心にした Kubernetes では長時間リクエストを処理したりオンメモリ重視のコンテンツなどのサービスは Immutable Infrastructure の文化とあまり合わないと考えられているのか、それに向いた機能は少な目です。特に Pods はホストと分離するためには大変すばらしい概念と機能ですが、長時間一つの Pods を占有し、内部の状態だけで完結させるような用途はとても難しいと感じています。 逆説
こんにちわ。せじまです。 「MySQLの開発者とコミュニケーション取るとき、なんかの役に立つかもな」と思い、渡米前に斬新な充電スタイルの前世代 Apple Pencil 買っていったので、こないだ発表された新しい iPad Pro、見なかったことにしました。 はじめに 先日開催された Oracle Open World 2018 (以下OOW)に参加してきました。(基本MySQLの人なので、MySQLのセッションしか回ってないのですが) 筆不精なんでblogめいたものはあんまり書かなかったのですが、今年は軽く触れてみます。 OOWって、 MySQL 関係の人ってわりと見た目で分かるんですよね。 MySQL以外の方はビジネスカジュアルあるいはスーツの方が多いんですが、MySQLの人は登壇者含めて、Tシャツだったりジーンズだったりする人が少なくないです。 空き時間は、会場の Moscone W
こんにちは、インフラの匠です。 先日開催された、GitHub Universeという年一で行われているGitHubの一大イベントに招待頂けたので参加してきました。 Universe自体は10/16-17の二日間ですが、前日からUniverse Birds of a FeatherというイベントがGitHub HQで開催されておりそちらにも参加させて頂きました。 Universe Birds of a Feather GitHubを利用している各社のGitHub Enterprise Adminや、リード開発者的な人が集まってそれぞれ興味のあるお題でディスカッションする場でした。 お題は複数用意されて居たのですが、弊社ではGitHub Enterpriseを全社導入済みで過去に何度か負荷で辛い思いをしていることもありHow to Scaleに参加させて頂きました。 周りを見渡すと誰もが知って
こんにちは、開発企画部の佐島です。 GREE Engineers' Bash 2018 という社内限定イベントが開催されましたので紹介させて頂きます。 GREE Engineers' Bash 2018 とは グリーグループ間の技術交流を目的としたイベントです。タイトルに Engineers とありますが、参加資格はグリーグループでエンジニアリングが好きなひと (雇用形態なんでも)ということでわりと懐の広いイベントとなりました。 LTを社内で公募し、よかった発表に参加者が投票して1-3位までを決めるというのがおおまかな流れです。 LTの模様 LTのテーマは特になく、最近つくってる、さわってる技術的な話とかを歓迎するという形で公募されました。 採択されたLTは全部で14。社内限定の発表につき内容についてこの場で触れることができませんのでタイトルと所属会社のみで内容を妄想していただければと思い
インフラの反田です。AWSやGCPのモニタリングまわりを担当しています。 GREEでは、大部分のサービスをAWSで運用していますが、一部の新しいサービスではGCPも利用しています。 AWSで運用しているサービスについては、PrometheusとCloudWatchを組み合わせてモニタリングしています。サービスごとにAWSアカウントが分けられていることもあり、AWSのマネジメントコンソールにログインしなくてもすむように、GrafanaでCloudWatchのメトリクスを確認できるようにしています。 GCPを利用するにあたって、Stackdriver Monitoringの機能を評価したところ、そのまま利用することには課題があったので、モニタリング環境の整備をしました。 やったこと GrafanaにStackdriver datasourceを作成し、Stackdriverのメトリクスを表示で
HOMEApp Engine PHP 7.2 Standard Env における Redis / Memcached / Spanner の利用方法 インフラの矢口です GAEにおいてついにPHP 7に対応したランタイムがリリースされました! gVisorを利用することにより今までよりも圧倒的に制約が減り、標準的な構成を動作させやすくなりました。また大きな懸念点であった言語処理系ランタイムの更新頻度についても改善されることがアナウンスされています。 さて、そのようなGAE PHP 7ですが、DBやキャッシュのミドルウェアまわりについてはどうなっているのでしょうか。通信周りも自由になったため任意のプロトコルで外部に接続できるようになり使用できるものはかなり増えているはずです。 しかし公式ドキュメントで記載されているDBはDatastore, Cloud SQLにとどまっています。またApp
アリネチームの平田です。毎日に憧れを、な美容メディアARINEでサーバーサイドの開発をしたりインフラ回りを見ています。 最近ARINE(https://arine.jp)はAmazon CloudFrontを通してページを配信するようにしました。主な目的はほぼ静的で、かつARINEへのアクセスの中心である記事ページをキャッシュすることでレスポンスを速くし、かつアクセスが増加した際のオリジンの負担を軽くすることです。 今回はCloudFrontを入れるまでにやったこと、入れてみての効果、そしてやってしまった失敗について書きます。 想定している読者について書いておきますと、この記事は初めてCDNの設定をした自分が振り返って書いてみている内容ですので 普段は主にサーバーサイドのアプリを書いているけど、たまにインフラも見ていて、 CDNの設定はやったことがないけどやろうとしている もしくはやったば
インフラの駒崎です。Jenkins の Pipeline スクリプトについてのお話です。 早速ですが Jenkins の Pipeline スクリプト、使われていますでしょうか。 もしかしたら以前ちょっと書いていたけどやめてしまったとか、従来の GUI 設定のほうが楽だ、となんとなく敬遠してしまっている方もいるのではないでしょうか。 私が実際そうだったのですが、最近になってやっと Jenkinsfile - Pipeline スクリプトが身近に感じられてきましたので、現状の簡単なまとめを書いてみたいと思います。少しでも似た状況の方へのヒントやきっかけになれば幸いです。 Pipeline スクリプトは難しい? 私は正直、2016年に Jenkins 2 の目玉機能として Pipeline が出た当初は、とっつきにくい…わからん…と思っておりました。Jenkins を上っ面でなんとなく使ってい
HOMEHow to build MySQL 8.0.11 on Mac (and Debug with Visual Studio Code) こんにちわ。せじまです。今回はちょうゆるふわです。 はじめに Macユーザの皆様はMySQLのソースコードを読むとき、何を使って読まれているでしょうか。 前回の記事を公開した後、 Visual Studio Code 推しの知人から「コード読むならVisual Studio ではなく、Visual Studio Codeでも良いのでは?」との指摘を受け、いろいろ試したのですが git clone しただけの MySQL のソースコードで Visual Studio Code の context-aware な IntelliSense が充分に機能しないのは、 mysqld_error.h などのヘッダが存在しないため mysqld_error.
こんにちわ。せじまです。今回の話は軽く書こうと思っていたのですが、長くなりました。まぁInnoDBの話なのでしょうがないですね。 はじめ 今回はinnodb_thread_concurrencyについてお話しようと思います。できれば、事前にInnoDB の mutex の話(入門編)を読んでいただいた方が、より深く理解していただけるのではないかと思います。 長いので、最初に五行でまとめます 現代において、ほとんどのケースでは、innodb_thread_concurrencyはデフォルトの0のままで問題ないと思います。なぜなら、最近のInnoDBはかなり良くなってきたからです。 それでもinnodb_thread_concurrencyをチューニングするとしたら、「高負荷状態になったときでもスレッド間の公平性をなるべく担保し、安定稼働させるため」と割り切って使うのが良いでしょう。 inno
こんにちわ。せじまです。さいきん、ジム用に左右独立型スポーツモデルのBluetoothイヤホン買ったのですが、あまりの快適さに、ジムに通うモチベーションが5割増しになりました。 はじめに innodb_thread_concurrency について書こうかと思ったんですが、まずはその前に MySQL の metric の話から入ったほうが良いかなぁと思ったので、今回は metric の話を書こうと思います。はじめにお断りしておきますが長くなります。 弊社では7年以上前から、 MySQLのサーバ一台あたり(OS側のも含めると)200-300 以上の metric を だいたい15秒間隔で記録しています。最近はSSDなども使ってますが、むかしはHDDにmetricを保存していました。例えばMySQLのサーバ一台分のmetric表示した画面をキャプチャすると、次のような感じになります。 ※画像は
AWS Fargate早く東京に来てくれという願いをこめて、東京で1つでも事例を増やそうと記事を書いていたら公開する前にAWS Fargateが東京に来ることが先日発表されました!めでたいです。アリネ事業部の平田です。 今日はARINEで使っていく(かもしれない) AWS Fargate を使ったRSpecの実行環境の話と、Docker Compose使っているならFargateいいかもしれませんよ、という話をします。 背景 アリネ事業部では、なりたい自分がきっと見つかる美容メディア ARINE を運用しています。 ARINEのサーバサイドはRubyで書かれており、ウェブアプリケーションフレームワークはRuby on Railsを採用し、テストにはRSpecを使っています。 テストは徐々に増えており現在テストが1000件ほどで、テストにかかる時間も徐々に長くなり、完走するのに10分以上かか
こんにちわ。せじまです。 さいきん、しばしば庭園や日帰り登山に行って風景写真を撮っているのですが、カメラで写真を撮るという行為は(中略)実行計画を考えながらSQLを書く行為に近しいことだと思いますので、エンジニアの方にはけっこうオススメです。 今日は軽めの話をさっくりさせていただこうかと思います。 はじめに 皆さんは最近のMySQLがJSON型をサポートしているのをご存知でしょうか。「なぜ正規化されていないJSONをRDBMSに格納するのですか!正規化しましょう正規化」という至極ごもっともなご意見もあるでしょうが、 MySQLは5.7からJSON型のサポートをはじめ、8.0でかなり開発が加速している印象を受けます。JSON型がネイティブでサポートされるようになったのは、MySQL5.7のRelease Candidate以降です。5.7 RCがリリースされた2015年あたりから、MySQL
※Read / Write のレスポンスタイムは大まかに計測した値のため適切な設定ができていない場合もあることをご了承ください MySQL 信頼と実績のあるRDBMS。新規タイトルの場合AWSではAurora、GCPではCloud SQLを利用することで運用の手間をある程度減らすことができる。分散システムではないため1クラスタでの書込性能には限界があり、ソーシャルゲームのように大規模なwrite処理がある用途では水平/垂直分割が必要になり、そのための設計とコーディングが煩雑になりがちである。またインスタンスのスケールアップ・ダウンで対応しきれない場合のクラスタの分割・統合のオペレーションは複雑なものになる。 スケールアップ・ダウンやnodeのメンテナンスなどでMaster nodeを切替える際には不通時間が発生してしまうため、安全のためゲーム自体をメンテナンス状態にする必要が発生する。 ※
こんにちはインフラの後藤です。 今回はTLS1.3を実環境で試してみました。 TLS1.3はTLSのメジャーバージョンアップとも言われるように、様々な改善が含まれています。 例えば、以前「TLS1.3のハンドシェイクがもう来てる」で書いたように、TLS1.3ではハンドシェイク時のパケットの往復回数が減っており、より早くコネクションを確立できます。 すでに、ブラウザや暗号ライブラリはTLS1.3に対応してきておりますので、実環境で具体的にどれくらいコネクションの確立が早くなるのか確認してみました。 TLS1.3 バージョンネゴシエーションとネゴシエーション 測定の前に今回利用したTLS1.3 draftバージョンについて補足します。 TLS1.3は draft-28 版が最新のバージョンです。こちらが文章上の修正を経て将来的にRFCとなります。 TLS1.3はファイアウォール等の中間装置の不
皆さまはじめまして、インフラの後藤です。 今回は、そろそろRFCが出る と言われているTLS1.3について簡単に見ていこうと思います。 TLS1.3はその名の通りTLSの次期バージョンです。数字上はマイナーバージョンアップですが、TLS2と呼ぶかといった議論が出るほどに大きな変更が入っています。 このTLS1.3では、多岐にわたるセキュリティの改善はもちろんのことパフォーマンスに関する改善も盛り込まれています。 例えば通信を開始する際のフルハンドシェイクは、TLS1.2と比べると実際のデータを送るまでのメッセージの往復回数が一回少なくなっています (HelloRetryRequestを送るケースもある...) さらに、一度接続したことがあり鍵を共有している相手とは初回からデータを送信する 0-RTTハンドシェイクというハンドシェイクもあります。もちろんこのデータも暗号化されています(ただし
初めまして。情報システム部の上堂薗です。 各種DaaSの中で、Amazon WorkSpacesは標準の機能として多要素認証を構成することが出来ます。Amazon WorkSpacesで多要素認証を構成するには別途RADIUSサーバーが必要となります。 各種IDaaSではオンプレミスのRADIUSサーバー・RADIUSプロキシーサーバーを用意しているので、表題にあるとおりAzure MFA Serverと連携させてみようと試みるわけですが、色々と苦労した内容について説明します。 構成手順 Azure MFA Serverが構成済みで、VPCがオンプレミスADとAzure MFA Serverへ接続出来る環境になっていることを前提とします。 AWSコンソール上で、WorkSpaces管理画面でAD Connectorをセットアップします。 一通りWorkSpaceの作成、接続を試して疎通出来
こんにちわ。鈴木です。 久しぶりの投稿です。 前回はプロダクトにおけるAI活用というお話でした。 今回は、とあるゲームの事前登録サイトにDialogflowを利用したチャットボットを導入した事例をご紹介します。 先日、発表用にまとめたスライドがあるので、お時間ある方はご覧ください。 Dialogflowについて Dialogflowは、Googleがサポートしている自然言語処理系APIサービスです。 MLベースとルールベースのハイブリットモデルで文章分類と、登録したレスポンスを返すことができます。 意図しない分類がされた場合でも、正しい正解ラベルを紐づけて再学習させることで、APIの精度をあげることができます。 他サービス検証 下記が、Dialogflow導入に至る際にサービス検証したグラフです。 ライブラリなどを利用して一からアルゴリズムを実装する「DL/MLライブラリ」 ある程度パッケ
こんにちは、応用人工知能チームの辻本です。 最近は計算リソース、データ量、アルゴリズムの改善によって簡単に精度の高いAIが利用できるようになりつつあります。しかし、現状では全てのタスクにおいてAIを利用すればいいわけでもありませんし、リソースの制限もあるため、特性を理解して上手に応用することが重要です。そこで、社内ではAI応用のための知見や環境を積み上げていく機会を増やす取り組みを行っています。 先日、取り組みの一環でゲームプレイAIのプログラミングコンテストが開催され、約20チームが参加して盛り上がりました。このコンテストで優勝したゲームプレイAIについて紹介します。 AIによるゲームプレイ動画です。 コンテスト概要 AIにアクションゲームなどのデバッグの一部を任せられるかどうか検証したいという考えもあったので、ゲームプレイAIが対象として選ばれました。ゲームをAI用に変更せずに画面情報
インフラの反田 (@mtanda) です。 GREEでは、多くのサービスをAWS環境で運用しており、それらサービスのモニタリングシステムとしてPrometheusを利用しています。 Prometheusを導入してから約2年がたち、1台のPrometheusで数百台規模のインスタンスをモニタリングするなかで、さまざまな問題に直面しました。 それら問題の原因を分析し、設定や利用の仕方を改善することで、ある程度安定して運用できるようになりました。 これらの知見が少しでもお役に立てばと思い、ここで共有いたします。 なお、対象とするPrometheusのバージョンは1.xです。Prometheus 2.0では、これら問題のほぼ全てに対して改善されています。そのため、2.0でどういった点が改善されているかを知るためにも有用だと思います。 Prometheusのストレージ実装の基礎知識 Promethe
応用人工知能チームの尾崎です。今年新卒エンジニアとして入社し、機械学習モデルの実装評価からAPIサーバの実装、コンテナを利用したプロダクトへの導入まで開発全般を担当しています。 今回はARINEで稼働中の畳み込みニューラルネットワーク (CNN) を用いた髪型・ネイル識別システムについてご紹介します。 背景 ARINEでは、おすすめのヘアスタイルやトレンドのコーディネートなど沢山の記事が公開されています。記事には数多くの写真素材が用いられていますが、これらの素材の多くは提携サイトから検索APIを提供してもらったり、提携サイト内の検索機能を用いて写真素材を探し選んでいました。しかし、一部の写真素材は自社で撮影していたり、最近ではヘアサロンやネイルサロンからも提供してもらっているため、それらの画像を検索する手段がありませんでした。 そこで今回、ライターさんが執筆に必要な写真素材を手軽に検索でき
次のページ
このページを最初にブックマークしてみませんか?
『GREE Engineer's Blog coming soon...』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く