ヤマムギ

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

  関連記事

php-fpm で Out of memoryが発生した際にメール通知する(AWS CloudWatch , Amazon SNS)

AWS CloudWatch LogsエージェントでAmazon EC2上のNg …

EC2 Amazon Linux 2 にAmazon LinuxからWordPressを移行

このブログを新しいインスタンスに移行することにしました。 2015年5月にAma …

EC2とRDSのMySQLを他のAWSアカウントへ移設する

他のAWSアカウントへシステムごと移設した場合の手順です。 構成はEC2とRDS …

EC2にSystems MangerからCloudWatchエージェントをインストール

CloudWatchエージェント EC2の標準メトリクスでは収集できないメモリの …

IAMセッションポリシーの利用(GetFederationToken)

GetFederationTokenでのセッションポリシーは、呼び出し元のIAM …

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

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

AWS GlueでAurora JDBC接続でS3へのジョブを実行

Aurora Serverless v1のMySQLタイプデータベースからS3へ …

EC2 Windows インスタンス PowerShellでメタデータを見る

Linuxインスタンスならcurlコマンドで確認すればいいのですが、Window …

Amazon CloudWatch RUMはじめました

新機能 – Amazon CloudWatch RUM をご紹介 2021年12 …

Amazon Glacierのプロビジョニングされた迅速取り出し容量をなぜか購入しました

過去1年ぐらいのAWSコストをCost Explorerで見てまして、10/10 …