ENECHANGE Developer Blog

ENECHANGE開発者ブログ

現場で使えるライブラリアップデートの進め方

ENECHANGEの白坂です。普段はバックエンド開発をメインでしています。

今回の記事では、ライブラリアップデートの具体的な実施手順と、継続的にアップデートを実施していくための工夫を紹介します。

  • ライブラリアップデートはなぜ必要なのか?
    • ライブラリアップデートが必要な理由
      • 1. 開発が止まるリスクを避けるため
      • 2. 脆弱性に対応するため
      • 3. 迅速に脆弱性に対応できるようにするため
      • 4. ライブラリの新機能を使うため
    • 脆弱性対応が遅れると発生するリスク
      • Equifax社のデータ漏洩(2017年)
      • Log4Shell(2021年)
  • ライブラリアップデートどうやって進める?
    • 実施手順
      • 1. 全てのtestをpassさせて、warningsを0に近づける
      • 2. 使っていないライブラリの削除
      • 3. 使っていないコードと関連ライブラリの削除
      • 4. 最も古い&影響範囲の狭いライブラリのバージョンアップ
      • 5. その他のライブラリのバージョンアップ
      • 6. poetry update
    • 継続的に実施するための取り組み
      • 1. タスクと工数を可視化する
      • 2. Dependabotの導入
  • Dependabotでライブラリアップデートを一部自動化しよう
    • Dependabotとは?
      • 1. Dependabot alerts
      • 2. Dependabot security updates
      • 3. Dependabot version updates
      • 設定方法
    • ライブラリの脆弱性アップデートPRがパッチバージョンだった場合にオートマージする
  • 最後に
  • 参考記事
続きを読む

AWSコスト監視システムを作ってみた

こんにちは、ENECHANGEの石橋です。

AWSのコストを管理することは、企業にとって非常に重要です。
本ブログでは、AWS Budgets, SNS, Chatbot, Event Bridge, Lambda, Slackを統合したコスト監視システムの開発について解説します。
TerraformやLambdaの実装例も提供しますので、ご参考になれば幸いです。

続きを読む

APIクライアントを OpenAPI Generator から Orval に移行してみた

ENECHANGEの Yuto Ono です。エンジニアリングマネージャーをしながら、フロントエンドの開発もしています。

最近、新たなプロジェクトが立ち上がり、フロントエンド、バックエンドともにTypeScriptで開発しています。TypeScript好きの僕にはたまらない環境で、楽しく開発しています。

フロントエンドは React + React Router、バックエンドは NestJS + Prisma を採用しており、フロントエンド・バックエンド間の通信には REST API を使用しています。NestJSの機能で OpenAPI 形式のファイルを出力し、ライブラリでフロントエンド側から呼び出せるAPIクライアントを作成しています。

今日はそのAPIクライアントを作成するライブラリを、 OpenAPI Generator から Orval に乗り換えた話をしようと思います。

  • OpenAPI Generator の使いにくいところ
    • JRE (Java Runtime Engine) が必要
    • データフェッチの際に useEffect と組み合わせる必要がある
    • SWR等のライブラリと組み合わせて使うと、キーの管理が必要になる
    • なぜか Type Error が出る
  • Orval に移行したら幸せになった
    • JRE が不要に
    • SWRのフックを自動生成してくれる。キーの手動管理も不要に
    • Type Error が出ない
    • 活発に開発されている
    • その他のメリット
  • さいごに
続きを読む

あとで困らない!AWSマルチアカウント移行の前に2点のチェック

🎅「AWS Community Builders Advent Calendar 2024」12日目の記事です🎄


CTO室の岩本 (iwamot) です。現在CTO室では、AWS Organizationsによるマルチアカウント環境への移行に取り組んでいます。複数事業部の開発環境や本番環境が同じアカウントに混在していて、セキュリティにもコスト管理にも不都合だったためです。

今回初めてAWS Organizationsを使ってみて、困った点が2つありました。

  1. スタンドアロンアカウントだった期間のコストデータにアクセスできなくなった
  2. クレジットカード払いから請求書払いに変えるのに時間がかかった

これらは今のところ、AWSの仕様なので受け入れるほかありません。ただ、影響を抑えるために準備できることがあります。あるんです。

今回の記事では、これら仕様の影響を抑えるために準備できることをお伝えします。これから移行する方の参考になれば幸いです。

続きを読む

CloudNative Days Winter 2024に実行委員として参加しました

CTO室の岩本 (iwamot) です。CTO室では、各事業部で開発しているアプリケーションのコンテナ化を横断的に支援しています。開始から1年半で、6割の環境がEC2からFargateに移行されました。今後も10割を目指して進めていきます。

CloudNative Days Winter 2024 (CNDW2024) というイベントはご存じでしょうか。名前のとおり、クラウドネイティブ技術を広める主旨のカンファレンスです。11月28日から2日間、東京・有明の会場とオンラインとのハイブリッドで開催されました。

event.cloudnativedays.jp

そのCNDW2024に、ぼくは実行委員のひとりとして参加しました。応募前の想像よりずっと大変でしたが、終わってみればとても楽しい経験でした。

この記事では架空の質問に答える形で、実行委員としての感想をお伝えします。次回以降の参加を考えている方の参考になれば幸いです。ただし当然ながら、実行委員を代表する意見ではありません。その点はご了承ください。

続きを読む