ENECHANGE Developer Blog
https://tech.enechange.co.jp/
ENECHANGE開発者ブログ
フィード
事業を支えるSREのノウハウを共有! ENECHANGE主催イベント・レポート
ENECHANGE Developer Blog
2023年12月6日にENECHANGE株式会社の主催にて「耐障害性向上・パフォーマンス改善・負荷軽減を実現する?事業を支えるSREのノウハウを共有」というテーマでのエンジニア向けイベントをオンライン開催しました。テックベンチャーであるアソビュー株式会社(以下、アソビュー)・Chatwork株式会社(以下Chatwork)・ENECHANGE株式会社(以下ENECHANGE)のSREエンジニアが登壇し、事業特性に合わせてシステムを安定稼働させながら成長を支えていく各社の取り組みについてお話ししていただきました。本記事ではイベントでの各登壇者のお話をサマライズ版でお届けします。
2日前
Team Blog HubをVercelからCloudflare Pagesに移行しました
ENECHANGE Developer Blog
VPoTの岩本 (iwamot) です。 ENECHANGEでは、所属エンジニアの個人的なアウトプットをまとめたハブサイト「ENECHANGE Engineers' Articles」を運用しています。 engineer.enechange.co.jp このハブサイトは、OSSのTeam Blog Hubで構築したものです。これを使うと、メンバーのアウトプットが簡単にまとめられます。 先日、ハブサイトのデプロイ先をVercelからCloudflare Pagesに移行しました。 この記事では、なぜ移行しようと思ったのか、また、どのように移行したのか書いてみます。
16日前
AWS Chatbotの現行仕様に耐えつつ、EC2インスタンスの状態をSlackで一覧表示する
ENECHANGE Developer Blog
VPoTの岩本 (iwamot) です。プレイングマネージャーとして、ENECHANGEの各種システムで使っているAWSの運用も担当しています。 先日、アプリチームの同僚から「複数のEC2インスタンスの状態をSlackで確認したい」と相談を受けました。くわしくは後で述べますが、停止中の開発サーバをぱっと探せるようにしたいとの要望です。 AWS Chatbotを使えば簡単だろうと軽く引き受けたものの、現状のAWS Chatbotにはいくつかの制約があり、ちょっと手こずりました。 今回の記事では、AWS Chatbotに現状どのような制約があり、どう対処したのか書いてみます。
19日前
動的Webページの新着情報をどうSlackに通知するか
ENECHANGE Developer Blog
VPoTの岩本 (iwamot) です。 先日、コーポレート部門の同僚から「弊社Webページの新着情報をSlackに通知したい」と相談を受けました。こういう相談を受けるのも、ぼくの業務のひとつです。腕の見せどころで、やる気が高まります。 見てみると、そのページはクライアントサイドで外部APIを呼び出し、取得した新着情報を動的に表示していました。RSSやAtomフィードは提供されていません。外部APIの詳細も不明です。 今回の記事では、この相談にどう考えて対応したか書いてみます。正解はないと思うので「自分ならこうする」目線でお読みいただければ幸いです。
22日前
Docker Build Cloudを本番CI/CDパイプラインに導入・検証してみた
ENECHANGE Developer Blog
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 最近、愛犬のバーニーズマウンテンドッグが当たり前のように飼い主のベッドに乗って寝るようになりました。 飼い主の体の位置など何も気にしないので踏み潰されて起きることもしばしばです。 いつか痛い目を見ると思います(飼い主が)。 今回は2024年2月にオープンされたDocker Build Cloudを触ってみました。 www.docker.com 弊社ではコンテナで稼働するアプリケーションが増えてきており、コンテナイメージのビルドにはCodeBuildを使用しています。 CodeBuildと比較してのメリ…
1ヶ月前
AWS AppConfigが活用できそうか試してみました
ENECHANGE Developer Blog
VPoTの岩本 (iwamot) と申します。このブログを含め、AWSについてのアウトプットが好きで続けていたら、先日 AWS Community Builder (Cloud Operation) に選んでいただけました。これを励みに、さらにアウトプットしていきます。 ところで、SRE Magazineという、株式会社MIXIの井上さんが発刊準備を進められているWeb雑誌があり、ぼくも寄稿できないかネタを考えていたところ「非常時の可用性をフィーチャーフラグで保つアイディア」が思いつきました。 アイディアの詳細は発刊をお待ちいただくとして(追記:発刊されました!)、AWSでフィーチャーフラグと…
1ヶ月前
JAWS DAYS 2024に参加して楽しかった5つのこと
ENECHANGE Developer Blog
VPoTの岩本 (iwamot) です。 2024-03-02に、AWSのユーザーコミュニティによる大規模イベント、JAWS DAYS 2024が開催されました。 jawsdays2024.jaws-ug.jp ENECHANGEは企業サポーターとして、ぼく自身も個人サポーターとして、このイベントに参加しました。 9時の入場から19時半の退場まで、すべてのことが楽しかったのですが、なかでも楽しかった5つのことを、思い出しながらまとめてみます。
2ヶ月前
AWSマネジメントコンソールのmyApplicationsダッシュボード、こんなふうに作りました
ENECHANGE Developer Blog
VPoTの岩本 (iwamot) です。 2023年11月に、AWSマネジメントコンソールの新機能「myApplications」が発表されました。アプリケーションのコスト、パフォーマンス、セキュリティといった情報を、ひとつのダッシュボードで見られる機能です。 aws.amazon.com 便利そうなので、ENECHANGEでもダッシュボードを作り、事業部のエンジニアに見てもらっています。 今回の記事では、どんなふうにダッシュボードを作ったのかをご紹介します。どなたかの参考になれば幸いです。
2ヶ月前
「AWSコスト削減 天下一武道会」で心を動かされ、コストのSlack通知を始めました
ENECHANGE Developer Blog
ENECHANGE VPoTの岩本 (iwamot) です。 2024年2月1日に「第1回 AWSコスト削減 天下一武道会」が開催されました。AWSコスト削減の達人たちが、手法や成果を発表するイベントです。3000人を超える参加者数から、コスト削減への関心の高さがうかがえます。 no1.connpass.com 達人たちの発表を聞いているなかで、ぼくがすぐに真似したくなったのは「コストのSlack通知」でした。NTTドコモ・小澤さんの発表で取り上げられていた手法です。 さっそく実装を進め、本日2月5日、通知開始を社内に案内しました。通知先チャンネルには、すでに10名が参加しています。ありがたい…
3ヶ月前
テックカンパニーとしての中期目標を策定しました
ENECHANGE Developer Blog
ENECHANGE株式会社VPoTの岩本 (iwamot) です。2023年10月にVPoTを引き継いでから、4ヶ月ほどになりました。 ENECHANGEではVPoTに対し、所属エンジニアに目指すべき未来を示してリードする役割が期待されています。 その第一歩として、まずは、2027年までに達成したい、テックカンパニーとしての中期目標を策定しました。 今回の記事では、その中期目標について記してみます。
3ヶ月前
PyCon APAC 2023 に参加してきました!
ENECHANGE Developer Blog
ENECHANGEの白坂です。 ENECHANGE は PyCon APAC 2023に今回もシルバースポンサーとして協賛しました! 今回PyCon APAC 2023にオフラインで参加してきたので、会場の様子や参加して学んだことをレポートします。
4ヶ月前
さらに進化した!AWS FargateでのECSタスク起動を速くするSeekable OCI導入レポート
ENECHANGE Developer Blog
2023年7月、AWS FargateでSeekable OCI (SOCI) を使ったコンテナ起動の高速化が可能になりました。 aws.amazon.com ただ、発表当時は下記の制約があったため、ENECHANGEには合わないと判断して評価を見送りました。 X86_64のECSタスクでしか使えない ENECHANGEではARM64の利用を優先している タスク定義に含まれるすべてのイメージのインデックス作成が必要 ENECHANGEでは大小さまざまなイメージを使っている。SOCIは250MiBより大きいイメージでの利用が推奨されている しかし2023年8月、ARM64のタスクでもSOCIが使…
5ヶ月前
ChatGPT APIで自社サービスの口コミを分析したら業務効率爆上がりだけじゃなくみんなハッピーになった話
ENECHANGE Developer Blog
概要 ENECHANGEが提供するアプリ『EV充電エネチェンジ』には、ユーザーが充電器の口コミを書き込めるコメント機能が組み込まれています。 このコメント機能を快適にご利用いただき、また自社サービスの改善に活かすためには、数多くの口コミを読み解く必要があります。増え続けるコメントをどう管理するか、という課題をトリガーとしてChatGPT API(最終的にはAzure OpenAI API)を使った支援システムを開発したことで、業務の効率化と即時性の向上、活用範囲の拡大が実現されました。 この具体的な開発プロセスや成果、困難だった点、そして今後の展望についてご説明します。 DALL・E3さんが描…
6ヶ月前
アプリケーションの通信エラーをパケットキャプチャで調査する - キャプチャしたパケットの解析 -
ENECHANGE Developer Blog
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 執筆時点で暦の上ではとっくに秋ですが厳しすぎる残暑が続いています。 それでもようやっと愛犬の夜の散歩では涼しさも感じられるようになってきました。 同僚の id:iwamot さんが作成したChatGPT Bot作の夜に散歩するバーニーズマウンテンドッグ画像を貼っておきます。ご査収ください。 AIの生成した夜に散歩するバーニーズマウンテンドッグ(足とか背景がやや怪しい) ChatGPT Botによる画像生成はこちらの記事で紹介されています。 tech.enechange.co.jp 前回に引き続き弊社ア…
7ヶ月前
アプリケーションの通信エラーをパケットキャプチャで調査する - パケットキャプチャ基盤の構築 -
ENECHANGE Developer Blog
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 このブログに文章を書いている時点で「ENECHANGE所属」は自明なのでは…と思い始めています。 最初に固めた定型文ってなかなか変えにくいですよね。 前回に引き続き弊社アプリケーションで発生したエラー事象とその調査について記事を書きます。 エラーが発生したアプリケーションはいわゆるwebアプリケーションなのですが、原因の調査手法としてはパケットキャプチャを行うことになりました。 普段webアプリケーションの開発ではあまり出番が無い(と思う)パケットキャプチャなので、方法などを共有できればと思います。 …
7ヶ月前
アプリケーションの通信エラーをパケットキャプチャで調査する - エラー事象説明〜調査方針決め -
ENECHANGE Developer Blog
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 実は今年の4月に育児休業から復職していました。 このブログの主旨からは外れるので特段書きませんが、育休は最高の体験でした。機会があればお勧めします。 今回から何回か使って弊社アプリケーションで発生したエラー事象とその調査について記事を書きます。 エラーが発生したアプリケーションはいわゆるwebアプリケーションなのですが、原因の調査手法としてはパケットキャプチャを行うことになりました。 普段webアプリケーションの開発ではあまり出番が無い(と思う)パケットキャプチャなので、方法などを共有できればと思いま…
7ヶ月前
SlackbotにFunction callingによる画像生成機能を追加した
ENECHANGE Developer Blog
CTO室の岩本 (iwamot) です。 弊社SlackのChatGPT botに画像生成機能を追加しました。Function callingを使って、OpenAIの画像生成エンドポイントを呼び出すシンプルなものです。 この記事では、実装の詳細と、機能追加した背景をご紹介します。
8ヶ月前
ChatGPT botの安全性を高めるために工夫したこと
ENECHANGE Developer Blog
CTO室の岩本 (iwamot) です。 4月7日のプレスリリースでご案内の通り、ENECHANGEでは、ChatGPTを活用した業務効率化を進めています。 私も寄与したく、SlackへのChatGPT bot導入を提案し、実際に導入しました。結果、70名以上に利用されており、多少は貢献できたと思っています。 導入に際しては、安全性を高めるため、いくつか手を打ちました。具体的には「入力内容の保全・機密情報のマスキング・Azure OpenAI Serviceの利用」です。 以下、詳しくご紹介します。
10ヶ月前
RubyKaigi 2023 に参加してきました!
ENECHANGE Developer Blog
ENECHANGE の小野と酒井です。 今年も ENECHANGE は2023年5月11日〜5月13日に開催された「RubyKaigi 2023」に、ゴールドスポンサーとして協賛しました! そして RubyKaigi 2023 に我々を含め、弊社のメンバーも何人か参加してきました! ENECHANGE は RubyKaigi 2023 に、ゴールドスポンサーとして協賛しました! 会場は長野県松本市にある、まつもと市民芸術館でした。 まつもと市民芸術館の階段付近 というわけで、今年の RubyKaigi で興味深いと思った内容や、感想について、書いていきたいと思います。
1年前
PythonアプリのDockerイメージを6割ほど軽量化した手順と効果
ENECHANGE Developer Blog
CTO室の岩本 (iwamot) です。 この記事では、Dockerイメージの軽量化事例をご紹介します。 ざっくりまとめると、下記の手順で軽量化を進めました。 diveを使ってレイヤを分析した ベースイメージをpythonからpython:slimに変えた 無駄なファイルを除外した まず、背景から説明します。
1年前
GAS / Slack連携を用いて、ランチ手当申請フローを改善した話
ENECHANGE Developer Blog
こんにちは、エネルギークラウド事業部・石橋 (rubita_isi)、エネチェンジ事業部・小野 (yuto-ono-ene)です。 私たちは普段は別々の部署で働いていますが、この度全社横断的な業務改善のトライアルとして、GoogleWorkSpace上のランチ手当申請フローをGASやSlack連携などを用いて効率化しました。 その取り組みについて、本記事で紹介させてください。 ENECHANGEランチ手当のマスコット・Qちゃん
1年前
ご存じですか? AWS WAFログをS3に配信するのにかかる料金
ENECHANGE Developer Blog
CTO室の岩本 (iwamot) です。 AWS WAFのウェブACLトラフィックログをAmazon S3バケットに配信する場合、以下の料金がかかると最近知りました(強調は引用者)。 CloudWatch Logs が Amazon S3 バケットに公開ログ配信した料金と Amazon S3 を使用した料金を合計したものです。 ウェブ ACL トラフィックのログ記録 - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced このうち「Amazon S3 を使用した料金」は、バケットを作ったリージョンのS3ストレージ料金だと直感的に分かります。…
1年前
Rails 6アプリのFargateをGraviton2に替えるために対応したこと
ENECHANGE Developer Blog
仕事ではコストを、プライベートでは悪玉コレステロール値を減らしたい、CTO室の岩本 (iwamot) です。 コスト削減を目的に、先日、あるRails 6アプリの基盤をIntel x86ベースのFargateからGraviton2ベースのFargateに替えました。 対応したことを簡単にまとめると、下記のようになります。 CodeBuildでARM用Dockerイメージをビルドできるようにした CodeBuildビルド環境をLINUX_CONTAINERからARM_CONTAINERに替えた ExecJSのJavaScriptランタイムをmini_racerからNode.jsに替えた Noko…
1年前
はじめての事業譲受対応(ドメイン / SSL証明書 / メール / Jira / GitHub / Azure / 死活監視)
ENECHANGE Developer Blog
CTO室の岩本 (@iwamot) です。プライベートでは、資格マニア活動の一環で、11/13の第三種冷凍機械試験に向けて勉強しています。「気体→液体→気体」と変化する冷媒のおかげで、ぼくらは部屋や食料を冷やせているんですね。 10月に、EVスマート事業譲受の一部を担当しました。担当したのは、記事タイトルの通り「ドメイン / SSL証明書 / メール / Jira / GitHub / Azure / 死活監視」です。譲受対応は初めてで、知らないことが多かったものの、譲渡側企業にご協力いただき、無事に終えられました。 事業譲受はめったにない機会なので、どのような対応をしたか、この記事に残してお…
1年前
アプリケーションのアーキテクチャ検討にArchitectural Decision Records (ADRs)とGitHub Discussionsとを使ってみた話
ENECHANGE Developer Blog
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 長期間の休業直前(なんならこの記事を書いているタイミングは最終稼働日)のため絶賛ブログエンジニアをやってます。 ブログを書いて生きていくことはできないなと分からせられつつあります。 ENECHANGEではアウトプットは奨励され称賛されるものなのですが、他の業務にリソースを割いていると中々アウトプット作業の優先順位は上げづらいものです。 誰かが定期的にアウトプットしていることでアウトプットしていこうという空気が醸成できたら良いなと思いながら文章を書いています。 (書き溜めをしているものが予約投稿で自動的…
1年前
DockerfileでのENTRYPOINTとCMDの関係を整理する 〜 2つの記述形式に環境変数展開とシェル引数展開を添えて 〜
ENECHANGE Developer Blog
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 この記事を執筆している日にMLBのアーロン・ジャッジ選手がシーズン62本目のホームランを打ってアメリカンリーグのシーズンホームラン記録を塗り替えたことが伝えられました。 メジャーリーグの長い歴史に新たな1ページが加わった日に同席したと思うと、なんとなく気分が盛り上がりますね。 今回は「既存アプリケーション基盤のコンテナ化プロジェクト」でアプリケーションのコンテナ化、具体的にはDockerfileの作成で四苦八苦した内容を振り返ります。 このテーマ自体はDockerfileを書いている人なら何度も見た内…
2年前
かわいそうなバッチ処理をAWS Data PipelineからLambdaに移行した
ENECHANGE Developer Blog
CTO室の岩本です。詳しくは別の記事に書くつもりですが、最近はEVスマート事業の譲受にともない、ドメインやメール、GitHubリポジトリなどの移管を担当しています。 大きめのタスクを進めていると、たまに息抜きしたくなることがあります。そんなときにはプレッシャーの少ない、小さめのタスクを見つくろって進めるのが慣例です。 今回の記事は、そんな息抜きで進めた、バッチ処理の移行についての話です。このバッチ処理、ちょっとかわいそうだったんですよね。
2年前
【AWS ECS】タグによるコスト管理とタグ伝播
ENECHANGE Developer Blog
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 私事ですがこの記事が公開される頃には育児休業に入っています。 育児休業制度は2022年10月から制度が変わっているのですが、どのような影響があるかをフワッとしか理解していないので何かやらかしをしないか心配です。 ikumen-project.mhlw.go.jp この記事が公開される頃には既にやらかしているかも知れませんね(恐怖)。 今回は「既存アプリケーション基盤のコンテナ化プロジェクト」でリリース後に気がついたコスト管理の設定にミスと対処について紹介します。 コスト管理は大事なので事前に確認してお…
2年前
【AWS ECS】チーム間の責任分界点とタスク定義ファイルの扱い方
ENECHANGE Developer Blog
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 愛犬のバーニーズマウンテンドッグを飼い始めてから1年経ってやっと餌をあげすぎなことに気が付きました。 食べすぎてお腹壊し気味だったんだね…ごめんね…。 私はというとお腹は壊さないものの食べすぎて簡単に太ってしまうタチなので2022年の夏からあすけんを始めています。 現時点で明確に言えることは「脂質を摂るは易し、蛋白質を摂るは難し」です。 今回は「既存アプリケーション基盤のコンテナ化プロジェクト」を推進する中で考えたクラウドインフラの管理に対する社内のチームの責任分界点と、実運用を考えたタスク定義ファイ…
2年前
【AWS ECS 小ネタ】CloudWatch Agentを使用してクラスター名、タスクIDのディメンション付きでディスク使用率のメトリクスを収集する
ENECHANGE Developer Blog
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 急速に涼しくなった今日このごろ皆様いかがお過ごしでしょうか。 私はと言えばLDLコレステロールを抑え込むために3ヶ月間動物性脂質を断ったことで食生活が大きく変わり、なんだか食に対する意識に不可逆な変化が生じてしまった気がしています。 生き延びるために必要な変化だったかもしれませんが。 これからしばらくは最近のお仕事である「既存アプリケーション基盤のコンテナ化プロジェクト」で学んだことやTipsなどをブログの記事にまとめていきます。 全何回になるか、ひょっとしたら今回で終わるのか、予定を決めていないので…
2年前