株式会社ラクスパートナーズ / 会社員
社内で共通的に利用できるSlack通知ツールの開発
このプロジェクトでは、社内のチーム間で利用できる共通的な通知ツールの開発及びインフラ構築を担当しました。このプロジェクト内で取り組んだタスク別に以下に詳細を記載します。 ★担当業務 ・インフラ構成の設計と構築 - インフラリソースのコード管理としてTerraformを利用 - Pythonでのコーディング( Dockerを利用した開発) ・テスト ・CICDの構築 - Github actions利用 - buildについはCodeBuildを利用 ・Terraform Moduleの作成 ★プロジェクト詳細内容 各AWSアカウントから利用できる共通的なSlack通知機構の構築 このタスクを進めていく上での課題として、AWS ChatBotというサービスを社内の規定により利用できないことがありました。AWS ChatBotを利用すれば簡単にCloudWatch Alarmの通知を実現できるのですが、それが利用できなかったためLambdaを作成しその中でSlack APIを叩く処理を実装するように致しました。 インフラ構成としては、SNS Topicを作成しそのサブスクリプションとしてSlack通知用のLamdbaを設定するといった内容になっております。利用する場合は、SNS Topicに対して通知先のchannel名や通知メッセージが含まれたJSONデータを送ることでSlack通知できるように致しました。 また、インフラリソースはTerraform及びCloudformation Stacksetsを利用してコード管理しました。 より簡単に利用できるためのTerraform moduleの作成 多くのチームに上記で構築した通知機構を利用してもらうために、利用頻度の高い構築パターンのTerraform module化にも努めました。 CloudWatch AlarmをSlack通知するためのmoduleでは、通知先channel名とCloudWatch Alarm名を設定するだけで通知ができるように設計しました。その他にもCloudWatch Logsのログ監視の通知として利用できるmoduleなども作成しました。 できるだけ簡単に利用できるように設計することで、各チームの開発スピードの向上に貢献できたのではないかと思っております。 発揮したバリューや学んだこと 構成の設計から実装、テスト、構築を全て私一人に任せて頂いた中で、スケジュール内で完了したこと。 Terraform Moduleを作成することにより多くのチームから利用していただけたこと。