ホーム ブログ ページ 7

2022年度オンラインゲームセグメント新卒研修を行いました!!

0

今年度からオンラインゲームセグメントの試みとして、21卒が新卒研修の計画を立て実施しておりました。新卒の同期は一生に一度の仲間のため、繋がりを大事にしてほしいという意図のもと、昨年の11月から21卒と部長陣との間で協議し、4月〜5月中旬にかけて開催いたしました。オンラインゲームセグメント初の試みとなるため、皆さんにどのようなことを行ったか&研修に至るまでの紆余曲折をここで紹介させていただきます。

MSビルの広場を使用し、研修を行いました。

第1回 サイコロ自己紹介・並べ替えゲーム・オンリーワンゲーム

・22新卒同士でサイコロの目に出たお題を答えてもらったり、自分たちの名前順に並べ替えをしてもらったり、「自分はこれは負けない」というものを紹介してもらったりしました!

第2回 好きなゲーム布教

・自分が布教したいゲームをチーム内で共有し、さらにチームで代表を決め全体で共有してもらいました。

第3回 ゲーム研究

・チームに分かれてもらい、他社様のゲームから各チーム1タイトルずつ選び、ゲームの面白さについて研究してもらいました。

第4回 アナログゲーム企画

・6チームに分かれてもらい「紙とペンで遊べるもの」というお題の元、アナログゲームの企画をしてもらいました。

第5回 アナログゲーム制作

・前回の研修時に企画したものを形にするため、道具を作成・テストプレイによるバランス調整をしてもらいました。

第6回 アナログゲーム発表・試遊会

・完成した作品を発表してもらい、その後部長陣・21卒・22新卒入り混じり、アナログゲーム試遊会を行いました。


新卒研修のプロデュースのこと

今年度は上記のような内容で新卒研修を実施致しましたが、実はこれらのコンテンツに至るまでかなり紆余曲折ありました・・・。

今回は新卒研修をプロデュースするにあたって多大なる貢献をしてただいた、21卒のSさんをお招きして色々お伺いしていきたいと思います。

こんにちは〜
新卒研修をプロデュースしてみてどうでしたか?
今年度の研修は21卒が8人、22新卒が28人と、新卒の人数が多かったので「研修どうしよう!」ってなりましたよね笑

そもそも、前回の踏襲がなく0からのスタートだったので、あせりましたね。
22新卒の人数が多かったからこそ、アナログゲームを制作して試遊会を行った際に盛り上がった感はありますね。

0から作り上げるのは大変でしたけど、やりがいはその分大きかったですね。
研修の内容については、特に右往左往しましたよね笑

新卒研修を考えている段階では「デジタルゲームの制作 or 企画書を書いてもらおう。」という案もありましたね。
でも最終的にアナログゲームを制作してもらいましたけど・・・

アナログゲーム制作になった決めてってありますか?

アナログゲームだと、0から自分たちで作ったゲームになる & それを遊ぶことによって交流が深まると思ったからですかね。
しかも、1つのものを作り上げるには全員に主体性がないとできないですし・・・

なるほど、主体性と同期の交流を増やして欲しいという思いが根底にあるんですね!

そうですね。21卒の僕たち同士があまり関わる機会が少なかったので反面教師というかなんというか・・・笑

・・・笑
Sさんが新卒研修のプロデュースを通して成長できたなという部分はありますか?

実は研修を行ったり、人前で発表するという機会が初めてだったんですよ。
スケジュール管理だったり、資料作りだったり、所謂PM作業に近いこともできたと思います。
普段の業務ではあまりそういうことをしないので、貴重な経験でした。

いつ、どこで、どんな新卒研修を行うか、本当に0から考えましたよね!
22新卒の方々だけでなく、私たち21卒の成長にも繋がったかなと思ってます! 今日はありがとうございました!

どうも。

このような経緯がありつつ、今年度の新卒研修が開催されました。


22新卒はこんなゲームを作りました

今回研修の集大成として、22新卒の方々にアナログゲームを制作してもらったので、ここで紹介したいと思います!

このゲームどうにかしたい!! by チーム:苦しい

一言ルール説明:ミッションカードのお題に対する解決策をアイテムカードを駆使して提示しよう!

手札のアイテムカードでミッションカードをクリアできるように、こじつけることがポイント
試遊会での様子

わーど大戦争 by チーム:わんこ大戦争

一言ルール説明:他の人に当てられないように、手札に書かれたワードをうまく会話に紛れ込ませろ!

「話題カード」の会話をする際に、他の人の話に耳を傾け、何の「単語カード」を所持しているか推測することがポイント
試遊会での様子

すごく地獄すごろく! by チーム:チーム名を入力してください▼

一言ルール説明:縛りカードのお題を守りながらゴールを目指せ!

ゴールを目指すことも大事だが、縛りトークで盛り上がることが楽しむポイント
試遊会での様子

つなげろ!山手線 〜始まりの原宿駅〜 by チーム:平行線

一言ルール説明:山手線の駅と駅の名所を説明してポイントGET!

山手線の駅についての知識が身につくため、他の人にも自慢できちゃうかも!
試遊会での様子

ピタフォール by チーム:トラックボール

一言ルール説明:相手が出すカードを推測するゲーム。0を出して相手をだませ!

場のカードがコールした数より大きければ勝利!できるだけ大きな数字をコールした人が他の人のカードをめくることができるので、度胸が試されます笑
試遊会での様子

かずピッタン! by チーム:2ゃんこ

一言ルール説明:お題の数とぴったりになるようにカードを出そう。相手が×0で妨害してくるかも???

×0を出されると盤面の数も0になるので、大逆転の可能性あり!
試遊会での様子

22新卒の方々に作ってもらったゲームをMSビルのカフェスペースに置かせてもらっております。説明書を作成してもらってますので、お昼休憩の際に是非MSビルの広場で遊んでみてください!

※外部への持ち出しは厳禁です。


〜22新卒の方へのメッセージ〜

同期の人たちは一生に一度しか出会えない宝です!
これから今以上に業務で忙しくなることがあるかと思いますが、同期の方々とぜひランチ等々に行って、その繋がりを大事にして欲しいです!
来年の23新卒に対する新卒研修を、22卒の方々でプロデュースすることになった場合、新卒研修の枠組みは21卒が作りましたが、ぶっ壊してもらって構わないので、今年度以上の物が開催できることを期待してます笑

〜23新卒の就活生の方へのメッセージ〜

皆さん、もしご縁がありアピリッツへ入社し、オンラインゲームセグメントへ配属されることがありましたら、22新卒の方々が新卒研修をプロデュースしてくれるかもしれません!研修を通して同期の仲を深められるようなイベントを行ってくれると思うので、ぜひお楽しみに!!!

PyScriptで線形回帰してみた

0

運動不足解消のためランニングマシンの購入を検討しています。ゲームデザイン(GD)部クライアントエンジニアの中村です。

先日PyScriptがオープンソースで公開されましたので、さっそく試してきました。

PyScriptとは

PyScriptはPythonコードをブラウザ上でJavascriptのように実行させることができるフレームワークです。Pythonでの計算処理などをHTMLエレメントへ出力できることに加え、可視化ライブラリのmatplotも利用できてしまいます。さらに機械学習ライブラリであるscikit-learnも含まれているため、ブラウザ上で手軽に機械学習を行うことができます。

ちなみにPyScriptではPyodideで利用できるライブラリがそのまま利用できるようです。そのため tensorflow を利用することはできませんでした(Pyodide Version 0.20.0)。

基本知識

導入

公式サイトにあるように、HTMLでPythonを実行するためには以下のように記述します。これだけでPythonコードのprintが実行されます。実行された結果はdiv要素を生成してその中に出力されます。

<html>
  <head>
    <title>PyScript Hello World</title>
      <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
      <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
  </head>
  <body>
    <div>!! PyScript Hello World !!</div>
    <py-script>
print('Hello PyScript')
    </py-script>
  </body>
</html>
hello_world.html結果

出力のコントロール

先ほどの例ではprintした文字列が新規に生成されたdiv要素に出力されましたが、Pythonによる計算・処理結果を特定のHTMLタグ内に出力したい場合、以下のように py-script タグに out を定義することで可能です。さらにメソッドも定義できます。

この例では now_time() メソッドで現在時刻を返し、py-scriptの最後に実行して結果をoutput-targetdiv要素に出力しています。

<py-script output="output-target">
from datetime import datetime
def now_time():
  return datetime.now().strftime("%Y-%m-%d %H:%M:%S")

now_time()
</py-script>
<div>Now Time is:</div>
<div id="output-target"></div>
hello_time.html結果

DOM操作

py-script内で定義したメソッドをHTMLのボタンで実行する場合、pys-onClick属性でメソッド名を指定します。

さらにElement()で指定したidの要素を取得でき、input要素ならそのvalueを参照できます。divpなどの要素に対してはwrite()メソッドでその要素内に文字列を出力できます。

<div class="flex">
  <input id="calc-1" class="border p-1 rounded flex" type="number">
  <div class="p-1">+</div>
  <input id="calc-2" class="border p-1 rounded" type="number">
  <div class="p-1">=</div>
  <div id="calc-result" class="p-1"></div>
  <button id="new-task-btn" class="p-1 text-white bg-green-600 rounded" type="submit" pys-onClick="run">
    Run
  </button>
</div>
<py-script>
def run(*ags, **kws):
  a = float(Element("calc-1").element.value)
  b = float(Element("calc-2").element.value)
  Element("calc-result").write(a + b)
</py-script>
hello_input.html結果

Pythonファイルの読み込み

さらにHTMLに直接の記述ではなく、別途Pythonファイルを用意して読み込ませることもできます。このあたりはJavascriptと同じ仕組みです。

<py-script src="./sample_script.py"></py-script>

機械学習ライブラリの利用

ある程度PyScriptの使い方がわかったところで、scikit-learnでの機械学習を試していきたいと思いますが、今回は非常に簡単な例として、多数のx,y座標を近似する線形回帰を記述します。

matplotの利用

まずは数値計算ライブラリのnumpyと可視化ライブラリのmatplotを利用して簡単なグラフを表示します。

numpyで100個の乱数を生成してx座標とし、一次関数に乱数を含ませてy座標とします。これをmatplotにで散布図として表示させています。pyscript.write("mpl", fig1)と記述することで指定のdiv内にmatplotの結果を出力します。

Pyodideに含まれるライブラリを利用する場合、head内にpy-envタグでライブラリ名を記述する必要があります。そうすることでpy-script内でimportすることができます。

<head>
  <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
  <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
  <py-env>
- numpy
- matplotlib
  </py-env>
</head>

<body>
  <div id="mpl"></div>
  <py-script>
import numpy as np
import matplotlib.pyplot as plt
      
a = 0.5
b = 2
rand = 0.5
count = 100
x = np.random.rand(count).astype(np.float32)
y = x * a + b + (np.random.rand(count).astype(np.float32) * rand - rand*0.5)

fig1, ax1 = plt.subplots()
tpc = ax1.scatter(x, y, alpha=0.5,color="red")
pyscript.write("mpl", fig1)
  </py-script>
</body>
hello_plt.html結果

scikit-learnで線形回帰

最後に上記の散布図に対して線形回帰で一次関数の傾きと切片を予測させます。このとき予測させる数値をinputから入力できるようにしました。ブラウザ上で稼働させているため、こういったUIを簡単に利用できる点が非常に便利です。

簡単な線形回帰ですが、scikit-learnによる機械学習も正しく稼働しました。

      <body class="container">
        <div class="flex p-2">
            <label for="input_param_a" class="p-1">A</label>
            <input id="input_param_a" type="number" value="1" class="border p-1 rounded">
            <label for="input_param_b" class="p-1">B</label>
            <input id="input_param_b" type="number" value="1" class="border p-1 rounded">
        </div>
        <div class="flex p-2">
            <label for="input_param_rand" class="p-1">Random</label>
            <input id="input_param_rand" type="number" value="0.5" class="border p-1 rounded">
            <label for="input_param_count" class="p-1">Count</label>
            <input id="input_param_count" type="number" value="100" class="border p-1 rounded">
        </div>
        <button id="btn" pys-onClick="runTrain" class="p-1 text-white bg-green-600 rounded">実行</button>
        <div id="mpl"></div>
        <py-script>
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

def runTrain(*ags, **kws):
  a = float(Element("input_param_a").element.value)
  b = float(Element("input_param_b").element.value)
  rand = float(Element("input_param_rand").element.value)
  count = int(Element("input_param_count").element.value)

  x_train = np.random.rand(count).astype(np.float32)
  y_train = x_train * a + b + (np.random.rand(count).astype(np.float32) * rand - rand*0.5)
  
  lr = LinearRegression()
  lr.fit(x_train.reshape(-1, 1), y_train)
  prev_W = lr.coef_[0]
  prev_W0 = lr.intercept_

  fig1, ax1 = plt.subplots()
  tpc = ax1.scatter(x_train, y_train, alpha=0.5,color="red")

  _x = np.linspace(0, 1, count)
  _y = prev_W * _x + prev_W0
  ax1.text(0.2, prev_W*0+prev_W0, "y = prev_W * x + prev_W0")
  ax1.text(0.2, prev_W*0.1+prev_W0, "prev_W={:.2f}, prev_W0={:.2f}".format(prev_W, prev_W0))
  ax1.plot(_x, _y, color="black")

  pyscript.write("mpl", fig1)
        </py-script>
      </body>
hello_scikit.html結果

まとめ

今回はPyScriptを利用してscikit-learnで線形回帰を試してみました。ブラウザ上で実行するため、inputやbuttonなどのユーザインターフェースを手軽に利用できる点は非常に便利です。普段からPythonに慣れているエンジニアにとってはJavascriptを覚えるより簡単なのではないでしょうか。

しかしながら、動作環境の構築のためかページの読み込みに非常に時間がかかります。まだアルファ版ですのでこれから先の発展を期待しています。

衛生委員会からのお知らせ「生活習慣病の予防 食事編」

