吉岡です。先日、「AWS Partner Solution Day in 大阪」という AWSパートナー向けのイベントで登壇する機会をいただきました。そこで今回は発表の中で触れた弊社が運営するRedmineのクラウドサービス My Redmine のアーキテクチャに関することを書きたいと思います。
サービスの全体図になります。色々なサービスを組み合わせて構成していますので、詳細を見ていきます。
まずは主要なシステム(Redmine, 業務システム, 登録フォーム)の構成の説明です。
赤枠が Redmine を動かしている部分になります。前提として、Redmine を少しカスタマイズ(pluginを使用)してステートレス化して、コンテナ(ECS)で動かせるようにしています。
オレンジの枠については rails task
をタスクスケジューラーで定期実行したりして、運用に役立てています。(例としてはリマイドメールの送信などを行っています。)
構成の詳細は上記図のようになります。ECSを利用した基本的なWEB3層構造になります。
コンテナ化の過程でアプリケーションをステートレスにしたので、冗長化・可用性(マルチAZ、クロスリージョン)を比較的容易に実装できました。
続きましてこちらが、自社開発の業務システム(顧客管理・請求管理)の構成図です。Ruby on Rails で作られたシステムになります。
ほぼ、Redmineと同じ構成で動かしています。
こちらは新規登録(無料お試しお申し込み)フォームです。AWS Amplifyを利用して構築されています。
フロントエンドは React を使用し、バックエンドはAppSyncをベースに各種AWSサービスを利用して実装しています。
SaaSを運用するためには色々な処理が必要になってくるかと思います。弊社では新規登録、停止、変更・再開、削除などの処理を自動化するために AWS Step Functions を利用して実装しています。
今回は新規登録処理について説明したいと思います。
新規登録フォーム、業務システム(顧客・請求管理のシステム)、Redmineがあり、以下の流れで登録処理が実行されます。
こちらのオレンジの枠の AWS Step Functions のアイコンの部分が業務システム(顧客・請求管理のシステム)からRedmineを利用するのに必要なDB、設定ファイルを設定するAPIになります。
実際の新規登録時の AWS Step Functions の登録の流れになります。
上記図のように更新、停止、削除の処理も AWS Step Functions を利用して実装しています。
サービスとしてユーザーから設定(操作)が必要な機能についてもAWSを利用して実装しています。
上記機能をAPI GateWayを使って実装しています。
APIのエンドポイントは以下のようになっています。
Step Functions で Fargate を動かしてログの圧縮処理を実行しています。
簡単ですが、現在 My Redmine に関連したシステム全体の構成図の紹介をさせていただきました。ご紹介した図を見ていただくとわかる通り、My Redmineを運用していくために非常に多くのシステムが動いています。なるべく運用コスト(人の手間)を削減するためにサーバーレスのサービスを中心に選択し実装してきました。
また、苦労した点としましては、ひとつひとつのシステムの構築自体は難しくはないのですが、それぞれのシステムをどのようにセキュアに連携させるかに関しては頭を悩ませました。(IPアドレス、APIキーなどによるアクセスやIAM認証など様々な工夫をしています。)機会がありましたら、運用コスト削減のためにしたことやアクセス制御に関してもブログなどで紹介できればと考えています。
以上、今回は発表内容の一部を公開させていただきました。
【スタッフ募集中】
弊社ではAWSを活用したソリューションの企画・設計・構築・運用や、Ruby on Rails・JavaScriptフレームワークなどを使用したアプリケーション開発を行うスタッフを募集しています。採用情報の詳細
弊社での勤務に関心をお持ちの方は、知り合いの弊社社員・関係者を通じてご連絡ください。
![]() |
AWSを利用した複数のアプリケーション運用にまつわる課題と解決策。 |
![]() |
RedmineのMy Page機能で利用者ごとのダッシュボードが作れます |
![]() |
台湾で開催されたCOSCUP 2023に初めて参加 |
![]() |
台湾で開催されたCOSCUP 2023というオープンソースのイベントでRedmineの発表を中国語で行いました |
![]() |
Redmine Japan Vol.3における発表と協賛企業としてブースを出展 |
![]() |
2023年10月22日 オライリー本の全冊公開日のお知らせ(もくもく勉強会も同時開催) ファーエンドテクノロジーが所蔵するオライリー本(全冊)公開日のご案内です。公開日には「もくもく勉強会」も同時開催します。 |
![]() |
My Redmine スタンダードプランおよびAdminサポートデスクプランの料金改定のお知らせ【2024年4月ご利用分より】 2024年4月ご利用分より、My Redmine スタンダードプラン(民間企業・個人向け及び官公庁向け)とAdminサポートデスクプランの料金を改定いたします。 |
![]() |
My Subversion 一部のプラン・料金改定のお知らせ【2024年4月ご利用分より】 2024年4月ご利用分より、My Redmine スタンダードプラン(民間企業・個人向け及び官公庁向け)とAdminサポートデスクプランの料金を改定いたします。 |
![]() |
My Subversion ストレージ容量増量のお知らせ(一部プランを除く) My Subversionではミディアムプラン以上の各プランのストレージ容量を増量します。 |
![]() |
Redmineの最新情報をメールでお知らせする「Redmine News」配信中 新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け |