Contents
専門用語はわからなくて当たり前
開発に携わる仕事をしていて困るのが専門用語を使って説明しても伝わりにくいということです。これはマウントでもなんでもなくて僕が他の業界に行った時にも逆のことが起きると思います。専門知識がある人からしたら「こいつはなんでわからないんだ!」と思われると思うからです。
ですから、これまでも案件でエンジニアからの要望や連絡があった場合、僕側できるだけわかりやすい表現や伝わりやすい表現に置き換えることを心掛けてきました。例えば過去に下記のような連絡が開発からありました。
-
[prd/stg] *.example.comで利用しているALBの削除と移行
開発に携わっていない人が見た場合、正直これは何を意味しているのかさっぱりだと思います。
何を意味しているのか?
まず[]内のprdはproductionの省略で本番環境、つまりお客さんのサービスが動いている環境になります。その横のstgはstagingの略でステージング環境、つまり、本番反映する前のテスト環境的な位置づけの環境になります。
続いて、.example.comの前にアスタリスクがついていますが、これはワイルドカードといって、example.comのサブドメインすべてが含まれるということです。最後にALBとはApplication Load Balancingの略でAWSのサービスで利用可能な負荷分散を担うものになります。これはユーザーからのアクセスの交通整理をしてくれる人のようなイメージです。
まとめると、本番/テスト環境におけるexample.comのサブドメインを含むすべての環境で利用されている負荷分散機能を削除し移行するとなります。これでも伝わらない時は口頭でフォローするようにしてます。
GPT4が強力
しかし、最近強力なツールを手に入れました。そうです。GPT4がかなり役に立つことがわかりました。顧客情報などを除外した状態でGPT4に「この文章を小学生にでもわかるように説明して」と投げかけるとほぼ完ぺきな例えで回答してくれるのです。
以前サーバーとロードバランサーの設定不具合でサーバーにアクセスできない事象が発生したことがあったのですが、これを見事に説明してくれました。
いろいろなことに使えそう
今回はこの情報をもっと簡略化してまとめてお客さんに送ったところすぐに理解頂けました。どのような分野でもGPT4で〇〇を小学生にわかるように説明してというのは使えると思いました。
想像してみてください。あなたが友達と遊ぶ約束をして、友達が「30分後に公園に来てね」と言ったとします。でも、あなたは「いいよ、120分後に行くね」と答えました。友達は30分待って、あなたが来ないので家に帰ってしまいました。そして、あなたが120分後に公園に行くと、友達はもういません。これが起こったのは、待ち合わせ時間についての約束が一致していなかったからです。
この話での「友達」はNginx、「あなた」はALBに似ています。Nginxは情報を送る側で、「30秒で情報を送り終えるよ」と約束しています。一方、ALBは情報を受け取る側で、「120秒待つよ」と言っています。Nginxは30秒で情報を送り終えてしまうので、ALBが120秒待っても、もう情報はありません。これが起こると、インターネット上で「504 Gateway Timeoutエラー」というエラーが発生します。これは、「約束した時間に情報が届かなかったよ」という意味です。
暫定対応として、Nginxに「240秒間は情報を送れるようにしておいてね」とお願いすることで、ALBが120秒待っても情報が届くようにしました。これで、エラーが起こることを防いでいます。でも、これは一時的な解決策なので、後でしっかりと時間の約束を見直して、また同じ問題が起こらないようにする必要があります。