Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

Akatsuki Hackers Labは株式会社アカツキが運営しています。

技術

技術に関する記事です

AWS Device Farm の adb プロセスを Airtest に認識してもらうための方法

Akatsuki Games Advent Calendar 2023 10日目の記事です。この記事では、Airtest をアップデートした際に adb プロセス起因で AWS Device Farm で動作しなくなったため、その原因と解決策を紹介します。

Redash を GCP の Workload Identity 連携に対応させた話

この記事は Akatsuki Games Advent Calendar 2023 の6日目の記事です。昨日はShuさんの Patch Your EC2 Instances Automatically using Systems Manager and Terraform でした。偶々ですが今日もある意味でセキュリティ運用を楽にするお話です。 Redash につ…

S3 ExportされたAuroraのデータをAWS Glueを使ってDBに書き戻す

Amazon AuroraのS3エクスポート機能 AuroraのS3エクスポート機能は、DBクラスターの現在のデータやスナップショットのデータをS3にApache Parquet形式で出力する機能です。 Apache Parquet形式は、スキーマ情報を内包している・列志向で分析用途にも適してい…

GitHub の merge queue で 「マージ待ち」を解消した話

こんにちは。 株式会社アカツキゲームスで ATLAS というチームに所属してゲーム内通貨管理基盤の開発及び運用を行っています、なかひこくん (@takanakahiko) です。 最近バイクを買いました。 私の担当するゲーム内通貨管理基盤の開発現場では、「マージ待ち…

AWS上の fluentd から BigQuery への認証に Workload Identity を利用する

この記事では、AWS の EC2 や ECS 上で動作する fluentd から Workload Identity を利用してBigQueryにログを送る方法を紹介します。 背景 AWS から BigQuery にアクセスする際、従来はサービスアカウントキーを利用して認証を行なっていました。しかし、サ…

cocos2dx 3.17でASTCフォーマット使ってみた

summary { cursor: pointer; } こんにちは! Suです。この記事は Akatsuki Advent Calendar 2022 24日目の記事です。昨日はいたみんさんの Jenkins Log Parser Plugin の話でした。色つけてログがみやすくなります。うちのプロジェクトにも導入したいですね…

Fast DDLを使った高速なmigrationを実施してみた話

この記事は Akatsuki Games Advent Calendar 2022 の22日目の記事です。昨日はKazuma Sakamotoさんの「UE5でMMDを踊らせるぞ!」でした。こうした興味などでやってみたいことを実験してみてブログまで書くのは大事ですね! はじめに はじめまして、アカツキ…

AWS Device Farm を使って Airtest を実行するときのフローとは

ソフトウェアテスト Advent Calendar 2022 14日目の記事です。この記事では、Airtest と AWS Device Farm を用いた自動テストの実行フローと、実行時に必要なパラメータ設定タイミングについてまとめています。

GitHub Actions でコミットの status checks を取る

この記事は Akatsuki Advent Calendar 2022 の7日目の記事です。 adventar.org 昨日は g_garden さんの GAS で 「slack に雑談お題投稿君」を作る でした。リモートワーク下で雑談を自然に作り出すことの難しさは日々感じます。技術で解決できるといいですね…

Airtest で CLI, IDE や AWS Device Farm, Local など様々なテスト実行手段、環境があったとしても楽に自動テストを実行する方法

Akatsuki Games Advent Calendar 2022 5日目の記事です。この記事では、Airtest の IDE, CLI や AWS Device Farm といった様々なテスト実行手段、環境が存在したとしても、全環境で「同一の自動テストスクリプトを実行する」ための取り組みを紹介します。

脆弱性診断とiOSアプリの再署名

セキュリティエンジニアの小竹(aka tkmru)です。iOSアプリを診断する際に行う再署名について今回は解説していきたいと思います。 このエントリーはAkatsuki Games Advent Calendar 2022の1日目の記事です。 iOS、iPadOSには署名という概念があります。 アプ…

AWS Device Farm で Airtest を動かす方法

AWS Device Farmとは? https://docs.aws.amazon.com/ja_jp/devicefarm/latest/developerguide/welcome.html Device Farm は、アマゾン ウェブ サービス (AWS) によりホストされている実際の物理的な電話やタブレットで、Android や iOS、およびウェブアプリ…

GCPのサービスアカウントキーなしでgcloudやbqコマンドをAWSから利用してみた

本記事は Akatsuki Advent Calendar 2021の9日目です。 前回は ぐんそう さんの 非エンジニアのためのGit/GitHub講座 でした。 概要 この記事では以下の内容について書きます。 GCPのWorkload Identity連携を利用して、AWSのEC2インスタンスからサービスアカ…

Rubyへの累計コミット数18,000以上。アカツキ所属のパッチモンスター中田さんに機能の開発秘話を聞いた

直感的な文法や生産性の高さから、世界中の人々に愛されるオブジェクト指向スクリプト言語Ruby。この言語には継続的に新しい機能や文法が追加されており、利便性が向上し続けています。コミッターの方々による日々の努力が、Rubyの改善を支えているのです。…

CloudFormationでAuroraのMySQL5.7インプレースアップグレードをする際のハマりポイント&対応方法

