技術
Akatsuki Games Advent Calendar 3日目の記事です。 AnimationMixerPlayableとは 早い話がAnimationControllerをスクリプトベースで作るAPIの一つです。 AnimationControllerはノーコードで設計可能なステートマシンであり、グラフベースで記述できる何やら…
本記事は Akatsuki Games Advent Calendar の2日目の記事です。 Elixir の Google Cloud サービスアカウント認証 アカツキゲームスの一部のゲームタイトルでは Elixir をサーバー開発言語として利用しています。BigQuery 等のサービスを利用する際、Google C…
Akatsuki Games Advent Calendar 2023 10日目の記事です。この記事では、Airtest をアップデートした際に adb プロセス起因で AWS Device Farm で動作しなくなったため、その原因と解決策を紹介します。
この記事は Akatsuki Games Advent Calendar 2023 の6日目の記事です。昨日はShuさんの Patch Your EC2 Instances Automatically using Systems Manager and Terraform でした。偶々ですが今日もある意味でセキュリティ運用を楽にするお話です。 Redash につ…
Amazon AuroraのS3エクスポート機能 AuroraのS3エクスポート機能は、DBクラスターの現在のデータやスナップショットのデータをS3にApache Parquet形式で出力する機能です。 Apache Parquet形式は、スキーマ情報を内包している・列志向で分析用途にも適してい…
こんにちは。 株式会社アカツキゲームスで ATLAS というチームに所属してゲーム内通貨管理基盤の開発及び運用を行っています、なかひこくん (@takanakahiko) です。 最近バイクを買いました。 私の担当するゲーム内通貨管理基盤の開発現場では、「マージ待ち…
この記事では、AWS の EC2 や ECS 上で動作する fluentd から Workload Identity を利用してBigQueryにログを送る方法を紹介します。 背景 AWS から BigQuery にアクセスする際、従来はサービスアカウントキーを利用して認証を行なっていました。しかし、サ…
summary { cursor: pointer; } こんにちは! Suです。この記事は Akatsuki Advent Calendar 2022 24日目の記事です。昨日はいたみんさんの Jenkins Log Parser Plugin の話でした。色つけてログがみやすくなります。うちのプロジェクトにも導入したいですね…
この記事は Akatsuki Games Advent Calendar 2022 の22日目の記事です。昨日はKazuma Sakamotoさんの「UE5でMMDを踊らせるぞ!」でした。こうした興味などでやってみたいことを実験してみてブログまで書くのは大事ですね! はじめに はじめまして、アカツキ…
ソフトウェアテスト Advent Calendar 2022 14日目の記事です。この記事では、Airtest と AWS Device Farm を用いた自動テストの実行フローと、実行時に必要なパラメータ設定タイミングについてまとめています。
この記事は Akatsuki Advent Calendar 2022 の7日目の記事です。 adventar.org 昨日は g_garden さんの GAS で 「slack に雑談お題投稿君」を作る でした。リモートワーク下で雑談を自然に作り出すことの難しさは日々感じます。技術で解決できるといいですね…
Akatsuki Games Advent Calendar 2022 5日目の記事です。この記事では、Airtest の IDE, CLI や AWS Device Farm といった様々なテスト実行手段、環境が存在したとしても、全環境で「同一の自動テストスクリプトを実行する」ための取り組みを紹介します。
セキュリティエンジニアの小竹(aka tkmru)です。iOSアプリを診断する際に行う再署名について今回は解説していきたいと思います。 このエントリーはAkatsuki Games Advent Calendar 2022の1日目の記事です。 iOS、iPadOSには署名という概念があります。 アプ…
AWS Device Farmとは? https://docs.aws.amazon.com/ja_jp/devicefarm/latest/developerguide/welcome.html Device Farm は、アマゾン ウェブ サービス (AWS) によりホストされている実際の物理的な電話やタブレットで、Android や iOS、およびウェブアプリ…
本記事は Akatsuki Advent Calendar 2021の9日目です。 前回は ぐんそう さんの 非エンジニアのためのGit/GitHub講座 でした。 概要 この記事では以下の内容について書きます。 GCPのWorkload Identity連携を利用して、AWSのEC2インスタンスからサービスアカ…
直感的な文法や生産性の高さから、世界中の人々に愛されるオブジェクト指向スクリプト言語Ruby。この言語には継続的に新しい機能や文法が追加されており、利便性が向上し続けています。コミッターの方々による日々の努力が、Rubyの改善を支えているのです。…
Amazon Aurora MySQL のインプレースアップグレード機能 つい先日、Amazon Aurora にて、MySQL 5.6互換のバージョン1.xから、MySQL 5.7互換のバージョン2.xへインプレースアップデートが可能になりました。 Amazon Aurora が MySQL 5.6 から 5.7 へのインプ…
この記事は Akatsuki Advent Calendar 2020の25日目の記事です.前回の記事は脆弱性診断時のAndroidのプロキシ設定を行うコマンドラインツールを作った話+その他内製ツールの紹介でした。 はじめに 実際の動画 実装 概要:ケーキの柄が変わってるだけ 液体の…
こんにちは、セキュリティエンジニアの小竹 泰一(aka tkmru)です。 アカツキでは、Webアプリケーション、ゲームアプリに対する脆弱性診断や社内ネットワークに対するペネトレーションテスト、ツール開発/検証などを担当しています。 今日は、先日作成したAnd…
この記事は Akatsuki Advent Calendar 2020 の20日目の記事です。 はじめに ゲームサーバでは大量のユーザーデータなどを取り扱うため、データベースの負荷分散のために水平シャーディング(水平分割)が行われることがあります。 アカツキでも、これまで Ruby…
はじめに この記事は Akatsuki Advent Calendar 2020 の 16 日目の記事です。 s-capybara です。普段は Elixir でモバイルゲームサーバーの機能開発をしていることが多いですが、時々 Go でツール開発も行っています。ほぼ1人で開発していてコードベースを自…
この記事は Akatsuki Advent Calendar 2020 の 15 日目の記事です。 thinca です。普段は Vim を使って開発をしています。 Vim は外部ツールとの連携を得意としているソフトウェアで、外部コマンドの実行結果を取り込んだり、Language Server のような外部ツ…
アカツキではElixirを使ってゲームのAPIサーバを開発・運用しています。その性能を引き出すためには、やはりアプリケーションのパフォーマンスチューニングは不可欠です。そこで今回は、インフラの監視に利用していたDatadogにAPMも統合できることを期待して…
tl;dr Railsではコネクションプール数を設定していても、1スレッド辺り1コネクションしか持ちません。 発端 アカツキではRails + Unicorn + Nginx + MySQLの構成をAWSで運用しており、c3.4xlargeのインスタンス上で1台辺り64のUnicornワーカープロセスが実行…
ElixirのEnumerable 前回の記事から続いて、今回はElixirで利用する基本的な制御構文について学んでいきます。 Keyword list 多くの関数型プログラム言語では、2要素のtupleによって関連付けられたデータ構造を表現します。 Elixirでは、最初の要素がAtomで…
Elixirの基本制御構文 前回の記事から続いて、今回はElixirで利用する基本的な制御構文について学んでいきます。 if, unless/else 他のプログラミング言語で親しまれているif~elseは、Elixirでは以下のように記述します。
はじめに アカツキにて内定者インターンをしているsachaosです。 この記事ではプロジェクトに配属され、少しの間アシスタントディレクター業を行っていた僕が、 エンジニアの端くれなりに社内ツールを作って業務プロセスの無駄な部分を自動化した話をします。
背景 前回の記事で、resize2fsコマンドがどのように1秒未満での容量拡張を実現しているかを知るために、resize2fsコマンドのソースを調査しました。その結果、メタデータの一つであるGlobal Descriptor Tables(GDT)をカーネル内で更新しているからではないか…
Basic Operators 前回、Elixirは四則演算があることと、整数の商や余剰を得るためにdivやremがあることを学びました。今回はElixirの基本的な演算子を、Rubyと少し比較しながら学んでいきましょう。 Elixirでは、++や--を配列に対しても使うことが出来ます。
エンジニアリング・アドバイザーの noto です。先月末から新規事業チームのエンジニアリングについてもお手伝いすることになりました。 アカツキでは今年 (2015 年) の夏より、従来のゲーム事業の枠を超えて、教育、ヘルスケア、「働く」などの領域を対象と…