ヤマムギ

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月時点では使えるリージョンに限りもあるので、選択肢の一つとして検討してみてはと思います。

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - AWS , ,

ad

ad

  関連記事

AWS EC2でAMI(Amazon Machine Image)を作成しておく

前回まででひとまずRedmineを構築するところまで出来たので、念のためスナップ …

サイトのHTTPステータスを5分おきにチェックして200以外ならSlackに通知する

すいません。ここ最近出費が重なりまして、某監視サービスのプランを有料プランからF …

PyCharmにAWS CloudFormationプラグインをインストールして入力補完してみる

JetBrainsのPython統合開発環境(IDE)のPyCharmを1年ちょ …

EC2インスタンスが到達不能になって復旧してMackerelで監視し始めた

きっとばりばり使っておられる方ならよくある事なんだろうけど、はじめて体験したので …

EC2のAMIとRDSのスナップショットを他のAWSアカウントに共有してブログサイトをAWSアカウント間で引っ越す

当ブログで使用しているEC2とRDSを環境の整理のため、他のAWSアカウントへ引 …

Amazon Cognito User Poolsのデモをしてみました

AWS Summit 2016 Tokyoのアップデートおっかけ会をJAWS-U …

[事前準備] JAWS-UG 関西IoT専門支部「マクニカkibo + AWS IoTハンズオン」

来る12/19(土)の JAWS-UG 関西IoT専門支部第一回勉強会「マクニカ …

「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってきました

「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってき …

WordPressをAmazon CloudFrontで配信してついでにACM(AWS Certificate Manager)を使って常時SSL化する

当サイトの500と502の発生状況がドイヒーであるとの苦情をいただきまして、Am …

Amazon RDS MySQLでCSVをload data するときに「Access denied」発生

超小ネタです。 AWSのデータベースサービスの Amazon RDSのMySQL …