0

衛生委員会は「労働安全衛生法」に基づいて毎月実施される会です。アピリッツで働く人たちの危険または健康障害を防止することが目的です。衛生委員会で話し合ったことは、これまでも社内に周知をしてきましたが、せっかくなのでアピスピでも発信してみることにしました。今月は「生活習慣病の予防」のために、とくに食事で気をつけるべき点について、産業医の先生とお話ししました。野菜って大事!(2022年5月)

40歳までに10キロ増える人も

近年、肝機能とコレステロールの数値が高い人が多い印象です。とくに男性は20歳から40歳までのあいだに、体重が10キロほど増える傾向にあります。また、40歳のときの体型がその後も続く場合が多いため、せめて40歳までは食生活に気をつけてほしいですね。

10キロ!

会社によっては、会食や仕事後の飲み会で摂取カロリーが増えてしまうこともあります。都内通勤の方は勤務時間が遅い人も多いため、それが原因で間食が増えてしまったり、夕食が遅くなってしまうことも肥満の原因と言われています。

アピリッツでもゲーム事業部のメンバーは11時から20時の勤務なので、遅い時間に夕食をとる人は多そうです。栄養バランスに気をつけた食事ができるといいのですが……。生活を変えていけば、生活習慣病のリスクはすぐに下がるものなのですか?

血圧・肝臓の数値に課題のある人は、痩せればだいたい改善されることが多いです。このため、ウォーキングのキャンペーンを実施している企業もあります。若いうちは不摂生しても病気になりづらいので、なかなか気にかけることが難しいかもしれませんが、今のうちにできることをきちんとやることをおすすめします。

Advice

※ アピリッツが加入している関東ITソフトウェア健康保険組合でも運動奨励イベントを実施しています。要チェック!

圧倒的な食物繊維不足! 野菜を食べよう!

食事でとくに気をつけるべき点や、健康的に食事をするためのよい方法は?

とにもかくにも野菜を食べてほしいです! 食物繊維不足な人が多いんです。食物繊維が圧倒的に足りていません。1日350gを目安に野菜を摂りましょう。また、ご飯を食べるときは、野菜から最初に食べる(ベジタブルファースト)を意識してほしいです。そうすると血糖値の上昇も緩やかになります。

ベジタブルファースト!

野菜ジュースでもいいのですか?

糖質が高い野菜ジュースもありますから、摂りすぎには注意が必要です。野菜ジュースのパッケージに記載されている栄養成分表をチェックしてくださいね。

サプリメントや、最近流行の「完全食」はどうですか? 食に興味がない人にはありがたい選択肢なのですが……。

まだきちんと調べられていない状況ではありますが、菓子パンだけを食べ続けちゃうよりはいいと思います。

つづきます!

今後も、アピリッツの社員がもっと健康的に働けることを目指して、衛生委員会で話し合った内容を発信していきます!

「Web→ゲーム」「ゲーム→Web」、アピリッツなら事業をまたいだ挑戦ができる

0

アピリッツはWebソリューションとオンラインゲームの2軸で事業を展開しています。なので、「Web→ゲーム」や「ゲーム→Web」といった事業をまたいだ異動をおこなう人もいます。ゲームプランナーとして9年間アピリッツで活躍してきた村田は、アピリッツならではの学べる環境を活かし、2021年からWebマーケティングの世界に挑戦しています。きっかけは? ちがいは? いろいろ正直に話してもらいました。(2022年4月 取材)

「バイトしなきゃな」から始まったアピリッツでの仕事

―― 村田さんは2014年に正社員として入社したのですよね?

そうなんですが、もともとは2013年の6月からアルバイトを始めていました。大学を卒業したあと、2ヶ月くらい何もせずに遊んで暮らして、「あ、そろそろバイトしなきゃな」と思って、あと「ゲームプランナーやってみたいな」とも思って、それでアピリッツのオンラインゲームの部署にアルバイト採用で入りました。

―― ちなみに、「バイトしなきゃな」と思い立ってアピリッツを選んだ理由は……?

ここで何かかっこいいことを言えたら最高なんですが、正直にお話すると、ゲームの求人一覧をあいうえお順にソートして、それで見つけたのがキッカケです。

―― なるほど。

会社名が「ア」から始まるメリットが活きてますよね。

―― アピリッツって名前でよかったです。ということで、正直にいろいろ訊いていきます。

ハイ、そうしましょう。

―― デバッグの仕事からスタートして、次はあるゲームのデザインのディレクションを担当したんですよね。

ゲーム内に登場するアイテムの企画を考えてデザイナーに作ってもらっていました。

―― ゲームプランナー人生が着々と始まった、と。

始まりましたね。この頃オンラインゲームの広告の仕事も任せてもらえて、広告を配信するまでのフローや広告のタイプ、あと予算の勘所がつかめました。費用対効果を上げるためにターゲットを考える癖も身につきました。

たとえば、開発中のアプリを触りながらペルソナを定めて、そのペルソナにマッチした広告を考えて配信するといいんです。

そのあと一年間エンパワーメントサービス部(ES部)に異動し、大手ゲーム会社でプランナーをやっていました。これは経験してよかったなあと思います。「バイトしなきゃな」で入ったアピリッツしか僕は会社を知りませんでしたし、よその企業のマネージメントや社風を実際に知ることができて、視野が広がりました。

― ES部で活躍する人からは「クリエイターとして、いろんな経験ができて視野が広がった」という感想をよく聞きますね。

僕もそう思います。誰でも知っているような大きなIPに携われたり、いいところがいっぱいある。

ES部での1年のあとは、社内のゲーム開発チームに加わって、プロモーション担当となりました。ここでの経験のあと、Webソリューション事業に移ることに決めました。

「自分にマーケティングの知識はある?」

―― ゲームプランナーからWebマーケティングに移った理由って何だったのでしょう?

担当していたゲームでのプロモーションが一通り終わって、「次の仕事やキャリアはどうしようね?」と考えました。社長の和田さんとも面談しました。

ここでWebマーケティングに惹かれたんです。

今までゲームの広告を担当していましたが、きちんとした正解がわからないケースもありました。断片的な知識と経験で手探りでやっていて、もちろんプロモーションが上手くいくことも沢山ありましたが、そうではないこともありましたし、自分にはマーケティングの知識が足りないなと痛感したんです。

―― 岐路だったわけですね。

正直に話すと「転職したほうがいいのかな」とすら思ってました。2013年からアピリッツで働いてきて何度か自分のキャリアについて悩む瞬間はありましたが、「自分にはWebマーケティングの知識が足りない。もっとやってみたい」と感じたこのときは本当に悩んだ。

でも、ゲームプランナーをずっとやってきて、そこから「おもしろそうだから」といってWebマーケティングの会社に転職することを考えると……ちょっと抵抗あるなあ、とも思って(笑) 

―― 「そろそろバイトしなきゃ」みたいなライトな気持ちでは選べないというか、腰が重くなりますよね。

めちゃくちゃ重かったですね。経験も浅いわけですし。で、「そういえば、アピリッツならWebの仕事もあるな」と気づきました。「うちにはWebマーケティングのプロがいるじゃん!」って。もちろん、アピリッツでゲームの仕事を続けることも可能性として残っていましたが、ちょうどWebソリューションセグメントの執行役員の長谷さん(Webマーケティングのスペシャリスト)とはプライベートでもお付き合いがあったので、Web側に移ることの心理的なハードルも低かった。

知らない知識を学びやすい環境がここにあるじゃないか、と思いました。

そんなこんなで、Webソリューション事業に移って9ヶ月経ちました。

マーケティングはやっぱり面白かった

後ろの派手な風船は新入社員のみなさんの座席の目印です

――「面白そうだな」と思って飛び込んだWebマーケティングの仕事は、実際面白かったですか?

面白いですね! 今まで自分が手探りでやってきたことの答え合わせができたと思います。

今はデジタルエクスペリエンス部でGoogle アナリティクスのチームにいます。お客さまのWebサービスやサイトを理解して、どの指標を見ていくかを決め、設定して、計測します。

たとえ似ているWebサービスでも、お客さまごとに、それぞれに課題や伸ばしていきたい数値が違うんです。なので、たとえばGA4への移行ひとつとっても、Webマーケティングの定石を単純になぞっているだけじゃだめなところが面白いです。

このあたりはゲームでも同じようなことをしていました。たとえば「チュートリアルの突破率はどのくらいか?」「ゲームの進行具合と課金率の相関」などを見るんです。

―― ゲームでの経験も活きているんですね。

つながっていました。

―― つながりがありつつも、アピリッツのオンラインゲーム事業とWebソリューション事業の両方で働いて、違いは感じますか? 正直に教えてください。

うーん……仕事として大切な根本的な部分は一緒ですが、違うところもたくさんありますね。 まず、僕が今いるチームは、それぞれお客様は違えどみんなWebマーケティングをやっているので、同じ目線で同じ仕事をみんなでやっています。ゲーム開発もチームワークが大切ですが、それぞれに役割があるので、雰囲気はちょっと違います。

そして、Webマーケティングの仕事はスタートから完了までのスパンがゲーム開発と比べるとすごく短いんですよね。どんどん仕事のサイクルを回していくんです。だからなのか、若手が主体になって案件を動かしていく空気があります。

―― 村田さんが今いるチームは若手が多いですよね。

若手中心ですね。2021年に新卒で入ったメンバーも多くいます。彼らは僕から見たら超先輩ですよ。みんないっぱい勉強しているし、細かな知識を沢山持ってる。お互い忙しいときは「ここやっておきますよ」って助け合ったり。いいチームにいるなと思います。

―― よかった。正直な村田さんがそう言うんだから間違いないですね!

アピリッツのデジタルマーケティングについてはこちらをご覧ください!

『ゴエティアクロス』全力で駆け抜けた3.5周年

0

アピリッツのオンラインゲーム『ゴエティアクロス(ゴエクロ)』が2022年3月27日に3.5周年を迎えました。ゴエクロの開発陣に今回の3.5周年のこだわりと、4周年について話を聞きました。(2022年4月 取材)

強敵「命害」をフィーチャーしました

3.5周年のイベントでは、どんなところにこだわりましたか?

3.5周年では、ゴエクロでよく出現する敵「命害」をピックアップした内容にしたいと考えていました。

強敵

そもそも「命害」というのは、ゴエクロに実装された強力なエネミーたちの総称だったのですが、長らくその詳細が語られることはありませんでした。「強敵の集団」ということで、3.5周年を記念する大戦イベントに相応しい相手だったかと思います。

「命害」をどんなふうにフィーチャーしたのでしょう?

3.5周年イベントを開発していた当初は、命害大戦イベントの画面もそのまま3周年のものを使う予定でした。でも、せっかくの3.5周年ですし、ボスとの戦いを盛り上げる為に画面を新たに作り直しました! HPゲージを工夫したり、3周年の時とは違った「特別感」が出るように配列を工夫したり、イベントの段階ごとにボスの表情が変わるようにするなど、細かいところにこだわっています。

こういった内容を決めるのはゴエクロチーム全員で決めるのですか?

そうです! 開発陣全員で話し合って決めています。

2021年の9月から仕込んでました

長くサービスを続けていくと、周年のイベントも悩むんじゃないかなと思うのですが、いかがでしたか?

事前の準備が重要になってきますね。
たとえば、約2か月に渡って開催していた外伝「異界の侵略者」のフール編・ハーミット編から、今回の3.5周年本祭で開催した「命害大戦:ワールド」へとゲームを綺麗に繋げるために、スタッフ一同、去年の9月から準備していました。

同時系列でゴエクロの中でも最強格である「ラジエル」も登場させて、「いつもは敵側だけど今回だけは味方側」という熱い展開にも力を入れました!

あとは、「ワールド」という命害を操るボスがいるのですが、その敵としてのキャラクターの雰囲気や、実際に戦う際の熱い展開などをどう魅せるかについては、メンバー一同で悩みました。

てんこ盛りだったんですね

はい。だからシナリオチームも苦労したはずです。
「命害のストーリーを単独で楽しんでいただけるものにする」「ラジエルを登場させ、ストーリーを盛り上げる」「姉妹作『ゴエティア -千の魔神と無限の塔』とのストーリーの繋がりを明示する」
この3点が必須だったので、うまく繋がるように苦労して作ってもらいました。

運営が想定している以上に人気が爆発

ユーザーからの反応はどうでしたか?

全体的にユーザーからは好評でした!
前作の『ゴエティア -千の魔神と無限の塔』と『ゴエティアクロス』を密接につなぐ要素の登場で、前作を楽しんでくださっていたユーザーからの反応も多くいただきました。

あとは、3.5周年のフェス限として登場した「時界震天ラジエル」が爆発的人気で運営が想定している以上でした(笑)

あの黒髪の……!

ゴエティアクロスではめずらしいお姉さんキャラ「時界震天ラジエル」

はい、あのお姉さんキャラのラジエルです。ゴエクロでは、エルやバラムやビヒモスといった少女系キャラのほうがユーザーからの人気が高いんです。今回の「時界震天ラジエル」はガッツリ綺麗なお姉さんだったので、正直「大丈夫かな?」と心配していた節もあったのですが、人気が出てよかったです。

イラストレーターさんのフェチと熱意で通した黒髪のお姉さんが人気でよかったです

3.5周年の後夜祭も大成功

最後に、4/1のエイプリールフールのイベント「劇場版ゴエティアクロス 勇者爆誕!マステマイザー!」について教えてください

3.5周年の後夜祭で大々的にエイプリルフールネタを去年の9月くらいのタイミングから考えてました。
最初のエイプリールフールが魔法少女物だったので、今回はSFチックなロボット物にしようかなと思いました。

「本当にヒーローにしてやるぜ!」ということでヒーローになったマステマ

ちなみに、マステマを選んだ理由はですね、マステマには外伝で「ヒーローになりたい夢」があったからです。「それなら本当にヒーローにしてやるぜ!」という気持ちから、マステマイザーが生まれました。

