製造業向けPLMシステムの開発・運用

C#ASP.NET CorePostgreSQLAWSTerraformCI/CD

プロジェクト概要

製造業向けにPLM(Product Lifecycle Management)パッケージを活用したシステムの受託開発に従事しました。Aras Innovatorのカスタマイズ、ASP.NET Coreを用いたWebアプリケーション開発、AWSインフラ構築・運用、CI/CDパイプライン構築を担当し、顧客の内製化支援も実施しました。

担当業務

Aras Innovatorカスタマイズ

  • Methodのカスタマイズ開発: ビジネスロジックの実装
  • XMLベースのexport/importデプロイ方式の提案・実現: 効率的なデプロイ方法の確立
  • Methodのテスト方法の確立: 品質保証プロセスの構築
  • デプロイ管理の仕組み化: 自動化による運用効率化
  • 設定ファイル変更マニュアルの作成: ドキュメント整備

Webアプリケーション開発

  • ASP.NET Core 3.0を用いたWebアプリケーション開発
  • Arasでは実現できないExcel風のUIの実装
  • Aras-Webアプリ間のデータ連携設計・実装
  • PostgreSQLを使用したデータ管理

インフラ構築・運用

  • AWSインフラ構築(EC2、RDS、VPC)
  • Terraformによる多環境展開、インフラのコード化(IaC)
  • Alpine Linuxコンテナでの運用

CI/CD構築

  • AWS CodePipelineとCodeBuildによるCI/CDパイプライン構築
  • PR作成時の自動テスト・デプロイ、Slack通知の実装

顧客対応

  • 技術的にクリティカルな事象の説明・対応方法の提案
  • 顧客の内製化支援・教育

使用技術

言語・フレームワーク

  • C#: ビジネスロジック実装
  • ASP.NET Core 3.0: Webアプリケーション開発
  • XML: Aras Methodのexport/import

データベース

  • PostgreSQL: データ管理

インフラ・クラウド

  • AWS EC2: アプリケーションサーバー
  • AWS RDS: データベースサーバー
  • AWS VPC: ネットワーク構成
  • Terraform: Infrastructure as Code (IaC)
  • Alpine Linux: コンテナ環境

CI/CD・開発ツール

  • AWS CodePipeline: 自動デプロイパイプライン
  • AWS CodeBuild: ビルド・テスト自動化
  • Slack: 通知連携

技術的な取り組み

1. Terraformによるインフラのコード化

Terraformを活用し、多環境(開発、ステージング、本番)へのインフラ展開を自動化。インフラ構成をコード管理することで、環境の再現性と保守性を向上させました。

2. CI/CDパイプラインの構築

AWS CodePipelineとCodeBuildを組み合わせ、以下を実現:

  • Webアプリケーションの自動デプロイ
  • PR作成時の単体テスト自動実行
  • Slack通知によるチーム全体への情報共有

デプロイ作業の自動化とテストの自動実行により、品質の安定化とデプロイ頻度の向上を実現しました。

3. Aras Methodのデプロイ方式確立

XMLベースのexport/import方式を提案・実現し、Aras Methodのデプロイプロセスを効率化。デプロイ管理の仕組み化により、運用負荷を大幅に削減しました。

4. 顧客の内製化支援

技術的な知見の共有とドキュメント整備により、顧客の自律的な運用を支援。教育プログラムの提供により、顧客チームの技術力向上に貢献しました。

成果

  • インフラのコード化: Terraformによる多環境展開の実現で運用保守コストを削減
  • CI/CDパイプライン構築: デプロイ作業の自動化とテストの自動実行を実現
  • Aras Methodのデプロイ効率化: XMLベースデプロイ方式の確立
  • 顧客の内製化支援: 顧客チームの自律的な運用を実現し、顧客満足度の向上に貢献

学んだこと

PLMシステムという製造業特有のドメイン知識と、AWSを活用したインフラ構築・運用の実践的なスキルを獲得しました。また、Terraformによるインフラのコード化やCI/CDパイプラインの構築を通じて、DevOpsのベストプラクティスを学びました。顧客の内製化支援を通じて、技術的な知見の伝達とドキュメント作成の重要性を実感しました。