ヤマムギ

growing hard days.

*

Redmineの添付ファイルをS3に同期する

   

RedmineをAWS上で構築するデザインを考えていて、せっかくなので冗長化しようと思いました。

最終的にはこの図のような構成にしました。

Redmine本体はEC2をALBとAuto Scallingで最小、最大台数を決めてCPU利用率平均でスケールするようにしています。
データベースはMulti-AZ構成にしています。

このような構成にした際に、添付ファイルをどうしようかとなりました。

プラグインを探す

Redmineの添付ファイルをS3に保存するプラグインがありました。
でも、アクセスキーとシークレットキーを設定に書かなければなりません。
出来ればIAMロールを使いたいと思うので、今回はこのプラグインを使うのをやめました。

各インスタンスからS3にファイルを同期する

要件としては、各インスタンスから添付したファイルが各インスタンスで見ることが出来ればよく、それほどリアルタイム性もなくて良いので、CLIコマンドで同期することにしました。

S3バケットを作って、/var/lib/redmine/files ディレクトリと双方向で定期的に同期すればいいかなと思います。

上記のようなシェルファイルをcrontabで定期実行してます。

EC2ローカルにファイルがたまっていくことと、追加で起動したインスタンスの最初の同期に時間がかかる、という課題はあるので、EFSを使用する選択肢もあると思いますが、2018年1月時点では使えるリージョンに限りもあるので、選択肢の一つとして検討してみてはと思います。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

  関連記事

AWS Cloud9でJavaサンプルを実行する

リモートで共有開発ができるCloud9便利ですね。 Cloud9でJavaのサン …

AWS Organizationsのルートユーザー管理(Root user management)でメンバーアカウントのルートユーザー認証を無効にしました

2024年11月発表のAWS Organizations を使用するお客様のため …

AWS Client VPNのクライアント接続ハンドラを試してみました

AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …

DS18B20センサー+Raspberry Piで取得した温度をAmazon Kinesis FirehoseからS3へ格納してAthenaでクエリーしたのをQuickSightで可視化する

JAWS DAYS 2017でやりますハンズオンの「[IoTハンズオン] Ras …

S3バケットポリシーでクロスアカウントのPrincipalについて確認

確認したこと ドキュメントではこちらで確認しました。 AWS JSON ポリシー …

EKS「現在の IAM プリンシパルは、このクラスター上の Kubernetes オブジェクトにアクセスできません」

マネジメントコンソールでクラスターのオブジェクトを見ようと、リソースの名前空間や …

ads.txtをS3に配置してCloudFrontで設定する

ads.txtのダウンロード ads.txt設置してねってメールが来てました。 …

Kinesis Data AnalyticsをKinesis Data Streamsに接続してSQL検索する

Amazon Kinesis Data StreamsにTwitter検索データ …

Amazon Connect 発信イベントをEventBridgeで確認

Amazon Connectから発信した電話に出たのか、出なかったのかを確認した …

BearからNotionへの引っ越し(Amazon Q Developer for CLIに丸投げ)

MacとiPhoneでのテキスト管理と共有で長年Bearを使っていましたが、Wi …