実をいうとあのシナリオの原案は私が書いたんです。それをプランナーの久野がさらに面白くしてくれました。マステマのスーツやマステマイザーのビジュアル、LBの演出も、デザイナーだけではなくスタッフ全員でどうするかなど会話したくらいに力が入ってました。ロボデザイン見た時はかっこよすぎて痺れました!

ゴエクロらしい開発スタイルだったんですね

実際にマステマイザーが世に出た後、ユーザーがワイワイと盛り上がってくれていたので、「みんなヒーローものやロボットのも好きなんだな。うんうん」とちょっとうれしくなりました(笑)

4周年はどうなる?

最後に、4周年についてもちょっとだけ教えてください!

4周年はゴエクロにとっての大きな変化のタイミングとしたいと考えています。
天界との戦いの最中、主様やエルたちはどう立ち向かうのか? また、その先に一体何が待っているのか?
長年続いた流れから新しい流れに変えていく、そういう周年にしたいなと思っています。

もしかしたらゴエクロ2もあったりなかったり?

どうでしょうね。あるかもしれない、ないかもしれない……ですね! これからも全力でやっていきます!

【祝!今年も日本一】第13期女流球聖戦・アピリッツの荒木 愛がタイトル防衛に成功しました

0

アピリッツが誇る日本一のアマチュアポケットビリヤード選手・荒木さんが、日本アマチュアポケットビリヤード連盟主催の「第13期 女流球聖戦」にて、タイトル防衛に成功しました! ということで、今回も優勝記念インタビューです。(2022年4月 取材)

―― 荒木さん、優勝おめでとうございます。初めての防衛戦はいかがでしたか?

荒木:とても緊張しましたし、挑戦者だった去年よりも苦しい試合になりました。勝った瞬間は「嬉しい」よりも「疲れた」という気持ちが大きかったですが、今は勝てて良かったなぁとひと安心です。

―― 去年の女流球聖タイトル獲得時に「”今回はラッキーだった”と思われないように」と言っていたのが印象的でした。この一年、ビリヤードの練習量や試合への心構えで変化はありましたか?

荒木:練習量は以前と変わらずでした。去年と同じくコロナ渦が続いていたのでビリヤード場の時短営業もありましたが、その中でもモチベーションは維持できていたと思います。試合も開催数は少なかったのですが前より気を引き締めて臨むことができたと思います!その結果、大きな試合で優勝や入賞もできました。