Amazon Aurora MySQL のインプレースアップグレード機能 つい先日、Amazon Aurora にて、MySQL 5.6互換のバージョン1.xから、MySQL 5.7互換のバージョン2.xへインプレースアップデートが可能になりました。 Amazon Aurora が MySQL 5.6 から 5.7 へのインプ…

モバイルで動くShaderでの流体表現

この記事は Akatsuki Advent Calendar 2020の25日目の記事です.前回の記事は脆弱性診断時のAndroidのプロキシ設定を行うコマンドラインツールを作った話+その他内製ツールの紹介でした。 はじめに 実際の動画 実装 概要:ケーキの柄が変わってるだけ 液体の…

脆弱性診断時のAndroidのプロキシ設定を行うコマンドラインツールを作った話+その他内製ツールの紹介

こんにちは、セキュリティエンジニアの小竹 泰一(aka tkmru)です。 アカツキでは、Webアプリケーション、ゲームアプリに対する脆弱性診断や社内ネットワークに対するペネトレーションテスト、ツール開発/検証などを担当しています。 今日は、先日作成したAnd…

Ruby on Rails 6.1 の水平シャーディング対応 & Octopusからの移行事例

この記事は Akatsuki Advent Calendar 2020 の20日目の記事です。 はじめに ゲームサーバでは大量のユーザーデータなどを取り扱うため、データベースの負荷分散のために水平シャーディング(水平分割)が行われることがあります。 アカツキでも、これまで Ruby…

1人開発のコードにオニオンアーキテクチャを導入した経験談

はじめに この記事は Akatsuki Advent Calendar 2020 の 16 日目の記事です。 s-capybara です。普段は Elixir でモバイルゲームサーバーの機能開発をしていることが多いですが、時々 Go でツール開発も行っています。ほぼ1人で開発していてコードベースを自…

Vim で外部から情報を受ける

この記事は Akatsuki Advent Calendar 2020 の 15 日目の記事です。 thinca です。普段は Vim を使って開発をしています。 Vim は外部ツールとの連携を得意としているソフトウェアで、外部コマンドの実行結果を取り込んだり、Language Server のような外部ツ…

Rails4.2のコネクションプールの実装を理解する

tl;dr Railsではコネクションプール数を設定していても、1スレッド辺り1コネクションしか持ちません。 発端 アカツキではRails + Unicorn + Nginx + MySQLの構成をAWSで運用しており、c3.4xlargeのインスタンス上で1台辺り64のUnicornワーカープロセスが実行…

急いで覚えるElixir: Enumerable編

ElixirのEnumerable 前回の記事から続いて、今回はElixirで利用する基本的な制御構文について学んでいきます。 Keyword list 多くの関数型プログラム言語では、2要素のtupleによって関連付けられたデータ構造を表現します。 Elixirでは、最初の要素がAtomで…

急いで覚えるElixir: 制御構文編

Elixirの基本制御構文 前回の記事から続いて、今回はElixirで利用する基本的な制御構文について学んでいきます。 if, unless/else 他のプログラミング言語で親しまれているif~elseは、Elixirでは以下のように記述します。

Electronで社内ツール作ってみた

はじめに アカツキにて内定者インターンをしているsachaosです。 この記事ではプロジェクトに配属され、少しの間アシスタントディレクター業を行っていた僕が、 エンジニアの端くれなりに社内ツールを作って業務プロセスの無駄な部分を自動化した話をします。

resize2fsコマンドの先でカーネルは何をしているのか

背景 前回の記事で、resize2fsコマンドがどのように1秒未満での容量拡張を実現しているかを知るために、resize2fsコマンドのソースを調査しました。その結果、メタデータの一つであるGlobal Descriptor Tables(GDT)をカーネル内で更新しているからではないか…

急いで学ぶElixir#3: 演算子編

Basic Operators 前回、Elixirは四則演算があることと、整数の商や余剰を得るためにdivやremがあることを学びました。今回はElixirの基本的な演算子を、Rubyと少し比較しながら学んでいきましょう。 Elixirでは、++や--を配列に対しても使うことが出来ます。

新規事業で Elixir, Phoenix, React を使う

エンジニアリング・アドバイザーの noto です。先月末から新規事業チームのエンジニアリングについてもお手伝いすることになりました。 アカツキでは今年 (2015 年) の夏より、従来のゲーム事業の枠を超えて、教育、ヘルスケア、「働く」などの領域を対象と…

急いで学ぶElixir#02

Elixirの基本型 以下の基本型があります。 - integer : 1, 0x1F - float : 1.0 - boolean : true, false - atom (symbol) : :atom - string : "Elixir" - list : [1, 2, 3] - tuple : {1, 2, 3}

急いで学ぶElixir#01

Motivation クラスメソッドさんがDevelopers.IOにとても良い記事を投稿されていたので、Elixir版も書きたくなりました。

UnityとOculusを始めて3週間で街を走り回るゲームを作った話

はじめに アカツキは5周年を迎え、先日パーティーが開かれました。その時に展示物として披露したUnityとOculus Rift DK2を使ったゲームを作った話をしようと思います。 今回作ったものは隕石を避けながらコインを取って行ってゴールを目指す、レースゲームで…