2021年で学んだ技術
2021年を何を学んだかで振り返ります。仕事としてはインフラ、データエンジニアリング領域に関わりました。
ポジションとしてはチームリード的な立場でソフトスキル的な面も向上できた1年でした。
AWS
2021年はAWS Well-Architectedフレームワークに則り、会社組織の範囲でのAWSの利用方法を改善しました。
これを通して、AWSの運用といった面で多くのことを学びました。
システム単体の範囲でAWSを扱うのはよくあることかと思いますが、会社組織の範囲でAWSを扱う経験はなかなかできないかなと思います。
これは今の会社がスタートアップ規模だからこそできることだなと感じています。
具体的には、セキュリティを中心に以下の改善を行いました。
- AWS IAM Access Analyzerを用いたセキュリティ的に危険な権限設定がなされているAWSリソースの特定方法
- AWS Configについて
- GuardDutyについて
- マルチアカウント対応
- 重大度が高い結果をEventBridgeを使って通知する仕組み作り
- Google WorkspaceをIdプロバイダとしたAWS SSOの適用方法
セキュリティに配慮してAWSの運用を行うにあたっては、AWSの様々なサービスを利用する必要があり、今回学んだ内容でもまだまだ足りないと感じました。
このあたりは継続的にアップデートしていくべき領域だと思います。
AWS Well-Architectedフレームワークの取り組み以外には、Lambdaを使う機会が多かったので、そのノウハウを得ることができました。
本番環境やステージング環境毎にLambda関数を分けた方が運用上複雑にならないといったことを実践を通して学びました。
Aurora MySQL version2からversion3への更新作業を経験し、やり方を学びました。
version3はMySQL8系互換であるため、Window関数が使えることが更新に至った背景でした。
この作業を通してAuroraのバージョンを改めて確認する機会になり、version2でのマイナーアップデートでも重要な機能追加があることが分かりました。
マイナーバージョンでも適宜アップデートすることが大事だと思います。
監視
2021年に会社の環境にDatadogが導入されました。自分がDatadogの導入作業を行なったわけではないのですが、今までDatadogに関わることがなかったため、Datadogがどういうものかについては学ぶことができました。
Datadogを導入して良かったことは、APMが便利ということです。このあたりはアプリケーションエンジニアからも好評でした。
まだ使い方に慣れていないところがあるので今後も習熟が必要です。
データ基盤
2020年に構築したAWSを使ったデータ基盤のリファクタリングや品質を強化するといったことを行いました。
学んだことはブログの記事にいくつかまとめています。
リファクタリングの内容としては、データパイプラインを作るにあたり、バラバラにデータを処理していたところをStep Functionsの定義にほぼ全て実装するといったことを行いました。
日次で実行されるワークフローだとしても条件分岐を駆使すれば、特定の時間で実行するタスクを作れることが分かり、日次と特定の時間に実行するタスクをStep Functionsで一つにまとめることができました。
このようにStep Functionsの使い方がより習熟したと思います。
データ活用
社内では、Redashがデータ活用のための主力ツールになっているため、Redashの使い方が主な学びでした。
hi1280.hatenablog.com
今まであまり使っていなかったのですが、テーブル形式のクエリ結果にリンクを埋め込む機能が便利ということに気づいたのが最近の学びです。
リンク先を他クエリに設定することで、簡易的なドリルダウンが可能です。
データ活用ならPythonだろうということで、そこそこPythonを学習しました。Pandasやmatplotlib、seabornを使ったグラフでのデータ可視化を試したりしました。教材は下記です。
- 【世界で18万人が受講】実践 Python データサイエンス | Udemy
- GitHub - The-Japan-DataScientist-Society/100knocks-preprocess: データサイエンス100本ノック(構造化データ加工編)
Pythonに関してはまだまだ勉強することがあると感じています。
ITエンジニアの作業効率化
チームリード的な立場になり、メンバーが日々の作業を効率化できるように、使用しているツールの使い勝手をよくするといったことを行いました。
特にSlackは日常的に使っているツールなので、Slack上で色々な情報が見れると良いと考えて改善に取り組みました。
具体的には、GitHub上でのイベントやAWS上でのイベントをSlackに通知するといったことをきちんと行うようにしました。
開発作業はGitHub上でPRを作成して行われるためにその通知を行ったり、AWS上での各種アラートはSlackに通知するようにしました。
このあたりの通知のやり方を学ぶことができました。
現環境では、Trelloでタスク管理をしているのですが、タスクボードについても効率化できるように整理しました。
Trelloの機能にあるAutomationやPowerUpを使ってできるだけ自動化しました。
Automationは細かなところを自動化してくれるので便利です。
例えば、特定のリストにカードを配置したら、チェックリストを全てチェックし、特定のラベルを削除し、リストの一番上にカードを移動するといったことを自動化してくれます。
自分のチームでは、カンバンを参考にタスクを管理していたために、PowerUpで仕組みをフォローできたのが良かったです。
このような細かなTrelloの使い方が習熟しました。
その他ソフトスキル
リーダー的なポジションだったために、会議体の運営を考えて実行することが多かったです。
事前の準備と会議が終わった時にどこまでの結果が出ているかを考えた上で望むとスムーズに運営ができたように思います。
情報共有、ワークショップ、勉強会といった目的の会議はこれらを意識すればほぼ問題なく進行できた手応えがあります。
アイデア出し、課題解決が目的の会議は様々な意見があり、事前の想定とは異なる方向にいくことが多々あるのでまだ難しいです。
このあたりは引き続き工夫していきたいところです。
2021年後半に会社の同僚有志メンバーによる英会話の勉強会が始まり、可能な限り参加しました。
自分は英会話の経験が全くなかったので、当初はほぼしゃべれない感じでしたが、最近は聞かれたことに一言くらいは返せるようになったので少しは成長したのではと思っています。
2021年のまとめと来年の抱負
AWSに関しては2020年でそれなりに経験したかと思っていましたが、AWS運用面ではまだまだやるべきことが多いということを感じました。
以前に学んだデータエンジニアリングの技術を使った業務が中心となり、10月以降は技術的な学びが少なくなってしまいました。
来年以降は自分の担当範囲が拡大し、広くITエンジニアリング全般をフォローする必要があります。
特にフロントエンド周りはキャッチアップできていないので、そのあたりを身につけることと、データエンジニアリング領域の最新動向をフォローしていきたいです。
ソフトスキルは一朝一夕で身につくものではないので、メンバーの意見を聞きつつ、自チームにあったより良いやり方を見つけていければと思います。