ヤマムギ

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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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

 - AWS , ,

ad

ad

  関連記事

RDSのスナップショットをS3へエクスポートが日本語マネジメントコンソールでもできるようになってました

RDSスナップショットをS3にエクスポートする新機能を試そうかと思ったのときは、 …

Amazon Pinpoint Workshopの1(Eメール)

Amazon Pinpoint Workshop ここ数年、AWS re:Inv …

Selenium, Headless ChromeとAWS Lambdaで夜な夜なスクレイピング

このようなアーキテクチャで、Alexaスキルの開発を進めていまして、元となる情報 …

S3リクエストメトリクスをプレフィックスを指定して有効化

検証でどのリクエストがどれぐらい発生しているのか、さっと知りたくなったので、特定 …

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

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

cfn-signalの認証とネットワーク

AWS CloudFormationヘルパースクリプトのcfn-signalがC …

ChatGPT APIをTeamsボットから使いました(AWS Lambda(Python) + API Gateway)

ChatGPT APIが有償で利用可能になったので、会社のTeamsボットに実装 …

AWS Lambda Layersのアーカイブファイルをダウンロードする

Cloud9にLambda Layersをダウンロードしたかったので検索してみた …

Rocket.ChatのOutGoingWebhookからのAPI GatewayからのDynamoDB

少し前に、Rocket.ChatからOut Going Webhookを設定して …

Amazon SNSサブスクリプションフィルターで優先度別のSQSキューにサブスクライブする

EC2のコンシューマーアプリケーションは優先度の高いキューのメッセージを先に処理 …