かっこいい(引用:https://www.onthehill.jp/archives/53894 )

―― プロも参加する『なでしこグランプリ2021』で準優勝したり……

荒木:そうです!

―― アピリッツでの仕事と日本トップクラスのビリヤードの腕を両立させているのもすごいです。ということで、荒木さんがサポートを続けているアピリッツのエンパワーメントサービス部(ES部)についても聞きたいです!

荒木:ES部はいいですよ~。アピリッツの社内からも、そして社外からも、ES部の仲間となってくれるクリエイターが今後さらに増えるといいなと願っています。アピリッツの社内よりも大きなゲームプロジェクトに関わることができたり、最新の技術に触れる機会があったりと、スキルアップ、経験につながると思います! 社外のプロジェクトに参加することに不安がある人もいるかと思いますが、「他社に留学できる」くらいの気持ちでチャレンジしてもらえると嬉しいです。

―― ありがとうございました!

↓ 当日の荒木さん勝利の瞬間です! かっけー!

関連:【祝! 日本一】第12期 女流球聖位 荒木 愛 インタビュー【ビリヤードと仕事の話をします!】

関連: 【荒木さんおめでとう!】荒木 愛、『なでしこグランプリ2021』準優勝!

2022年度 アピリッツ入社式、45名を迎えました

0

2022年4月1日にアピリッツは入社式を行いました。今年は45名入社します。去年より15名多い!会場にみんな入るのか!? ということで、即日レポートです。(2022年4月 取材)

慣習だからやるわけじゃない

今年も会場はオフィスのカフェスペースです。社長の和田が「慣習だからやるわけではなくて、一生に一度の瞬間なんだから、思い出に残るような会がいいよね」と言っていたのが印象的でした。

入社式前日の様子はこちら。

人事企画部のメンバーが設営やかざりつけを行います。密をさけつつ間隔を工夫して椅子をならべています。今年も風船がいる!

始まりました。

去年と会場のレイアウトがちがいます

本質的なことを考えて仕事をする

まずは社長の和田から新入社員のみなさんにご挨拶です。

写真右側にならんで座っているのが役員です

今年の挨拶では、和田からは時事ニュースや今後の社会の流れ、そして自身が社会人になったばかりの頃をふまえつつ「敷かれたレールの上に乗っていれば上手くいく時代は終わった。だから、言われたことをやるのではなく、本質的なところを考えるために”なんで”と常に自問して動いてほしい。”何を解決しないといけないのか”を考え、本質的に自分がすべきことを考えてこの社会で生き残ってほしい」とメッセージを伝えました。

そして、それぞれの役員からも「夢中になれるものを見つけてほしい」「普通はこうすべきという常識にしばられないで」「仕事のおもしろさを見つけてほしい」「役員紹介の動画を自作したので見てほしい」など、めいめい新入社員にエールを送っていました。

ということで、入社式をつつがなく執り行った4月1日でした。明日から研修を行います!

 【ゴエクロデザインについて語ろう】その3 :これで最終回!? プロの作業環境とメイキング動画を公開します!(時界震天ラジエル)

0

アピリッツのオンラインゲーム『ゴエティアクロス(ゴエクロ)』のデザインをもっと知ってもらいたい!ということで始まったゴエクロデザイン連載。第2回ではイラストレーターの作業環境やメイキング動画を紹介しました。これが大好評だったので、第3回もメイキング行っちゃいます! 今回は「時界震天ラジエル」のデザインを担当したイラストレーター”蒼武”氏に話を聞きました。(取材 2022年3月)

第一回はこちら!【ゴエクロデザインについて語ろう】その1:ゴエティアクロス「第3回 衣装デザインコンテスト」開催中

第二回はこちら!【ゴエクロデザインについて語ろう】その2:プロの作業環境とメイキング動画を公開します!

作業環境はこんな感じ!

まずは今使っているPCとディスプレイをご紹介しますね。

◆PC:raytrek-V ZT(Core i7-8700/32GBDDR4/NVIDIA GeForce GTX1060 6GB)
◆ディスプレイ:Iiyama/23.8型/IPS方式ノングレア

発色も良くコスパの良いディスプレイだと思います。こちらをデュアルモニターにしています。

◆ペンタブレット:Wacom Intuos Pro Medium PTH-660

ずっとWacomの板タブを使っています。首と目が疲れないので板タブ派です。
ファンクションキーが便利ですが、タッチ入力は切っています。

「時界震天ラジエル」メイキング

蒼武氏による「時界震天ラジエル」のメイキング動画も公開します! 蒼武氏が制作中に考えていることなどをTIPSとして表示しています! 是非ご覧ください!(ラジエル様も一緒です♬)

蒼武氏いわく、デザイン画は自分が見やすいように配置しているものだそうです。

フェティッシュな「時界震天ラジエル」

今回はキャラクターの性格や行動原理などの最も基盤となる設定の決定にも関わらせて頂いております。
ゴエクロのストーリーが大好きなので、魅力的かつ劇的なキャラにできたら、という想いを込めて設定とデザインを担当させて頂きました!

見た目だけじゃなく性格もあわせてデザインされたんですね。

キャラクター設定のコンセプトは「神に仕えるダウナー系強者」でしたので、それを連想できる要素を入れています。過去に登場している天使のデザインの一部を踏襲しつつ、一線を画すデザインになるように詰めていきました。

あとは、3周年の時に出ている「叛逆神書エル」を連想できる要素をわざと入れているのですが……ちらほら気付いてくれている人がいて嬉しいですね!
このあたりは設定から関わらせて頂いているから出せたデザインではないかと思います。

全体のイメージは「美しい」とか「緻密で豪華」とかよりも「キャラクター性」が出るようにシンプルなデザインでまとめています。シルエットだけでも十分彼女だと判断できるのではないでしょうか!

時界震天ラジエルは、よくユーザーのみなさんから「顔がいい!」と言っていただいていると聞きました。

神に仕えるダウナー系強者! とにかく顔がいい!

そうなんですよ、嬉しいです!
顔はキャラクター性をしっかり伝えられるようにこだわり抜いたところだったのと、自分の好きな造形を突き詰めたので、そうやって込めた気持ちがユーザーに届いたのかなと思うととっても嬉しいです。
ただ、当初は「このデザインで本当に大丈夫?」というプランナーさんからの声もあったんですよね。

えっ! 「大丈夫?」というのは……?

最初に黒髪のデザインを出したときに、プランナーさんから「黒髪で大丈夫?(ゴエクロの人気キャラに前例が少ないけど)」と聞かれたんです。でも、私自身は黒髪の要素が大好きで、黒髪の魅力を最大限引き出せたら嬉しいと思っていました。
なので「誰かのフェチにするつもりで描きます!」と言ったら、黒髪で描かせてもらえることになりました笑
結果的に、彼女の性格のイメージともぴったりのキャラを作れたのではないかと思います。

全3回のイラスト企画、いかがでしたか?

ゴエティアクロスのイラスト連載は今回で一区切り! ……ということで、ゴエクロのデザインリーダーの飯山からユーザーのみなさんにメッセージです!

ゴエティアクロスのデザインリーダー・飯山です。

全3回の「ゴエクロデザインについて語ろう」はいかがでしたでしょうか?
皆さんの目に届くまでに、デザインは様々な工程を経ています。
どんなデザインであろうとも、作り手は考えや想いを詰め込んでいます。
皆さんに「素敵な体験だ!」と思ってもらえるように、今後もゴエクロデザイナーチーム、ひいてはゴエクロ運営チームは頑張っていきたいと思いますので、応援をよろしくお願いいたします!

また、今後も不定期で「ゴエクロデザインについて語ろう」を掲載できたらと考えていますので、楽しみにしていてくださいね!

アピリッツのAWS認定フル取得社員に聞く「もっててよかったAWS認定」その3 :浅田大輔

0

アピリッツではサービス品質の向上と社員の成長を促すことを目的に、2021年6月に「APN表彰手当」を定めました。平たく言うと、「認定資格の全制覇とAWSの技術を広めることをより一層推進したい!」という気持ちで作った制度です。こちらが功を奏したのか、今年はAWS認定をすべて取得したエンジニアが続々と登場しました(過去2年間は1名のみでしたが、今年は3名!)。コンプリートしたエンジニアがアピには3名もいるので、「AWS認定のどこが役に立った?」「純粋に面白いなと感じたのはどんなところ?」「後輩におすすめする?」といったAWSにまつわるあれこれを、思い思いに、ざっくばらんに語ってもらうことにしました。

最終回となる第3回は、2020年と2021年に「APN AWS Top Engineers」に選出されたアピリッツのAWS番長ことAIエンジニア・浅田大輔の「もっててよかったAWS認定ばなし」です。浅田が考えるAWSの面白さ、必読です。(2022年3月取材)

関連:アピリッツが報奨金総額120万円以上の「APN表彰手当」を始めた理由

関連するプレスリリース:アピリッツ、DX時代におけるAWS活用の推進とデジタル人材育成、ならびに福利厚生の拡充を目的に、社内制度『APN表彰手当』を制定。AWSエンジニアに報奨金を年間最大121万5千円支給

「AWSの定石」を学べる

資格試験を取ったこと自身というよりも、資格を取るにあたって勉強した際に、色々な観点を学べたことが良かったと思います。

コスト、耐障害性、運用、拡張性、セキュリティなどの観点は、サービスを展開するうえで重要なことですが、それらをAWS上でどのように実現していくのか、というエッセンスを学べました。言ってみれば定石、ベストプラクティスということですね。

AWSを活用する案件においては、それが受託であれ、自社サービスであれ、大体何かしら解決したい問題があります。アクセスが大量に来ても耐えるようにしたい、運用を楽にしたい、コストを削減したい、短期でサービスローンチまでもっていきたい、大規模災害に備えたい、分析環境を整えたい、etc.。それらの解決の拠り所となるような考え方を学べたのが良かったと思います。

もちろん、試験で学べることで全てが解決できたわけではありません。試験で想定されるケースはある種限定的な状況が想定されますが、現実のケースはそこまで単純ではないことの方が多いですから、試験の知識だけでは不十分とさえ感じます。ですが、基本的な定石を抑えているからこそ、応用も効くと思いますし、自信をもって取り組めていると思います。

刻一刻と進化し続けるAWSのすごさ

必要なものを、必要な場所に、必要なタイミングで、必要な量だけ調達できる。しかもリーズナブルな価格かつ品質の保証されたものを。これって、すごく便利ですよね。小規模なスタートアップはもちろん、大規模なエンタープライズでも、すごく戦略的な価値があると思ってます。

加えて、刻一刻と進化し続けているところは、素直にすごいなと思います。今日の常識は、下手すると明日には陳腐化しているかもしれません。

例えばAWSを代表するサービスの一つであるS3(Simple Storage Service)では、「効率よく検索するためにランダムなプレフィックスをつける」、「結果整合性なのでデータを更新した直後に読みこんだ場合に古い状態のままということが起こりえるので、確実に更新後のデータが欲しければ新しいファイル(キー)を作成してそれを読みこむ」などのプラクティスがかつては行われていました。

ですが、今やランダムなプレフィックスに何のタクティカルアドバンテージもなく、デフォルトで強い整合性がサポートされるようになっています。

このように、AWSは日々進化するので、知識をアップデートし続ける大変さはあるのですが、その分便利に使えるようになっていくので、RPGで新たなアイテムを手に入れて苦戦していた強敵を楽に倒せるようになるような感覚に近い楽しさを感じます

ゲームといえば、オンラインゲーム感覚でクラウドを学べるコンテンツが出たそうです。他にも強化学習エンジニアの育成の一環でDeepRacerを展開したり、SageMakerを教育目的で無料で利用できるSageMaker Labなどを展開するなど、次代の教育に力を入れているのも素晴らしいと思います。

AWSの専門家として認知されること

ある意味では、実務で役に立ったということになるのかもしれないですが、まずAWSの専門家であると認知してもらえるということは大きなメリットでした。

もちろん実力が伴っていないと話にならないですし、資格をもってないからといって業務に支障があるわけではない(むしろ、資格はなくても、知識、経験ともに十分備えている方はたくさんいると思います)のですが、一つの分かりやすい看板にはなるのかなと思います。

少なくとも、自発的であれ、やむを得ずであれ、AWSの知識吸収に対して積極的に時間を割いている、という証明にはなるはずです。そうしたときに、言動への説得力に多少なりとも良い影響を与えるはずです。

また、何かAWSのことでわからないことがあれば、この人に聞いてみようみたいな流れができやすくなります

そうすると、期待に応えるために、よりAWSのことに詳しくならなきゃというモチベーションや、自負、矜持なども生まれてくるでしょう。そこからさらに、「またこの人に聞いてみよう」、「答えられるように、もっと勉強しとかなきゃ」みたいな良いスパイラル、フライホイールになっていくのかと思います。

少しづつ学んでいけば、合格にたどりつける

「宜しく先ず一事より一日より始むべし」 という言葉もあります。もし、AWSについてもっと知りたいと思ったら、AWS認定資格の取得を目指してみるのは如何でしょうか。思い立ったが吉日だと思います。

最初は遠い道に思えても、少しづつ学んでいけば、合格にたどりつけると思います。 大切なのは『合格に向かおうとする意志』だと思います。 向かおうとする意志さえあれば、たとえ一時的に不合格になったとしても、いつかはたどり着きます。向かっているわけですから。

アピリッツのAWS認定フル取得社員に聞く「もっててよかったAWS認定」その2 :中村翔吾

0

アピリッツではサービス品質の向上と社員の成長を促すことを目的に、2021年6月に「APN表彰手当」を定めました。平たく言うと、「認定資格の全制覇とAWSの技術を広めることをより一層推進したい!」という気持ちで作った制度です。こちらが功を奏したのか、今年はAWS認定をすべて取得したエンジニアが続々と登場しました(過去2年間は1名のみでしたが、今年は3名!)。コンプリートしたエンジニアがアピには3名もいるので、「AWS認定のどこが役に立った?」「純粋に面白いなと感じたのはどんなところ?」「後輩におすすめする?」といったAWSにまつわるあれこれを、思い思いに、ざっくばらんに語ってもらいます。

第2回は、オンラインゲーム事業のクライアントエンジニア・中村翔吾の考える「もっててよかったAWS認定ばなし」です。ちなみに、中村は約7ヶ月で一気にAWS認定コンプリートまで駆け抜け、並行してAWS認定の社内勉強会を主催するアジリティの高い人物です。(2022年3月取材)

関連:アピリッツが報奨金総額120万円以上の「APN表彰手当」を始めた理由

関連するプレスリリース:アピリッツ、DX時代におけるAWS活用の推進とデジタル人材育成、ならびに福利厚生の拡充を目的に、社内制度『APN表彰手当』を制定。AWSエンジニアに報奨金を年間最大121万5千円支給

ゲーム部門で活きるAWSの技術

AWS Certified Solutions Architect – Professional

新規開発のゲーム案件にインフラ構築として参加する際に、要件を聞いただけで構成をイメージできるようになります。そこからCloudFormationへ落とし込むスピードが上がったので、勉強してよかったですね。

AWS Certified Machine Learning – Specialty

こちらは、実務でわかりやすく役に立ったシーンはまだないのですが、取ってよかったなと思います。3年前挑戦&挫折したkaggleのタイタニック問題を今ならクリアできそうな気がします。

また、機械学習は巷でも話題になっていますよね。ですから、知識があることの1つの指標として取得しておくと良いアピールになるはずです。勉強しましょう。

AWS Certified Data Analytics – Specialty

ゲーム開発部門としては、売り上げだけを見るのではなく、ユーザーの動向を分析し、常にトレンドを追いかけていくことが今後さらに必要となるでしょう。こういったトレンドのなかで「どのデータをどのように可視化すべきか」という話題を論じることかできるようになったのは、大きな変化だと思います。

「こんな機能あったらいいのにな」が全部ある

AWSの技術のおもしろいところは「こんな機能あったら便利なんだけどなー」とこちらが思うと、大体あるところですね。AWS認定の勉強中に出合うことが多かったです。

おもしろいとはいえ、AWS認定11種をコンプリートすることは非常に長い道のりです。まずは1つ取得してみることから始めるといいと思います。

中村の書いたAWS認定の勉強会にまつわる記事はこちら

明日の「もっててよかったAWS認定」は、アピリッツのAWS番長・APN AWS TOP ENGINEERの浅田です!

アピリッツのAWS認定フル取得社員に聞く「もっててよかったAWS認定」その1 :串田匠彌

0

アピリッツではサービス品質の向上と社員の成長を促すことを目的に、2021年6月に「APN表彰手当」を定めました。平たく言うと、「認定資格の全制覇とAWSの技術を広めることをより一層推進したい!」という気持ちで作った制度です。こちらが功を奏したのか、今年はAWS認定をすべて取得したエンジニアが続々と登場しました(過去2年間は1名のみでしたが、今年は3名!)。コンプリートしたエンジニアがアピには3名もいるので、「AWS認定のどこが役に立った?」「純粋に面白いなと感じたのはどんなところ?」「後輩におすすめする?」といったAWSにまつわるあれこれを、思い思いに、ざっくばらんに語ってもらいます。
第1回は、21新卒のエンジニア・串田匠彌の「もっててよかったAWS認定ばなし」です。(2022年3月取材)

関連:アピリッツが報奨金総額120万円以上の「APN表彰手当」を始めた理由

関連するプレスリリース:アピリッツ、DX時代におけるAWS活用の推進とデジタル人材育成、ならびに福利厚生の拡充を目的に、社内制度『APN表彰手当』を制定。AWSエンジニアに報奨金を年間最大121万5千円支給

「認定資格とっててよかった!」と思う局面は沢山あった

AWS Certified Cloud Practitioner

AWS認定のうち、これは「最初の一歩」でした。実務で……というわけではないのですが、採用面接でアピリッツの執行役員の西脇さんとの会話のネタとして活躍してくれました。

AWS Certified Solutions Architect – Associate

CloudFormationでリソースを作成する際に、ymlファイル内の各セクションに何を記載すべきかを事前に理解することができました。

AWS Certified Solutions Architect – Professional

CWAlarmやCWLogsを用いての監視設定で、概要についてはすでに試験対策で勉強していたので、スムーズに開発に取り組めました。

また、「サービス自体の機能はわかるけど、どうやってやりたいことを実現したいかわからない」というお客様に対し、実用的なサービスの組み合わせをご提案できるようになりました。

AWS Certified Machine Learning – Specialty

機械学習は、そろそろ市場に馴染んできた技術だと思います。なので、そのうち「教養として機械学習の知識はあるよね? 機械学習を用いての実装できるよね?」という状況がスタンダードになっていくのではと考えます。そんな日に備えて、勉強しておいて損はないです。

そして、実際に勉強して「おもしろいなあ」と感じた点もありました。Rekognition・Forecast等は、機械学習にあまり馴染みのない人でも恩恵を受けられるようなサービスです。ユーザが「使えそう!」と思ったサービスならなんでも出してくれそうと思いました。これからが楽しみですね。

AWS Certified Security – Specialty

暗号化されていないS3、EBSの暗号化の仕組みは理解できたので、今後使えそうです(まだ実際にやっていないのでなんとも……ではありますが)。

Envelop暗号化について仕組みを詳しく知ることができたこともよかったです。特に、マスターキーを削除したらどれぐらいマズいのか、そして間違って即時削除されないようにAWSがどういった対策を取っているのかが印象的でした。

こういったユーザが意図せずやってしまうであろうインシデントに対して、AWSが予見的に対策を取っているところに「このフォロー考えた人、頭いいなぁ」と思いました(CloudTrailのログ取得とかKMSの削除保護期間とか)。

全部の資格に当てはまる「よかったこと」「おもしろいこと」

とにかくドキュメントを理解するのが早くなります。言うまでもなく、これは仕事をする上でとても助かります。

勉強を続けて「おもしろいなあ」と感じることもたくさんありました。たとえば、RDSのフェイルオーバーやConfigでの構成管理といった「開発に必要だけど面倒なステップ」をAWS側が担ってくれているところに、AWSの技術の凄さや利便性を感じます。

そして、開発の現場以外でもメリットは大きかったです。たとえば、以前ならばお客さまとの会話で上司や他のメンバーに確認してからご回答していたことを、持ち帰らずにその場でお話できるようになりました。そうすると、私個人がお客さまからも頼られるようになるんですよね。

みんな取ろうよAWS認定!

前提として、自分はエンジニアという業界を「頑張れば頑張った分だけ差が顕著に表れる」と考えています。ですから、新卒でエンジニアとなる方々には、日々勉強する習慣をつけてもらって、より強いエンジニアになってほしいと考えています。

ただ「頑張ってすごいエンジニアになる!」みたいな長期的な目標だと、自分がそれに近づいている実感が湧いてこない気がします。自分も社会人1年目の頃にそういった経験がありました。「自分は今エンジニアとしてどのレベル層にいて、これから何を学習すべきで、それにはどの学習リソースが必要か」ということを把握できておらず「実は迷走しているんじゃないか」と考えていた時期は、なかなかに辛かったです……。

そうならないよう、まずは短期的な目標を設定し、それを達成し続けることで楽しく学習を進めてもらいたいです。そして自分自身がレベルアップしていく手応えを楽しんでほしいです。実務に役立つし、報奨金も出るのでみんな受けましょう(笑)

明日の「もっててよかったAWS認定」は、オンライゲームセグメントのクライアントエンジニア・中村さんが語ります!

CDKでさくっとECSサービスとCapacity Providerを設定する

0

はじめに

デジタルイノベーション部の浅田です。

AWSをはじめとしたクラウドがオンプレミスに対してもつ優位性の一つに、インフラストラクチャーをコードとして管理できることがあります。いわゆる、Infrastucture As a Codeというわけですが、そのためにAWSではCloudFormationを利用することが一般的です。

CloudFormationも十分に強力な機能ですが、それをさらに強化するものとして、AWS Cloud Development Kit(以下、CDK)があります。

そこで、今回はCDK(on TypeScript)を使ってECS上のサービスを作成することで、いかに簡単にCDKでAWSのインフラを作成できるかをご紹介したいと思います。なお、動作確認済みのCDKバージョンは執筆時点で最新の2.15.0となります。また、CDKの初期設定などは紙面の都合上省略致します(参考:CDK初期設定)。

今回、作成するAWSの構成

今回はECS上のサービスとして、ALBで負荷分散された、EC2起動タイプのNginxのサービスを立てるということをやっていきたいと思います。そこにさらに、ECSのキャパシティプロバイダーを使うことによって、サービスに必要なEC2リソースをAutoScalingで動的に起動させる設定を入れ込みたいと思います。

構成図としては、以下となります。

キャパシティプロバイダーって?

参考:Amazon ECS キャパシティープロバイダー

キャパシティプロバイダーを簡単に説明すると、ECSのタスクコンテナが必要とするCPU/メモリなどに応じて、ホストされるEC2のリソースをAutoScalingさせる機能です。

マイクロサービスを多数動かすコンテナ利用では、個々のコンテナごとにEC2が用意されるわけではなく、ひとつのEC2の中に複数のコンテナが稼働するのが当たり前になります。そうしたときにEC2自体のCPU使用状況などをもとにAutoScalingさせるような旧来の運用だと、どれぐらい足りないのか判断がつきません。

大きなリソースを要求するようなコンテナのタスクを増やす必要があれば、大きなインスタンスが必要となるでしょうし、小さなリソースを要求するコンテナのタスクを増やすのであれば、小さなインスタンスのほうが効率が良くなります。

そこで、タスク側が「コンテナを××台建てたいから、必要なリソースを用意して」と要求した際に、ECS側が他のコンテナとの兼ね合いを含めて必要なリソースを満たせるようにEC2の台数を調整する、というのがキャパシティプロバイダーの機能になります。

個々のタスクやサービス側がコンテナのCPU/メモリ使用量であったり、リクエスト量、処理データ量、スケジュールによるバッチ処理などのイベントなどに応じてタスクの数をコントロールし、それに必要なリソースをECS側がコントロールすることによって、担当する範囲が明確化され疎結合になるというのもキャパシティプロバイダーを利用するメリットの一つだと思います。

ECSのサービスを作るうえで必要となるAWSの要素

上記のような設定をAWSで構築しようとすると、作成する必要がある要素は意外と多くなります。

ざっとあげるだけでも以下のようになります。

  1. VPC、サブネット、インターネットゲートウェイ、ルートテーブル、セキュリティグループなどのネットワーク関連リソース
  2. ECSクラスター、クラスターを構成するEC2インスタンス、起動設定、AutoScaling設定などのECSクラスター関連リソース
  3. ALB、リスナールール、ターゲットグループの設定などのALB関連リソース
  4. タスク定義、サービス起動設定などのECS上のサービス関連リソース

これをCloudFormationで定義しようとすると、数百行の定義を書くことになります。

L1コンストラクタとL2コンストラクタ

CDKには、AWSのリソースを簡単に定義するためにコンストラクタが用意されています。その中でも、L1コンストラクタ、L2コンストラクタがあります。

L1コンストラクタはほぼCloudFormationと同じ要素を同じようにコントロールできる柔軟性を持っていますが、その分設定しなきゃいけない要素が多くなります。

L2コンストラクタは簡単にAWSリソースを定義できるように用意された機能です。細かいコントロールはL1コンストラクタ程できませんが、その分圧倒的に簡単にリソースの定義ができます。以下ではL2コンストラクタを中心に扱います。

クラスター側のスタック作成

まず、サービスを動かすための基盤を作成するスタックを作ります。使っているモジュールは以下です。

import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as ecs from "aws-cdk-lib/aws-ecs";
import * as autoscaling from "aws-cdk-lib/aws-autoscaling";

VPCの作成

まずはVPCです。

const vpc = new ec2.Vpc(this, "VPC", {
    vpcName: `Vpc`,
    cidr: "10.0.0.0/16",
    natGateways: 0,
    maxAzs: 99,
    subnetConfiguration: [
        {
            cidrMask: 24,
            name: "public",
            subnetType: ec2.SubnetType.PUBLIC,
        },
    ],
});

これだけの記述で、サブネットやルートテーブル、インターネットゲートウェイなどの諸々を作ってくれます。

今回はNatGatewayを使わないのでnatGatewaysを0に設定していますが、これを指定してあげればNatGateway、およびそのルートテーブルなども作成してくれます。

また、maxAzsを指定することで、サブネットを作るアベイラビリティゾーンの数の指定ができますが、大きな値を指定することで、そのリージョンに存在するアベイラビリティゾーン分サブネットを作ってくれます。東京リージョンとバージニアリージョンなど、アベイラビリティゾーンの個数が異なるリージョンに適用するさいに、意識せずに済むようになります。

AutoScalingの作成

続いてECSクラスターを構成するEC2のAutoScaling設定です。

const ec2SecurityGroup = new ec2.SecurityGroup(this, "Ec2SecurityGroup", {
    vpc,
});
ec2SecurityGroup.addIngressRule(
    ec2.Peer.ipv4("10.0.0.0/16"),
    ec2.Port.tcpRange(32768, 65535)
);
const autoScalingGroup = new autoscaling.AutoScalingGroup(this, "ASG", {
    vpc,
    instanceType: new ec2.InstanceType("t3.small"),
    machineImage: ecs.EcsOptimizedImage.amazonLinux2(),
    vpcSubnets: {
        subnetType: ec2.SubnetType.PUBLIC,
    },
    minCapacity: 0,
    maxCapacity: 10,
    securityGroup: ec2SecurityGroup,
});

ここでは、AutoScalingで起動されたEC2で許容するセキュリティグループを作っています。ポートはALBの動的ポートの範囲を指定してます。また、AutoScalingで起動されるEC2のスペックや、サブネット、最大起動数なをの設定を入れています。

ECSをEC2で運用する際には、EC2上のECSエージェント設定ファイルにクラスター名を書き込む設定をEC2起動時にユーザデータで設定する、などを定型的に行いますが、上記のAutoScaling設定を後続のECSクラスター設定と組み合わせることで、ユーザデータによるクラスター名設定もCDKが自動でやってくれます。また、ECS運用で必要となる権限である、ECRからのイメージ取得権限のIAMロールなども自動作成してくれます。便利ですね。

クラスターの作成

続いて、ECSクラスターの設定です。

readonly cluster: ecs.Cluster;
readonly capacityProvider: ecs.AsgCapacityProvider;

...(省略)
this.capacityProvider = new ecs.AsgCapacityProvider(this, "CapacityProvider", {
    capacityProviderName: "CapacityForT3Small",
    autoScalingGroup,
});
this.cluster = new ecs.Cluster(this, "Cluster", {
    vpc,
    clusterName: `AppCluster`,
});
this.cluster.addAsgCapacityProvider(this.capacityProvider);

やっていることは3点です。

  1. キャパシティプロバイダーを作成します。といっても、前節で作成したAutoScalingグループの設定を紐づけて作成しています。
  2. クラスターを作成します。作成済みのvpcを指定して名前を付けています。
  3. 1で作成したキャパシティプロバイダーを2のクラスターと紐づけています。

ポイントとして、次節で説明するサービス用のスタックで使用するため、コンストラクタのプロパティとしてcluster, capacityProvider変数を使用しているので、thisのプロパティに代入しています。こうすることで、複数のスタック感で意識せずに内容を連携できます。

実際には、裏でCloudFormationのExport Value/Import Valueを使って連携されています。そこらへんを細かく意識しなくてもいいのは楽ですね。

サービス側のスタック作成

続いて、サービスのスタックを作成します。使用しているモジュールは以下です。

import * as ec2 from "aws-cdk-lib/aws-ec2";
import * as ecs from "aws-cdk-lib/aws-ecs";
import * as ecsPatterns from "aws-cdk-lib/aws-ecs-patterns";

サービスの作成

つづいてECSのサービスです。

const securityGroup = new ec2.SecurityGroup(this, "ALBSecurityGroup", {
    vpc: cluster.vpc,
});
securityGroup.addEgressRule(ec2.Peer.anyIpv4(), ec2.Port.allTraffic());
const loadBalancedEcsService =
    new ecsPatterns.ApplicationLoadBalancedEc2Service(this, "NginxService", {
        cluster,
        cpu: 256,
        memoryLimitMiB: 256,
        taskImageOptions: {
            image: ecs.ContainerImage.fromRegistry("nginx:latest"),
        },
        listenerPort: 80,
        publicLoadBalancer: true,
        desiredCount: 1,
    });
loadBalancedEcsService.loadBalancer.addSecurityGroup(securityGroup);

まず、ALBで使用するセキュリティグループを作成します。後続の処理で自動でセキュリティグループが作成されるのですが、EgressのルールがALBの動的ポートの設定が通らないようになっているので、Egressルールを追加しています。

続いてALBとサービスの設定です。CDKの標準モジュールとしてecs-patternsというものがあります。これは、ECSのサービス設定としてよくあるパターンをモジュール化したもので、ただでさえ簡略化されているCDKによるリソース作成がさらに簡単になっています。

上記の十数行のコードで、ALB、リスナールール、ターゲットグループなどのALB関連リソースを作ってくれるだけでなく、ECSのタスク定義、サービスの作成、ALBとの紐づけなどを作成してくれます。

ここでは設定していませんが、証明書の設定、HTTPからHTTPSへのリダイレクト、ドメイン名の設定なども指定できます。また、ログルーターの設定、環境変数の設定なども上記のコンストラクタのパラメータとして指定できる柔軟性も持っています。素晴らしいですね!

キャパシティプロバイダーの設定

といった具合に、便利なecs-patternsモジュールなのですが、EC2上のALBで負荷分散されたサービス(コンストラクタ名としてはApplicationLoadBalancedEc2Service)を作る際に、キャパシティプロバイダーの設定ができません。ecs-patternsではないecsモジュールを使用してサービスを作成すればもちろん設定可能ですが、ecs-patternsの便利さを利用できなくなります。

そこで、以下のように追加の設定を行うことで、キャパシティプロバイダーを利用することができます。

const service = loadBalancedEcsService.service.node
    .defaultChild as ecs.CfnService;
service.launchType = undefined;
service.capacityProviderStrategy = [
    {
        weight: 1,
        capacityProvider: capacityProvider.capacityProviderName,
    },
];

やっていることは3点です。

  1. 前節で作成したloadBalancedEcsServiceのサービスリソース(service)をL1コンストラクタのCfnServiceにキャストして取り出します。
  2. serviceのlaunchTypeがEC2に設定されているので、undefinedに設定することでリセットします。
  3. そして、キャパシティプロバイダーとしてクラスター側の設定で作成したcapacityProviderを使用するように設定します。

上記の設定を追加することにより、作成したキャパシティプロバイダーを使用して、サービスを起動するように設定できます。

終わりに

いかがでしたでしょうか。CDKを利用することで、すごく簡単にECSのサービスを立ち上げられることがご理解いただけたのではないでしょうか。

CDKには、ほかにもいろいろと便利なコンストラクタが標準で用意されていますし、サードパーティのCDKコンストラクタも存在します。それらを利用することで、より最小限の労力でAWSのリソースを定義することができます。積極的に活用することでハッピーなAWSライフを送りましょう!

ゲームパッドを左手デバイスに

0

アピリッツのエンパワーメントサービス部に所属しております3Dデザイナーの杉山です。
デジタルイラストなどの作業において左手デバイスというものを使用している方は結構いるのではないかと思いますが、自分はその左手デバイスとしてゲームパッドを使用しているので今回はその使用感やメリット・デメリットなどについてまとめてみました。

使用しているゲームパッド

まず始めに簡単ではありますがこちらが普段自分が使用しているゲームパッドのスペックになります。

製品PC用ゲームパッド(高耐久モデル)
形状一般的な両手持ちタイプ(アナログスティックあり)
接続無線
ボタン数13ボタン
価格約2500円(2022年3月時点)
電源単3形電池 2本
その他キー割り当て対応

選ぶ際のポイントとしてはまずキーの割り当てに対応していることが今回の場合絶対条件ですが、他にも使い勝手の良さなどを考えると無線接続高耐久仕様ボダン数の多さなどもかなり重要なポイントだと思います。
その他大きさ、重さ、価格など色々と検討する項目はありますが、それらに関しては個人の感覚によるところが大きいので実際に店頭で触って自分に合ったものを探すのが一番だと思います。

左手デバイスとしての利用手順

ここからは実際にゲームパッドを左手デバイスとして利用するための手順について簡単に紹介致します。
また普段使用している環境の都合上、併用するアプリケーションはClipStudioPaintを想定させて頂きます。

1.ゲームパッドのキーマッピング

まずはゲームパッド側のキーマッピングを行っていきます。
あとでClipStudioPaint側でもショートカットのカスタマイズを行うので基本的にここでのキーの割り当ては適当でいいのですが、使用頻度の高いデフォルトのショートカットとの干渉をなるべく回避するため自分は数字キーなどを割り当てるようにしています。
また、作業時に常に使用するボタンは片手で扱える半分のみなので基本的にはその範囲にだけ割り当てを行っておけば問題ありません。逆側のもう半分のボタンについてはデフォルトの複数同時推しショートカットなどをワンクリックで行えるのように割り当てておくとより効率的になるかと思います。

参考:エレコムゲームパッドアシスタント(画像は筆者の設定)

2.ClipStudioPaint側のショートカットカスタマイズ

次に先程行ったゲームパッドのキーマッピングを基準にClipStudioPaint側でショートカットのカスタマイズを行います。
カスタマイズを行う際は後々混乱しないようになるべくデフォルトのショートカットを崩さないように新規追加する形でキーの割り当てを行っています。

参考:ClipStudioPaint ショートカットキー設定(画像は筆者の設定)

3.最終的な動作確認

ゲームパッドのキーマッピングとClipStudioPaint側のショートカットカスタマイズが終わったあとは実際に使用して正常に動作するかを確認をして頂き、問題がなければすべての作業は完了です。

以下今回の手順を元に自分が普段ClipStudioPaintでの作業時に使用しているゲームパッドの割り当て表をまとめましたので参考にして頂ければと思います。
ワンポイントとして、片手で扱えるゲームパッドのボタン数は約10個程度と少ないですが、Ctrlキーを割り当てたL1ボタンとの同時入力も含めて検討することで少ないボタン数でもより多くの処理を割り当てることが可能になります。

ゲームパッドのボタン割り当てた処理(通常)割り当てた処理(L1との同時押し)
L1Ctrlキー入力
L2Shiftキー入力
中心ボタン(左)キャンバス反転キャンバス表示リセット
十字ボタン(上)ベタブラシやり直し
十字ボタン(下)消しゴムブラシ元に戻す
十字ボタン(左)水彩ブラシ描画色と背景色入れ替え
十字ボタン(右)鉛筆ブラシ描画色と透明色入れ替え
左ステック(上)手のひらツールキャンバス表示拡大
左ステック(下)スポイトツールキャンバス表示縮小
左ステック(左)ブラシサイズ拡大キャンバス表示左回転
左ステック(右)ブラシサイズ縮小キャンバス表示右回転
左ステック(押し込み)レイヤー透明ピクセルロック

メリット

左利きの人でも同じ要領で利用できる

一般的に左手デバイスと呼ばれるようにこの手の補助デバイスは右利きを前提として設計されることが多いですが、今回の方法は左利きの人でも同じように利用することが可能です。

疲れにくい

個人的な感覚ですが、手を開いた状態で操作するキーボードタイプと比べると握った状態で操作できるゲームパッドの方が疲れにくい印象です。また、握ったとき手にフィットする形状なのも良いです。

無線なので自由にポジションを決められる

自分は疲れたときなどたまに膝上に乗せて使うこともあります。

比較的低コスト

大体5千円~1万円という左手デバイスの価格帯の中で自分が使用しているようなゲームパッドは現在約3千円程度と比較的安価に購入できます。

片手持ちでも同時押しが可能

同じような片手持ちデバイスの中に薄型軽量のリモコンタイプがありますが、そういったものは基本親指のみの操作で同時押しが不可能です。それに対しゲームパッドであればL1/L2ボタンを人差し指と中指で操作可能なためCtrl+Shiftといった入力も可能になってより多くの操作に対応することができます。

キーの位置を確認する必要がない

ボタン数の多いキーボードタイプだと押す際に目視で確認するといった手順が必要になる場合がありますが、ゲームパッドなら割り当てた操作を覚えてしまえば目視で確認せず直感的な使用が可能なので慣れるとかなり効率的です。

デメリット

使えるボタン数がキーボードタイプと比べると少ない

基本的に使えるボタンはスティックの4方向入力を含め約10個程度なので、ショートカットを割り当てる際には色々と組み合わせを考えながら配置する必要があります。

手が小さいと少し使いづらい

手が小さいと中央部分のボタンが押しづらかったり4方向のスティック入力の差別化が難しかったりするので不便かもしれないです。

小型のリモコンタイプと比べると大きくて重い

基本的にゲームパッドは両手で使うものなので専用のリモコンタイプと比べればやはり重量的にも体積的にも余分な部分が多いです。

最後に

今回ゲームパッドを左手デバイスとして利用している立場として色々と記載させて頂きました。
慣れると本当に直感的に操作できてストレスも少ないので興味のある方は是非試して頂ければと思います!

【ついにコンプリート】新卒1年目エンジニアAWS認定フルコンプを目指す5:Advanced Networking – Specialty

0

21新卒でアピリッツに入社したエンジニアの串田 匠彌です。せっかくだから新卒1年目のうちにAWS認定資格を全部取得してみることにして、業務の開発と並行して勉強と受験を続けています。順調に受験→合格を重ねて、残るはあとひとつ。2月に合格した「Advanced Networking – Specialty」についてご紹介します。

前回の記事はこちら → 新卒1年目エンジニアAWS認定フルコンプを目指す4:Data Analytics – Specialty , DevOps Engineer – Professional

高まる緊張感

実はMachine Learning – Specialtyの受験から結構緊張していて、常に胃が痛い状態でした……(今となってはいい思い出ですが笑)

合格していたといえばしていたのですが、当時は残り4つだった試験のうち1回でも不合格だと3月末までに間に合うか厳しいということもあり、「次落ちたらヤバい」というプレッシャーが常にあったので多分そのせいです。

11. AWS Certified Advanced Networking – Specialty (2022年2月)

難易度

★★★★★

そもそも「自分はネットワークの知識があまり足りていないかも」と考えていたので、まずは書籍で基礎を学習し、その後は問題演習を繰り返すというフローで進めました。

肝心の問題演習ですが、世に出回っている問題集が少ない&難易度が難しめということもあり「少なくともUdemyとkoiwaclubで聞かれたところは詳細に調べておこう」という意識で勉強し、同じ問題集を何周か解いていました。

(そして試験勉強が終わったタイミングで問題集が発売されました)

勉強方法と勉強時間

書籍とUdemyとkoiwaclubで試験対策をしました。
期間:下記を3週間ぐらい
平日:2時間
休日:5時間

オススメの書籍

マスタリングTCP/IP―入門編―(第6版)

・(Udemy)Practice Exam – AWS Certified Advanced Networking Specialty
・(koiwaclub)https://aws.koiwaclub.com/

以下は自分が受験後に発売されました(もっと早くに出ていれば…!)
・(書籍)要点整理から攻略する『AWS認定 高度なネットワーキング-専門知識』 (Compass Booksシリーズ)

試験についてのアドバイス

今回は書籍とkoiwaclubだけでもどうにかなりそうなレベル感でした。 Advancedと言うだけあって少し突っ込んだ知識が必要かと思いますが、正直なところ実務で使えるかは微妙な気がします…… 。(「Transit VPCって今使うのか?Transit Gatewayがあるからほとんどそっち使う気がする」とか諸々)

対策本も2月末に発売されたことや今年試験改訂が実施されることから、(特段の事情がない限りは)対策本→改訂後の試験を受験というパターンが合格しやすさ、実務での活用のし易さから考えて、ベターなルートなのかなと思います。

全部受験してみて

完走した感想(激うまギャグ)ですが、「早期にSolutions Architect – Professionalを取得したおかげで他の試験も合格できたなー」と感じた場面が多々ありました。特に専門資格の5つにおいてはの業界特有の単語が出題されたりするので、サービス問題(AWSのサービスの知識だけで正答を導けるという意味合い)をなるべく落とさないという精神で取り組むと、良いかもしれません。

難易度の高いものから3つ選ぶとすれば、

  1. Advanced Networking – Specialty
  2. Solutions Architect – Professional
  3. DevOps Engineer – Professional

な気はしています。あくまで個人の感想ですが、Solutions Architect – Professionalは対策本が2冊出版されていてどちらも優秀なのでProfessionalという名前の割には苦労しなかったこと、Advanced Networking – Specialtyの方が、そもそも問題が難しい&学習のリソースを探すのに時間がかかったという点で苦労したことが要因です。

あとは何より、目的を持って勉強することが肝要です。自分の場合、「仕事で悩む時間を減らしたい」という思いや、実務で先輩エンジニアに助けてもらい「自分もこうなるべきだ」と感じたことが学習への原動力となりました。どうしてもやる気が出ないときは参考にしてみてください。

知識をどう活かすか、伝えるか

ひとまず試験を終えて、今後大事になってくるのは「今まで得た知見を、ここからどれだけアウトプットできるか」だと考えています。

なので無論、実務で結果を出すということは引き続きシビアに取り組みますが、それに加えて後輩に技術を伝えていくこともやっていきたいです。上の世代から技術を教わり、それを今度は自分が下の世代に伝えていくって、何か面白さを感じませんか?

それを実現するためにも、純粋な技術力だけでなく人に伝える力のような人間力も養っていきたいです。

スコア(参考程度に)

下記の通りです。

試験名スコア
AWS Certified Cloud Practitioner(AWS-CLF)874
AWS Certified Solutions Architect – Associate(AWS-SAA)725
AWS Certified Developer – Associate(AWS-DVA)905
AWS Certified SysOps Administrator – Associate(AWS-SOA)801
AWS Certified Solutions Architect – Professional(AWS-SAP)824
AWS Certified DevOps Engineer – Professional(AWS-DOP)894
AWS Certified Security – Specialty(AWS-SCS)798
AWS Certified Database – Specialty(AWS-DBS)794
AWS Certified Machine Learning – Specialty(AWS-MLS)903
AWS Certified Data Analytics – Specialty(AWS-DAS)819
AWS Certified Advanced Networking – Specialty(AWS-ANS)876

新卒1年目エンジニアAWS認定フルコンプを目指す4:Data Analytics – Specialty , DevOps Engineer – Professional

0

21新卒でアピリッツに入社したエンジニアの串田 匠彌です。せっかくだから新卒1年目のうちにAWS認定資格を全部取得してみることにして、業務の開発と並行して勉強と受験を続けています。フルコンプまでのゴールが徐々に見えてきました。今回は12月に合格した「Data Analytics – Specialty」と22年1月に合格した「DevOps Engineer – Professional」についてご紹介します。

前回の記事はこちら → 新卒1年目エンジニアAWS認定フルコンプを目指す3:Database – Specialty , Machine Learning – Specialty

残りはあと3つ(ここで少しペースダウン)

目標とするAWS認定はあと3つ、「Data Analytics – Specialty」「Advanced Network – Specialty」「DevOps Engineer – Professional」です。

前回の合格が2021年の10月以降、残りの3つをどの順番で受験しようか決めかねていました。Udemyに問題集があるとはいえ、それ以外の具体的な学習のロードマップが自分には考えつかなかったのです。

趣味が再燃したり、自分の体力に見合っていない学習ペースが続いたりで、少し気分が乗らなくなっていったのも正直なところです。

ただ、フルスタックサービス部の鈴木さんから「頼むぜホントに~」と強く励まされていましたし、ここでやめるのもな、と考えなおしました。

また、自分が高校受験の時にお世話になった塾講師の「それだけのことだった」という言葉を思い出してやる気を出しました

「それだけのことだった」というのは、ざっくりいうと「何かと何かを比較して、選ばれなかった方は選んだ方よりもどうでも良い」という意味です。今回のAWS認定を全部取ることについては「あと4,5ヶ月踏ん張って悔いなく受賞発表の時期を迎える」あるいは「また来年に目標を再設定してゆっくりやるか」の2つを比較してみました。で、前者を選んだというわけです。

9. AWS Certified Data Analytics – Specialty(2021年12月)

難易度

★★★★

なかなか難しい分野でしたが、各種サービスのユースケースを把握することが肝要だと思います。
Redshift SpectrumとAthenaとS3 Selectとか。

勉強方法と勉強時間

書籍とUdemyとBlackBeltで試験対策をしました。
期間:下記を1ヶ月
平日:2時間
休日:5時間

オススメの書籍

ビッグデータを支える技術

→ こちらの本は、既に「Data Analytics – Specialty」に合格していた浅田さんのオススメされました。一通りの基礎知識はこれだけで学習できそうだったので、書籍での勉強はこの本だけに絞って、あとは問題を解きまくる方針にしました。
・(Udemy)AWS Certified Data Analytics Specialty Practice Exams
・(BlackbBelt)「Analytics」カテゴリーのPDF

試験についてのアドバイス

「EMRとかHadoopとか、聞いたことはある」という状態から学習を始めました。 機械学習の受験勉強と同様に「まずは一般的なビッグデータの処理及び活用の手法を知り、それからAWSのサービスを知る」という順序でよいと思います。また、問題を解く経験値を積むことも重要です。

10.AWS Certified DevOps Engineer – Professional(2022年1月)

他の方の合格体験記や浅田さんの感想では「DOPはSAPよりは簡単」といったニュアンスでしたが、僕からしたらSAPと同レベルぐらいでしたそもそも「2年以上の経験を持つ個人を対象とするもの」って公式に書いてあるやんけ

この頃から案件が忙しくなってきており、なかなか勉強時間が確保できなかったのですが、3月末までに全資格を制覇するとなると、ここら(1月末)で受けるしかないのかなーと渋々受験しました。

難易度

★★★★ (4.5かも)

勉強方法と勉強時間

期間:下記を1日ずつ
平日:1時間
休日:5時間

オススメの書籍

AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト – プロフェッショナル
・(Udemy)AWS Certified DevOps Engineer Professional Practice Exams

試験についてのアドバイス

今回はUdemyにかなり助けられました。問題のレベル感も実際の試験と大きく変わらないのでおすすめです。ありがとうUdemy。

不合格のことは不合格になってから考えればいい

「DevOps Engineer – Professional」の受験時は「あと2つで全制覇」という状況だったので、ひたすら「合格したらどんな気分だろう」とイメージしてモチベを維持していました。不合格だったときの心境は不合格になってから考えれば良いので……

ということで、残るはいよいよあと1つ。「Advanced Networking – Specialty」です。

AWS RDS ProxyとLambdaを連携してみた

0

姿勢矯正ベルトで背筋を伸ばしながら書いています。ゲームデザイン(GD)部クライアントエンジニアの中村です。

最近、個人的にAPI Gateway+Lambdaを利用したサーバーレス環境でのサービス展開を模索する中で「LambdaとRDSは相性が悪い」という記事をよく見かけ、「なんだそうなのかー。仕方ないからDynamoDB使おう」程度に軽く考えていました。しかしながら、最近 AWS Certified Database – Specialty 取得のための学習を行っていたところ RDS Proxy というサービスに気づきました。これを利用することでLambda+RDSが利用できるようになるとのことだったので、そもそもの相性の悪さとその解決策まで、実際に利用して体験しました。

LambdaとRDSの相性の悪さ

LambdaとRDSの相性の悪さはデータベースコネクション数の最大値にあります。Lambdaはその特性上、リクエストに応じて大量にコンテナが実行されます。このとき起動されるコンテナの数を制御できないため、大量のコンテナからデータベースへのコネクションが発生すると上限を超えてしまう事態が発生するようです。

単純にデータベースコネクションの最大数を上げれば解決できそうですが、データベースが受け入れるコネクション数を増やすとそれに応じて使用メモリも増えていきます。そのため、AWS RDSではすでにチューニングされたデフォルト値が用意されています。この数値を変更することは推奨されておらず、コネクション数を増やすのであればインスタンススペックを上げる必要があります。

RubyOnRailsやLaravelなどのフレームワークではデータベースコネクションをプーリングして使いまわすことができるように設計されていますが、Lambdaでは実行コンテナごとに処理が独立しているためそれが行えません。大規模なリクエストに対して発生するデータベースコネクションをコントロールできないため、データベースインスタンスのスペックを上げても対応しきれない可能性があります。

今回はこの問題を体験するに当たって、以下のような構成を作成しました。

  • Pythonで記述したシンプルなSELECTコード
  • IAMロールでのDB認証
  • RDSからdb.t2.microインスタンスにMySQLを起動
  • menusテーブルにダミーデータとして定食屋のメニューが含まれる(このデータをSELECTする)
  • locustから100ユーザによる合計10,000のアクセスを生成する
session = boto3.Session()
client = session.client('rds')
token = client.generate_db_auth_token(DBHostname=ENDPOINT, Port=PORT, DBUsername=USER, Region=REGION)

def lambda_handler(event, context):
        statusCode = 200
        connection = None
        try:
            connection = pymysql.connect(
                host=ENDPOINT,
                user=USER,
                passwd=token,
                port=PORT,
                database=DB_NAME,
                charset='utf8mb4',
                ssl={'ca': CA_FILE, 'check_hostname': False}
            )
            with connection.cursor() as cursor:
                cursor.execute("SELECT * FROM menus")
                query_results=cursor.fetchall()
        except Exception as e:
            print(e)
            statusCode = 500
        finally:
            if connection is not None:
                connection.close()
idnamepriceimage_prefixtakeout
1目玉焼き定食500menu_med0
2唐揚げ定食750menu_kar0
ダミーデータ

from locust import task, SequentialTaskSet

class LocustTask(SequentialTaskSet):
    def on_start(self):
        self.user.reset()
    @task
    def simple_get(self):
        request_params = {
        }
        self.client.get(
            url="/",
            params=request_params,
            headers=self.user.request_headers(),
            name=f"simple_get [GET /] "
        )
    @task
    def end_task(self):
        self.interrupt()

RDS Proxyを利用しない場合

直接データベースにコネクションを生成するのでコネクションに関する問題が発生する可能性があります。

今回使用しているデータベースインスタンスdb.t2.microは最大コネクション数が65 (推奨値 DBInstanceClassMemory/12,582,880)となっているため、65以上のコネクションを生成した際に問題が発生します。

mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 65    |
+-----------------+-------+

これを確認するためにlocustから100ユーザーによる同時リクエストを行いました。

その結果、locust上では10,000件のリクエストの内3,500件のエラーが発生しました。 lambda_handler 内でtry-catchした際のstatusCode=500 を応答しているため、コネクション生成時かクエリ実行時にエラーが出ていることがわかります。

locust実行結果-RDS Proxyなし

実際にCloudWatchには以下のようなToo many connectionsエラーが確認でき、コネクションの生成数が多すぎることが分かります。

2022-02-24T13:59:25.286+09:00	START RequestId: a17a17d2-1a12-4ce9-a5ce-ae7f7bb7eca4 Version: $LATEST
2022-02-24T13:59:25.740+09:00	(1040, 'Too many connections')

また、CloudWatchメトリクスでデータベースコネクション数を確認すると、上限の65を超えて75に達しているようです。

データベースコネクション数-RDS Proxyなし

以上の結果から、LambdaとRDSに対するデータベースコネクションの相性の悪さが確認できました。

次にRDS Proxyを利用していきます。

RDS Proxyを利用する場合

RDS Proxyを利用する場合は以下のような構成図になります。

RDS Proxy作成

まずはRDS Proxyを作成します。RDSページのメニューから[プロキシ]を選択して作成メニューを表示します。

RDS Proxyは基本的にはデフォルト設定で、IAM認証を利用するためTLSが必要となります。

RDS Proxy プロキシ設定

プロキシのターゲットは事前に作成しておいたproxy-targetデータベースです。接続プールの最大接続数は70%にしておきます。これでこのプロキシを経由するとproxy-targetデータベースにはコネクション最大数の70%までしか接続されないことになります。残りの30%は別のシステムからアクセスされる可能性を考慮しておきます。

プロキシからデータベースへの接続にはUser/Password認証を利用します。このときの認証情報はPlainTextではなくSecrectsManagerで保護されている必要があります。今回はキーローテーションなしでSecretsManagerを利用しています。さらにクライアントからプロキシへの認証はIAM認証を必須としています。

以上でプロキシの作成は完了です。プロキシが作成されると以下のような「プロキシエンドポイント」が利用できるようになります。

experiment-db-proxy.proxy-xxxxxxxxxxxx.us-east-1.rds.amazonaws.com

LambdaにRDS Proxyを導入

LambdaからRDS Proxyへの接続についてはデータベースエンドポイント用の環境変数ENDPOINTをプロキシエンドポイントに切り替え、pymysqlが利用するssl認証ファイルの環境変数CA_FILEをRDS Proxy用のものへ変更します。もともとIAM認証を導入しているシステムであればプロキシを利用するように簡単に切り替えることができます。

環境変数を切り替えてLambdaを実行したところデータベースから定食屋のメニューのレスポンスがあったので問題なく接続できているようです。

START RequestId: fcc8ae58-e350-4d84-b641-32e91760ab24 Version: $LATEST
Response
{
  "statusCode": 200,
  "body": [
    [ 1, "目玉焼き定食", 500, "menu_med", 0 ],
    [ 2, "唐揚げ定食", 750, "menu_kar", 0 ],
    [ 3, "カツ丼", 650, "menu_kat", 1 ],
    [ 4, "ラーメン", 600, "menu_ram", 1 ],
    [ 5, "チャーハン", 400, "menu_cha", 1 ],
    [ 6, "生姜焼き定食", 800, "menu_sho", 1 ],
    [ 7, "うどん", 300, "menu_udo", 1 ],
    [ 8, "牛丼", 380, "menu_gyu", 1 ],
    [ 9, "カレーライス", 450, "menu_cur", 1 ]
  ]
}

それではこの状態でlocustから100ユーザーによる同時リクエストを実行します。その結果、10,000リクエスト中にエラーは発生しませんでした。代わりに若干平均応答時間が遅くなっているようです。

locust実行結果-RDS Proxyあり

Lambdaの実行ログでもエラーは一切確認できませんでした。

2022-02-24T14:37:11.269+09:00	START RequestId: 273371cb-aa3e-4e31-a5f2-e8e1412e0c49 Version: $LATEST
2022-02-24T14:37:11.272+09:00	lambda_handler
2022-02-24T14:37:11.879+09:00	END Requ2022-02-24T14:37:11.269+09:00

CloudWatchメトリクスからデータベースコネクションを確認すると、RDS Proxyに対するコネクションは65に対して、データベースに対するコネクションはわずか8となりました。Too many Connections が発生するほどのコネクションをRDS Proxyが吸収し、コネクションを使いまわしている状況を確認することができました。

データベースコネクション数-RDS Proxyあり

まとめ

今回はLambdaからRDSを利用する際の問題点を確認しました。実際にToo many connectionsが表示され、データベースのコネクション問題を見ることができました。さらにその解決策としてRDS Proxyを利用してデータベースコネクションが使い回されている状況を見ることができました。

サーバーレスアプリケーションでLambdaを利用することがあり、その環境でRDSが必要となるならばRDS Proxyも必須となるでしょう。プロジェクトにもぜひ利用していきたいと思います。

新卒1年目エンジニアAWS認定フルコンプを目指す3:Database – Specialty , Machine Learning – Specialty

0

21新卒でアピリッツに入社したエンジニアの串田 匠彌です。せっかくだから新卒1年目のうちにAWS認定資格を全部取得してみることにして、勉強と受験を続けています。2022年2月に最後の試験「AWS Certified Advanced Networking – Specialty」を控えています。今までの試験について振り返る記事の第三弾は、7月に合格した「Database – Specialty」と10月に合格した「Machine Learning – Specialty」についてです。

前回の記事はこちら → 新卒1年目エンジニアAWS認定フルコンプを目指す その2: Security – Specialty 、Developer – Associate 、SysOps Administrator – Associate 編

先人にすがれ!

アピリッツの社内Slackには「#aws試験対策本部」というオープンチャンネルがあり、AWS関連の雑談や勉強法についての情報交換を行っています。ここで質問すればおそらく多くの先人達が返事をくれます(自分の場合は、疑問点は自分でちょっと調べたらほぼほぼ解決してしまったので、ここで相談することはありませんでしたが、勉強法や対策本について参考にしていました)

社内に相談できる人がいるとはいえ、「3月末までに11個のAWS認定に合格する」という目標を自分で立てた以上、毎回必ず一発合格していかないと3月末までに間に合わないかもと焦っていました。なので手当で増えた給与明細の10の桁を見直してみたり、些細なことでもいいので自分の中でやる気を奮い起こそうとしていました。

また、ちょうどこの時期に関わった案件でガッツリとAWSを触ることになりました。今まで自分が学んできたことが役に立つチャンスが来たんです。勉強を続けてきたおかげで自信が持てました。

7.AWS Certified Database – Specialty (2021年7月)

難易度

★★★★(3.5かも)

これを取ったら資格数的には折り返し地点だったので、モチベーションは比較的高かったです。 このあたりから無理やりにでもやる気を出そうと頑張ってました。「次取ったら専門知識の資格内だったら折り返し!」といったふうに細かくマイルストーンをイメージして乗り越えていきました。

また、前々回に取得したセキュリティにも言えることなのですが、受験対策用の書籍が出ています。これを何周かすればどうにかなります。

勉強方法と勉強時間

書籍のみで試験対策をしました。
期間:下記を10日間程度
平日:3時間
休日:5時間

オススメの書籍

要点整理から攻略する『AWS認定 データベース-専門知識』

試験についてのアドバイス

RDS、Elasticacheなどのよく使用するものはもちろん、普段使わないようなDBサービスも出題範囲なので、細かい仕様の違いを把握するのに苦心しました。SQL ServerとOracleが特殊すぎるんじゃぁ〜

ただ、よく使うDBエンジンだったり、モニタリングなどの周辺知識があれば、合格は(他に比べれば)難しくなかったです。

8.AWS Certified Machine Learning – Specialty(2021年10月)

AWSの試験ではあるのですが、広範な機械学習の知識が多く問われるので別のテスト受けてる感覚がありました(笑)。
自分は機械学習に関して全くの素人だったので、アルゴリズムや各種用語を覚えるのが大変でした……

こちらは、自分が受験した時点ではDatabase – Specialtyのような受験対策用の書籍は出ていませんでした。なので、その分野に関わる基礎知識をUdemyやBlackbeltなどを活用して学習しました。

難易度

★★★★

勉強方法と勉強時間

期間:下記を1ヶ月半
平日:1時間
休日:5時間

オススメの書籍

エンジニアなら知っておきたいAIのキホン
↑ これはAWSトップエンジニアの浅田さん推薦の一冊です。ストーリー仕立てで「機械学習とはなんぞや」ということをまとめてあります。漫画感覚で読めました。

見て試してわかる機械学習アルゴリズムの仕組み 機械学習図鑑
↑ 図解で分かりやすい、各アルゴリズムの特徴を2~3行でまとめてあるので読みやすかったです。

機械学習&ディープラーニングのしくみと技術がこれ1冊でしっかりわかる教科書
↑ 機械学習図鑑よりも範囲は絞られていますが、詳細かつ分かりやすい説明だったので書店で立ち読みして購入しました。

・(Udemy)AWS Certified Machine Learning Specialty Practice Exams
・(Udemy)AWS Certified Machine Learning Specialty Full Practice Exam
・(Udemy)AWS Certified Machine Learning Specialty: 3 PRACTICE EXAMS

試験についてのアドバイス

受験後に感じたことではありますが、まずは市販の書籍1冊を2~3周してある程度基礎を学んで、残りの時間は全て問題集に費やすのが良い勉強法なのかなと思いました。 書籍だと知識は増えるのですが、問題を解く力はあまり鍛えられないからです。 この分野の経験者であれば、比較的簡単なのかなと思います。

「次は何を受けるのー?」

11のAWS認定のうち8に合格すると、「串田=AWS認定を勉強しまくってる者」という確固たるポジションが社内に出来上がっていました。なので、社内mtgで「来週の月曜日有給取ります」と自分が発言すると、クラウドインテグレーション部の剣持さんからすかさず「次は何を受けるのー?」などと声がかかるようになりました。(なお、そのときは試験は関係なく思いっきり私用でした)

残るはあと3つ。「Data Analytics – Specialty」、「DevOps Engineer – Professional」、「AdvancedData Analytics – Specialty」です!

新卒1年目エンジニアAWS認定フルコンプを目指す その2: Security – Specialty 、Developer – Associate 、SysOps Administrator – Associate 編

0

21新卒でアピリッツに入社したエンジニアの串田 匠彌です。せっかくだから新卒1年目のうちにAWS認定資格を全部取得してみることにして、勉強と受験を続けています。2022年2月に最後の試験「AWS Certified Advanced Networking – Specialty」を控えています。今までの試験について振り返る記事の第二弾では、2021年6月に受けた3つについてご紹介します。

前回の記事はこちら → 新卒1年目エンジニアAWS認定フルコンプを目指す その1:Cloud Practitioner 、Solutions Architect – Associate 、Solutions Architect – Professional編

「頼むぜホントに~」と部長が応援してくる

6月に入ると、業務もかなり忙しくなってきました。アピリッツは1年目から裁量の大きな仕事を任されます。「一人前のエンジニアになる階段が100段あったとして、アピリッツはかなり早く登りきれそうだなー」と思いました。

それはそれとして、一年目のあいだにAWS認定をコンプリートしたかったので、勉強も続けます。6月は3つのAWS認定を取りました。

この時期は「自分はどこまで無理をしようか」「どうやって成長しようか」と考えることが多かったです。無理をしすぎるとよくないけれど、どこかで負荷をかけないと成長しませんし、他人と差をつけることはできません。どうやって自分を成長させていくかというロードマップを引くのに苦心していました。

ただ、そうやって苦労しながら仕事のあとや休日に勉強したり、その結果資格に合格していくと、まわりはちゃんと見てくれます。鈴木部長との面談ではアドバイスをもらえましたし、「頑張れよ~」「頼むぜホントに~」と後押ししてくれました。自分の成長を考えてくれているんだなあ、と感じました。

4.AWS Certified Security – Specialty (2021年6月)

難易度

★★★★ (3.5~4ぐらい)

SAPの次はセキュリティを受けようと決めていました。理由は、対策本がすでに世に出ていたこともありますが、なによりセキュリティは必修の分野だと考えたからです。 プロジェクトにおいて「機能を開発できなかった」は少しマイナス程度で済みますが、「セキュリティリスクを抱えた実装」はとんでもないマイナス(損失)になりえます。甚大な被害を出さずに仕事を進めるには、まずセキュリティを学ぶのが一番効率的だと考えました。

ということで、SAAの受験等で最低限のセキュリティは学習できますが、より安全な実装のために早めの受験をおすすめします

勉強方法と勉強時間

書籍のみで試験対策をしました。

期間:1ヶ月
平日:1時間
休日:2時間

オススメの書籍

要点整理から攻略する『AWS認定 セキュリティ-専門知識』

(図解が多く理解しやすいのですが、それ以上に誤字脱字が多いのが気になりました……)

試験についてのアドバイス

学習の段階で、エンべロープ暗号化、フォレンジックサーバ等あまり聞いたことのない単語が出てきます。 加えて、暗号化の仕組みやAWSの各種セキュリティサービスの違いを理解するのに苦労しました。

ただ、勉強中に「IAM(権限管理のサービス)の書き方と他のセキュリティサービスの概要を知っていれば合格できそう」と感じたので試験ではそんなに緊張しませんでした。

5.AWS Certified Developer – Associate(2021年6月)

SAP合格後に受験したため、あまり困るようなことは起きませんでした。使用した書籍は穴埋め程度に使用しました。

難易度

★★

勉強方法と勉強時間

書籍のみで試験対策をしました。
期間:2週間
平日:30分
休日:1時間

オススメの書籍

ポケットスタディ AWS認定 デベロッパーアソシエイト
(これからDVAを受ける人にとっては、合格に必要な知識が満遍なく学習できるため、おすすめです。)

試験についてのアドバイス

SAA(Solutions Architect – Associate)と求められる知識・レベルはほとんど変わらないので、SAAに合格し、少しでも実務経験を積めば、こちらも少ない労力で合格可能かと思います。

6.SysOps Administrator – Associate (2021年6月)

DVAの2日後に受験予定だったため勉強時間が確保できなかった、有効な教材がなかった、という要因でほぼノー勉で受験し、痛い目を見ました。(一発合格でしたが、つまづく問題が多々あって試験中かなり焦りました)

難易度

★★★

勉強方法と勉強時間

なし

オススメの書籍

特にありません

試験についてのアドバイス

SAAと求められる知識・レベルはほとんど変わらないのですが、「クラウドオペレーションのロールを持つシステム管理者を対象に技術スキルの検定を行うことを目的としています」と公式にある通り、普通のエンジニアだと経験が積めないような分野です。先日の試験改訂で実技が入ったみたいなので、どうしても実技が嫌な人はSAPを受けましょう(笑)

給与明細の十万の桁を変えたい

6月のAWS認定を全部取ると、会社から資格手当などで10万円ぐらい振り込まれます。なので「給与明細で十万の桁の数字が違う気分を味わってみたい」という目標を立てて勉強していました。また、ここで3つ合格したら6つ取得したことになるので、折り返し地点まで頑張ろうという意味でも6月は重要な月でした。

続きます!

新卒1年目エンジニアAWS認定フルコンプを目指す その1:Cloud Practitioner 、Solutions Architect – Associate 、Solutions Architect – Professional編

0

21新卒でアピリッツに入社したエンジニアの串田 匠彌です。入社してまもなくの2021/4/10に、AWS認定 Solutions Architect-Professional(以下、AWS-SAP)に合格しました。社内の後押しもあって、せっかくだから新卒1年目のうちにAWS認定資格を全部取得してみることにしました。
11ある認定資格のうち、2022/2/1現在10に合格し、残りあと一つです。それぞれの試験の勉強方法や難易度、そしてどんな試験であったかについて、何回かに分けてお伝えできればと思います。

全制覇を目指したキッカケ

アピリッツに入社してすぐにAWS-SAPに合格しました。ここで勢いがついたのと、CDXOの西脇さんとメンターの鈴木利夫さん(フルスタックサービス部部長)に「やってみれば?」と応援してもらったのきっかけに、さらに勉強を続けることにしました。また、自分がAWS-SAPに合格したのと同じタイミングでアピリッツの社内でもAPN表彰手当という制度が決まり、うまくいけば100万円以上の手当がもらえるようになりました。この制度も、自分が勉強するうえでの良い目標になったと思います。

次項からはそれぞれの試験の難易度(自分の体感で5段階)と、オススメの書籍について紹介します。

1.AWS Certified Cloud Practitioner (2020年2月)

難易度

これは入社前(大学生)にすでに合格していました。人によってレベルは違うかと思いますが、エンジニアではない人やIT未経験の人間でも十分に合格可能です。

勉強方法と勉強時間

書籍のみで試験対策をしました。

期間:3日間
平日:3時間
休日:5時間

オススメの書籍

AWS認定資格試験テキスト AWS認定 クラウドプラクティショナー

試験についてのアドバイス

AWS認定の試験難易度については、個人的には

  • クラウドプラクティショナー:単語テスト
  • アソシエイト3種:単語並べ替えて文章作る問題
  • プロフェッショナル2種:長文読解

という表現が近いのかなと思っています。つまり、アソシエイトレベルまでは各種サービスの概要を理解していれば合格可能なので、「知らないサービスの、概要を知る」という勉強が近道なのかなと。

2.AWS Certified Solutions Architect – Associate (2020年10月)

難易度

★★★

直前の試験のバージョンアップというアクシデントがありましたが、合格できてよかったです。前バージョンの試験を受験していないのですが、問われる内容・レベル共に大きな差異はないのかなと思います。

勉強方法と勉強時間

下記を1ヶ月
平日:60分
休日:120分

オススメの書籍

AWS認定アソシエイト3資格対策~ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター

一夜漬け AWS認定ソリューションアーキテクト アソシエイト(の前バージョンの書籍)

試験についてのアドバイス

自分が使用した書籍は前バージョンのものですので、今から受ける人は使用しない方がよさそうです。ただ3資格対策と謳うだけあって読破すれば結構な知識がつきます。

SAAの対策本が多いことからも、人気の資格であることはなんとなく理解していたので、「これに合格したらすごいことだ」とやる気を引き立てて勉強してました。

3.AWS Certified Solutions Architect – Professional (2021年4月)

難易度

★★★★★

他の方の合格体験記を読んでみると「1,2回落ちるのが前提」のような雰囲気だったので、試しにたたき台として受けたらサクッと取れてしまったというのが実情です。 「とんでもなく」が付くほど大変というわけでもありませんでしたが、振り返ってみると出題サービスが多い、問題文が非常に長いといった点から一番難しい試験だったのかなと思います。

「落ちたところで結局たたき台で受けたのだから、お金が減るだけ。どうということはない」という吹っ切れ精神が、試験にリラックスして臨めた要因だったかもしれません。 加えて、試験を受ける以上「実力を出せた出せなかったに関わらず、受験費用は取られる」と考えると集中できました(笑)

勉強方法と勉強時間

書籍とオンライン学習プラットフォームのUdemyを使って勉強しました。

期間:約2ヶ月(2/1~4/10)
平日:通勤の1時間、家での自習1時間
休日:カフェ(9割ドトール)で4~5時間

オススメの書籍

AWS認定ソリューションアーキテクト-プロフェッショナル ~試験特性から導き出した演習問題と詳細解説
・(Udemy)AWS 認定ソリューションアーキテクト プロフェッショナル模擬試験問題集(全5回分375問)

試験についてのアドバイス

紹介した書籍での勉強がおすすめです。ちゃんとした日本語(Udemyのようなぎこちない日本語の教材ではないという意味)で、実際に出題される問題のレベルが近いので。

合格後にはなりますが、最近出版された「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト – プロフェッショナル」を、次のDevOpsプロフェッショナル対策の意味合いで読んでみました。こっちは試験範囲を網羅する点では優秀でしたが、合格するためには問題を解く経験値を積む必要があるので、今回紹介した書籍との併用が良いかと思います。

AWS-SAPを取れたのなら、全部勉強してみようか、となった

AWS-SAPを入社してすぐに取ったことで、メンターの鈴木さんと西脇CDXOから「え! もうとったの? 早! よし、じゃあ全部とろうか!」と何度もはげまされることになりました。CFOの永山さんも「いいね~!」と陽気に盛り上げてくれます。社長の和田さんにも名前をすぐに覚えてもらいました。こんなにみなさんに応援していただけるし、会社からの手当も沢山もらえる。このグルーヴ感に乗るしかないな……と決めて、次はセキュリティを勉強することにしました。次回の記事でお話しますが、セキュリティは率先してやるべきだと感じたのです。そして対策本がすでに出版されていたので挑戦しやすかった。

以上、入社前~入社直後の話です。次回は、Security – SpecialtyとDeveloper – Associate、SysOps Administrator – Associate編です!

資料共有のおかげでスムーズに業務開始できた話

0

アピリッツのオンラインゲーム事業で活用中のデータベース「CREATORSナレッジベース」からのおすそ分け記事です。今回はクライアントエンジニアとして活躍中のIさんが開発現場で感じた資料共有の大切さについてのお話です。(2022年1月 取材・作成)

このナレッジを書いた人
Iさん
2019年に新卒でアピリッツに入社。
現在はUnity C#で主にクライアント側を担当中。
とくにUnityでアウトゲームを作るのが得意。
漫画「BLEACH」が大好き。
どこにいっても「IといったらBLEACH」という印象になる。

ES部のIです。

今回は常駐開始したばっかの自分が、プロジェクト内で細かく資料が共有されているおかげでスムーズに業務に取り掛かることができたという話をしたいと思います。

今まで自分のいたプロジェクトでもビルドや更新、環境構築などの「手順」については資料にまとめられていました。新しいプロジェクトでも同様に資料共有がありましたが「なるほど」と思う新鮮な部分もいくつかありました。ということで、今までのプロジェクトの資料共有の違い、感じたことをまとめました。

入ったばっかりのプロジェクトで、実装時にあると助かる情報

たとえば、汎用的に使用するクラスなどの使い方が共有されていると、

プロジェクトに入ったばっかでもスムーズに作業に取り掛かることができます。

キャラクターを表示するにはどのクラスをどう使えばいいんだろう
フェードを表示するには?
データベースの追加は?
シーンの構成は?
サウンド再生は?


などなど皆が使用するであろうクラスの使い方などがまとまっていると、後からそのプロジェクトに入るメンバーは非常に助かるはずです。

気軽に共有できる大切さ

とくにいいなと思ったのは、誰でもメモレベルで情報共有のための記事を社内向けに投稿できるところです。

記事を書かないといけないというルールがある訳では無く、皆が当たり前のように情報を共有しているんです。

  • 例えば何か実装の調べものをしている際にたまたま見つけた良い記事を共有するとか
  • 自分が何かを実装する際のメモ帳変わりに使ってたりとか

情報共有ツールを使ったとしても、結局投稿する人がいなければ意味がありません。

情報共有を活発におこなうためには、情報共有のハードルを下げて、投稿する人をふやすいうのは非常に重要な点だと感じました。

一か所にまとまってるのが楽

情報共有された内容を社内全体で共有できるとさらに便利です。

つまり、プロジェクト内での共有場所と、社内全体での共有場所が同じというのがポイントだと思います。(一か所にまとまってるのが楽)

他のプロジェクトで使用している技術や、その人の持っている知見、メモなどが社内全体に気軽に自由に共有されていることで色んな情報が飛び交う良い文化だと思いました。

まとめ  

  • 情報共有を習慣化するには気軽さが大事だと感じた(メモなど)
  • 気軽さがある上で社内全体にも共有できると色んな技術や知見が飛び交う
  • 実装面の資料(汎用的なクラスの使い方、構成など)があるとスムーズに作業に入れる

応用

ここからは「こんな使い方もいいんじゃないかな?」と思った点などを書いていきます。

・自分が担当した画面の実装をまとめる。

汎用的なクラスの共有だけではなく自分一人で完結している画面などもまとめて共有してもいいかもと思いました。

  • それぞれのクラスの役割
  • それぞれのメソッドでどのような処理を行っているか簡単なメモ
  • 処理のフローはどうなっているか

など、自分で資料にまとめることでまず自分の中で実装を整理することができます。

結果的にその資料が引継ぎ資料にもなりますし、実装に取り掛かる前にメモレベルで実装方法を整理して共有しておけばエンジニアリーダーなどに見てもらいその実装の想定で問題ないかなど意見をもらうこともできます。

それが社内で共有できれば似たような画面を実装する際に参考にできるしいいなと思いました。

おまけ:ツールの紹介「DocBase」

自分はよくDocBaseという情報共有ツールを使用しています。

DocBaseでは

  • グループを作成して公開範囲の設定
  • グループ、タグ、メンバーから検索できる記事の探しやすさ
  • 議事作成の気軽さ

これらが強みなのかなと思います。

「グッズは出る?」「まだ続くよね……?」 ゴエティアクロス、ユーザーから頂いたご質問に開発チームが答えます!

0

アピリッツのオンラインゲーム『ゴエティアクロス(ゴエクロ)』は、もうすぐ3.5周年を迎えます。もっともっと盛り上げて末永く愛されるコンテンツにしたい……ということで、ユーザーの皆さまから寄せられた質問に、プロジェクトリーダーの黒川が正直にバンバンお答えします!(2022年1月 取材)

ゴエクロの設定資料集やグッズみたいなものを出す予定はありますか?

皆さまからのご要望が多ければ、検討はしていきたいですね! 一般的な販売というより「完全生産受注」とかなら可能そうですね!

そろそろ前作で出てきたキャラクターが終わりそうですが、この先はあるのでしょうか?

そうですね。外伝で新キャラクターをどんどん実装したり、ゴエクロのメインストーリーで出てくるキャラクターを実装したりなど色々検討していますので、まだまだ先はあります!

コラボとか最近ないですが、予定とかありますか?

アピリッツのオリジナルタイトル(例えば式姫など)とコラボできたらいいなと思います。それとは別に外部のゲームやアニメのコラボも現在検討中です。お楽しみに!

アプリが重すぎてまともにゲームができないことがあります! 改善して……?

ゴエクロは様々なプラットフォームで展開しており、原因特定にかなり時間を要しています…。ユーザーの皆さまからご指摘をいただいていることは重々承知しております。

現在も原因調査を1つずつ行い、原因特定を急いでおります。進展あり次第ご報告させていただきます。

※現在は「読み込みが重いため落ちてるのでは?」と仮説を立て「手始めにエフェクトチップから、グラフィックリソース周り少しずつ軽量化模索中」になります。

盤想戦などのコンテンツのテコ入れはありますか?

テコ入れの予定はあります! 盤想戦でのテコ入れについては、出現するエネミーを更新したり、盤想戦イベントのようなものを開催する予定です。また、その他のコンテンツも順次テコ入れをしていく予定です!

声がついていない魔神に、今後ボイスがつくことはありますか?

現在ボイスがついていないRやNの魔神達には順次つけていくことが確定しております! ただ、コロナ渦で収録もなかなかできないため、時間はかかるかなとは思います。
どの魔神からボイスがつくかはお楽しみということで!

露店や交換所などのアイテムのリニューアル予定はありますか?

3.5周年のタイミングや、他のキャンペーン時に、アイテムや価格の見直しをして整えていきたいと思います
また、ユーザーの声でご希望が多い「金の転輪」に関しても、ラインナップや交換できるUR魔神の供物の対象魔神の更新等も行う予定です。

去年はロードマップがあったけど、今年はロードマップないの?

ロードマップに関しては、3.5周年付近と4周年付近で公開いたします。
年2回は更新していきたいと考えています。

ゴエクロってまだ続きますよね……?

はい! まだまだ続きます! メインストーリーの天界との戦いは佳境を迎えつつあります。しかし、その後も新しい形でゴエクロの世界が続くように協議しております。
また、運営一同も元気いっぱいなのでご心配無用です!

今後もこんな感じでQ&Aを公開していきます。これからもゴエティアクロスをよろしくお願いいたします!

最近人気な記事