タグ

ブックマーク / labs.gree.jp (49)

  • Deep Learning を用いた画像識別モデルの導入 | GREE Engineering

    背景 僕の開発担当しているチームでは、プロダクト( SNS、Web ゲーム等 )におけるユーザの任意投稿をオペレータによって目視で監査し、サービス運営上、不適切な投稿の検知と削除を行っています。 しかし、ユーザ投稿すべてを目視で監査するのはオペレータの負荷が高いため、不適切と思われる投稿をシステムで選別した上で、オペレータの目視監査に回しています。 ここで、具体的に不適切な投稿とは 異性との出会いを希望・誘導する投稿(青少年の健全な育成) 個人情報を掲載する行為(個人情報保護) わいせつ、およびグロテスクな内容(サービスクオリティ維持) 等 グリーが禁止している行為を指します。 上記、システムの精度向上が僕らチームの目標となっています。中でも画像付きの投稿はシステムによる選別が難しく、大量に目視監査に回すことでサービスのクオリティを維持しているという課題がありました。 そこで今回、ユーザの

    Deep Learning を用いた画像識別モデルの導入 | GREE Engineering
  • Subiamを使いAWSのIAM管理をコードベースでおこなう | GREE Engineering

    矢口です。 みなさんはAWSのIAMをどのように管理されていますか? グリーでは色々な要件からMiamというツールをforkして Subiam というツールを開発し利用しはじめました。 Subiamは既存のAWSアカウントのIAM運用を阻害せずにコードベースで安全なIAM管理を始めることのできるツールです。 https://github.com/gree/subiam 特徴 コードでIAMを管理できる 差分を自動検出して適用 IAM全体ではなく任意の範囲だけを切り取って管理でき、システム全体に影響を与えないよう配慮されている dryrunできる 現在の状態をユーザーが管理し保存しておく必要がない 複数AWSアカウントで扱いやすいようRole Nameなどを自分で定義でき共通にできる 既存ツールとの比較 ツールの優劣を示すものではなく、自分たちに必要であった要件についてのみ比較しています。

    Subiamを使いAWSのIAM管理をコードベースでおこなう | GREE Engineering
  • Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering

    概要 AWS ECS でマルチプレイゲーム用インスタンスの管理すると限りなく最強。 はじめに リアルタイム・マルチプレイゲームを作る時、まず考えられることは、あるプレイヤーの行動や状態が他のプレイヤーに伝わることではないかと思われます。しかし、スマートフォンアプリは不安定であったり、複数端末同士で(基地局やバックボーンを介さずに)物理的に直接接続することは出来ませんし、理論的にできたとしても、だいたい開発が進んでいくうちに排他制御の問題などで炎上、もしくはとん挫してしまいます。軽い気持ちでマルチスレッド処理をおこない事故る現象と全くおなじです。 もっとも簡単な解決方法としてはマルチスレッド処理のときようにクリティカルセクションを設けることです。ようはサーバを用意してそこで処理すれば、比較的容易に一意な結果が得られますし、接続に関する問題も起こりにくくなります。 長くなるので → http:

    Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering
  • AWS EC2 での最強の Public IP 取得方法 | GREE Engineering

    概要 AWS EC2 インスタンスの Public IP は起動毎に変わってしまい、 ssh や curl コマンドに与えるアドレスを毎回確認するのに困っていませんか? 特に常時起動しない検証や開発のための環境、 Auto Scaling に依存した環境と相性が悪いと思われます。 よくある手法1、EIP を付与する。 しかし EIP はインスタンス起動してない間に費用がかかり、頻繁に Stop したり新規追加するのに向いていません。 よくある手法2、 Route53 を利用する。 Route53 にインスタンスと対照になる名前を与え、 Lambda 等で定期的に更新すれば IP アドレスを意識せずに済みます。 しかし Public Hosted Zone の費用が掛かってしまいます。 Lambda 更新間隔や TTL でのタイムラグもあります。 よくある手法3、 AWS CLI を ssh

    AWS EC2 での最強の Public IP 取得方法 | GREE Engineering
  • DC内通信のHTTP/2化を検討する | GREE Engineering

    こんにちは、インフラストラクチャ部の後藤です。 懲りずにHTTP/2の記事です。 HTTP/2を実サービスに投入するのには様々な障壁があり、議論が足りてない部分だと感じています。 サイトのHTTPS化 TLS ALPN, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 サポート モニタリング・監視 Dependency Based PriorityとRUM コネクションの生存時間が長く、運用上のDNSを用いたサーバ切り替えと相性が悪い(GOAWAY出せるものもあるが) ELBを使用している場合はTCPで利用する必要がある そもそもL7ネットワーク機器が対応していないという場合もあるかとおもいます。 そこで、今回は比較的容易なDC内のHTTP通信をHTTP/2化することを考えます。 DC内HTTP通信のHTTP/2化 DC内でサーバ間のHTTP/2通信であれば、h

    DC内通信のHTTP/2化を検討する | GREE Engineering
  • 泥臭いサーバ運用自動化の話 | GREE Engineering

    こんにちは、North America事業部のLiang Fanです。このエントリーは GREE Advent Calendar 2015  10日目の記事です。 日は、以前所属していたインフラストラクチャ部のサーバ運用と自動化の話を少しご紹介したいと思います。 よろしくお願い致します。 はじめに 運用自動化と聞いて、みなさんは頭の中に何を浮かべますか?仮想化技術(docker、VM)、構成管理ツール(chef、puppet)やクラウドサービス(AWSGoogle Cloud Platform)などの答えがたくさん出てくるかもしれません。日はそれらの技術を使って、かっこいい運用自動化ができたという話ではなく、レガシー環境のサーバ運用を少しでも楽にするための泥臭い自動化の話を紹介したいと思います。 グリーのレガシー環境 レガシー環境と言っても、もう歩けない80歳のおじいさんではなく、

    泥臭いサーバ運用自動化の話 | GREE Engineering
  • DynamoDBを使ったKPI保存システム | GREE Engineering

    こんにちは!データエンジニアリングチームの長谷川と田畠です。 グリーのデータ分析基盤を良くする仕事をしています。 これはGREE Advent Calendar 2015の6日目の記事です。昨日のRobinさんの記事はVR開発に取り組んだことがあるからこそ書ける記事で、みなさんにとっても新鮮だったのではないでしょうか? 今日はゲームから少し離れて、KPIダッシュボードのバックエンドをオンプレミスからAWSに移行した話をしたいと思います。最後までお付き合いよろしくお願いします。 はじめに KPI分析を定常的に行うことは、プロダクトの改善のために非常に重要であり、グリーにおいても多くのプロダクトがKPIを閲覧/分析するためのシステムを利用しています。 社内の分析環境では、KPIのデータは時系列データベースに保存されており、内製のグラフ描画ツールにアクセスすることでグラフとして閲覧することができ

    DynamoDBを使ったKPI保存システム | GREE Engineering
  • AWS のお得な機能だけでネイティブゲームサーバをつくる | GREE Engineering

    昨今何かと話題に挙がってきた AWS LambdaAWS DynamoDB を活用して格安で堅牢、高性能なゲームサーバを作ります。 既存システムの苦労をもとに、サーバの開発や運用を頑張らずにすむための仕組みとネイティブアプリからの AWS Lambda の利用方法を簡単に紹介します。 サーバが良くわからんという、ネイティブゲーム、ネイティブアプリエンジニアにオススメです。 ※当内容は多分に個人主観を含んでおり、時事的な要素も含まれています。 ※検索して十分な資料があると考えられるツールやライブラリの利用方法等は省略しています。 おさらい まずは既存のゲームサーバの構成を初歩からおさらいしてみましょう。 簡単にサービスする方法としてアプリからのリクエストを受ける HTTP のサーバと利用者の情報を格納しておくデータベースが考えられます。しかし、すぐに思いつくだけでもいくつかの問題があり

    AWS のお得な機能だけでネイティブゲームサーバをつくる | GREE Engineering
  • コンテナ技術に関する社内勉強会を主催してみた話 | GREE Engineering

    こんにちは、開発統括部インフラストラクチャ部の @foostan です。 今回は私が所属している社内コミュニティ(Container/Docker)で勉強会を主催した話をご紹介します。 グリーで行われている勉強会について グリーではエンジニア向けの勉強会を社内外あわせて定期的に開催しており、主なラインナップは以下のようになります。 [一般公開] GREE Tech Talk (http://techtalk.labs.gree.jp/) [社内限定] Mini Tech Talk (http://labs.gree.jp/blog/category/mini-tech-talk/) [社内限定] Tech Talk [社内限定] 各コミュニティの勉強会 * 10ぐらい 社内限定で行っている勉強会が数多く存在し、特に各コミュニティで行われている小規模な勉強会が多数あります。 なおコミュニ

    コンテナ技術に関する社内勉強会を主催してみた話 | GREE Engineering
  • AMQPによるメッセージング | GREE Engineering

    こんにちは。GREEのプラットフォーム開発部でインフラ系の仕事をしているmdoi(@m_doi)と申します。よろしくお願いします。今回は、AMQPについて簡単に紹介したいと思います。 はじめに GREEで稼働中のサーバは、日々サーバの異常ログ、自己監視結果、メール等々、大量のメッセージをやり取りしています。しかしながら、共通のメッセージングインフラが存在しないため、それぞれが独立に色々なメッセージ送信を行っています。 サーバ台数の増大に伴って、メッセージ配送の負荷が無視できないレベルになって来ると、それらのメッセージングシステムについて、個別に負荷対策を施すなど運用上様々な問題が課題が出てきます。また、メッセージの種類によっては、その配送の仕組がスケーラビリティに欠けるものとが存在し、規模の増大に対応できなくなる恐れもあります。そのため、こういうった用途に使えるスケーラブルなメッセージング

    AMQPによるメッセージング | GREE Engineering
  • 適当勝手な技術トレンド予測 (2014年末版) | GREE Engineering

    tl;dr 去年も言われたので先に書いておきます。今年は(も)そんなに有用なエントリでもなく、脊髄反射で「1年後こんな感じかなー」という予測を、思いつきなテーマでつらつら書いてるだけです。 きっと1年後には、「あー外してるわー」とかとか自分で振り返れるので楽しそうですよねー、というのが主な目的なので、あんまりまじめに受け取らないでくださいなにとぞよろしくおねがいします。 はじめに (駄文且つ長め) ということで Merry Christmas! GREE Advent Calendar 25日目は、グリー株式会社でCTOをしておりますふじもとがお送りします。今年も育児休暇からオンラインゲーム開発、OpenStackまで、多種多様な24のエントリーがある中で、最後のエントリーをどんな内容にしたものか、と悩んでいたらはや12月も23日になってしまいまして、こんな素敵な冬晴れの日 (2014/1

    適当勝手な技術トレンド予測 (2014年末版) | GREE Engineering
  • グリーを支える通知システム | GREE Engineering

    はじめに このエントリは GREE Advent Calendar 2014 24日目の記事です。 こんにちは、インフラストラクチャ部の高野(@takano32)です。 いつも社内では GitHub:Enterprise の運用、 デプロイの改善、 大規模なインフラを操作するためのツール作成、 レガシーなサーバのセキュリティ対策、 コミュニケーションツール向けシステムの構築・運用、 などの仕事をしています。節操がありませんね。はい。 そのうち、今回は「コミュニケーションツール向けシステムの構築・運用」のうち「グリーを支える通知システム」という題目について書きたいと思います。 グリーとリアルタイムコミュニケーションツール まず、通知システムについてお話する前に、グリーでどのようなリアルタイムコミュニケーションツールが利用されてきたかを簡単に説明したいと思います。 リアルタイムコミュニケーシ

    グリーを支える通知システム | GREE Engineering
  • オーケストレーション入門 - 多種多様化するサービスをConsulで連携させる | GREE Engineering

    こんにちは、インフラストラクチャ部のあだち(@foostan)です。 このエントリは GREE Advent Calendar 2014 19日目の記事です。昨日はにしだ(@hosi_mo)さんによるネイティブゲームクライアントの幸せな設計図でした。 今年のグリーアドベントカレンダーのテーマは「GREEを支える技術」ですが、私からは「GREEを支えるかもしれない技術」としてConsulについてご紹介します。 エントリの対象者 エントリでは、簡単なWebシステムを例にとって、Consulやその周辺ツールの基的な使い方やオーケストレーションする仕組みについて説明していきます。 なので Consulって何? Consulって便利そうだけどどうやって使うの? Consul触ってみたけど、使いどころ分からないんだけど? オーケストレーションって? と思われた方にとって良い情報源になることを期

    オーケストレーション入門 - 多種多様化するサービスをConsulで連携させる | GREE Engineering
  • Varnishでテストコードを書こう!~実践編~+Bodyを読もう! | GREE Engineering

    こんにちは、Service Reliabilityチームのいわなちゃんさん(@xcir)です。 先日、社内で行われたチューニングハッカソンではチームマイナス5500万としてVarnishをいれる簡単なお仕事をしてきました。 このエントリは GREE Advent Calendar 2014 17日目の記事です。 以前とある勉強会で 「varnishtestの使い方がよくわからない」 「別のツールを使ってテストをやっている」 という話を聞きました。 varnishはvarnishtestというテストツールがありますが、あまり利用されていないようです。 原因はいくつかあると思いますが、まずは実際のテストコード(VTC)を見てみましょう。 以下は公式のrollback機能のVTCです。 varnishtest "Test Rollback" server s1 { rxreq expect re

    Varnishでテストコードを書こう!~実践編~+Bodyを読もう! | GREE Engineering
  • 初めてのHTTP/2サーバプッシュ | GREE Engineering

    前回はWebサイトをHTTP/2に対応するためにリバースプロキシを検証した記事を書かせていただきました(HTTP2を試してみる)。 あれから幾つかの議論を経てHTTP/2の仕様も大分安定してきており、HTTP/2を実装したクライアントや実験的にHTTP/2を有効にしているサービスもあるので実際に試すことも出来ます。 そこで今回は応用編としてHTTP/2のサーバプッシュについて、その仕組と実際に試したことについて書かせていただきます。 余談ですが、 現在の仕様では "HTTP2.0" ではなく "HTTP/2" もしくは "HTTP2" が正しい名称になります。 HTTP/2概要 まず、軽くHTTP/2の概要に触れておきます。 HTTP/2は2012年の末頃より、HTTP/1のセマンティクスを維持したままパフォーマンスを改善する目的で議論が開始されました。 Googleの考案したSPDYと言

    初めてのHTTP/2サーバプッシュ | GREE Engineering
  • A year of using Presto in production | GREE Engineering

    I'm Yuyang Lan @ Data Infrastructure team. Here is the 14th entry of GREE Advent Calendar 2014. Please enjoy it! Presto (distributed SQL query engine for Big Data open sourced by Facebook) has already been used in GREE's production environment for more than 1 year, and is now an indispensable part to our Big Data toolbox. In this article, I will present you how we use presto and hope that would be

    A year of using Presto in production | GREE Engineering
  • グリーのQAチームとテストエンジニアリングへの取り組み | GREE Engineering

    こんにちは、やまもと@テスト番長です。 このエントリーは「GREE Advent Calendar 2014」13日目の記事です。 最近はグリーのQuality Assurance部のテストエンジニアリングチームを担当しています。 品質管理を行う部署のため、エンジニアブログに顔を出すのは初めてなのですが、 今回はグリーのQA体制のご紹介および、テストエンジニアリング面からの 取り組みをご紹介させて頂きたいと思います。 グリーのQA体制について QAチームは、2011年の夏にカスタマーサポートチームから派生する形で組織されました。 2012年に起きたカード複製の不具合や未成年課金の問題など、多くのトラブルを経験・奔走しつつも徐々に体制を整え、現在は社員20名・協力会社の方々も加えると50名ほどのグループとなっています。 ネイティブゲーム、ウェブゲーム、ガレージスタジオ&プラットフォーム、テス

    グリーのQAチームとテストエンジニアリングへの取り組み | GREE Engineering
  • GREEを支えるテキスト情報可視化ツールのご紹介 | GREE Engineering

    こんにちは、マーケティング部の戸井田明俊と情報システム部の亀井利光です。 Advent Calendarの7日目(今日でグリー創立10周年!)は、ユーザーの皆様から頂いたご意見・ご感想などのテキスト情報を可視化するツール、UserText Dashboard(以下UTD)を開発した話です。 背景・目的 グリーでは、ユーザーの皆様から頂いたお問い合わせなどのテキスト情報を管理しています。 それらは今までデータの種類によって別々のストレージで管理されており、管理ツールも様々なものが混在していました。 またテキスト情報とユーザー様の属性情報が紐付けられていなかったため、ユーザーセグメントごとの分析が不十分でした。 そこでユーザーの皆様のご意見・ご感想をもれなくくみとり、より多くの方に安心してご利用していただけるサービス運用の実現をめざし、テキスト情報を一括で管理できる社内BIツールを開発しました

    GREEを支えるテキスト情報可視化ツールのご紹介 | GREE Engineering
  • JMeterとJUnitとMavenで独自プロトコルサーバーの負荷テストを自動化するぞ | GREE Engineering

    こんにちは、インフラストラクチャ部の@nagaseyasuhitoです。このエントリは GREE Advent Calendar 2014 10日目の記事です。昨日はイケメンmoritaさんによる男性エンジニアリングマネージャが長期育休を取った話でした。 エンジニアブログのアカウントは2年くらい前からあるのですが、これが初エントリになります。グリーでは比較的珍しいJavaEEを始めとしたサーバーサイドJavaアプリケーションの開発、SolrやHadoopといったミドルウェアの周辺機能開発や運用などを行っています。どうぞよろしくお願いします。 最近はPvE/PvP/GvGなどユーザー同士がリアルタイムに協調プレイする際、クライアント-サーバー間を常時接続通信で行うゲームが増加しています。このような場合はHTTPのREST APIなど慣れ親しんだプロトコルでは要件を満たしきれないため、Web

    JMeterとJUnitとMavenで独自プロトコルサーバーの負荷テストを自動化するぞ | GREE Engineering
  • MySQLユーザーのためのMySQLプロトコル入門 #4 | GREE Engineering

    なんとなく気分で始めたMySQLプロトコル入門ですが今回は少し趣向をかえてbinlog formatについて書いてみたいと思います。 MySQLでのレプリケーションのメッセージ単位として使われているbinlogですが、そもそもbinlog(バイナリーログ)とはどういったものなのでしょうか?実際問題よくわからなくてもちょちょっと設定すれば素敵に動いてくれるのでわからなくても大丈夫っちゃー、大丈夫なんですがせっかく興味が湧いてしまった事ですし調べていきましょう。 http://dev.mysql.com/doc/internals/en/replication-protocol.html より引用してみます。 Replication uses binlogs to ship changes done on the master to the slave and can be written t

    MySQLユーザーのためのMySQLプロトコル入門 #4 | GREE Engineering