Redmineの添付ファイルをS3に同期する
RedmineをAWS上で構築するデザインを考えていて、せっかくなので冗長化しようと思いました。
最終的にはこの図のような構成にしました。
Redmine本体はEC2をALBとAuto Scallingで最小、最大台数を決めてCPU利用率平均でスケールするようにしています。
データベースはMulti-AZ構成にしています。
このような構成にした際に、添付ファイルをどうしようかとなりました。
目次
プラグインを探す
Redmineの添付ファイルをS3に保存するプラグインがありました。
でも、アクセスキーとシークレットキーを設定に書かなければなりません。
出来ればIAMロールを使いたいと思うので、今回はこのプラグインを使うのをやめました。
各インスタンスからS3にファイルを同期する
要件としては、各インスタンスから添付したファイルが各インスタンスで見ることが出来ればよく、それほどリアルタイム性もなくて良いので、CLIコマンドで同期することにしました。
S3バケットを作って、/var/lib/redmine/files ディレクトリと双方向で定期的に同期すればいいかなと思います。
|
1 2 3 4 5 6 |
#!bin/bash aws s3 sync s3://file.redmine.yamamugi.com /var/lib/redmine/files aws s3 sync /var/lib/redmine/files s3://file.redmine.yamamugi.com |
上記のようなシェルファイルをcrontabで定期実行してます。
EC2ローカルにファイルがたまっていくことと、追加で起動したインスタンスの最初の同期に時間がかかる、という課題はあるので、EFSを使用する選択肢もあると思いますが、2018年1月時点では使えるリージョンに限りもあるので、選択肢の一つとして検討してみてはと思います。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWS Code Commitをプライベートリポジトリとして使う
GitHubでもいいんですが、アクセスキーとかパスワードとかコンフィグ系で書いて …
-
-
Amazon ECS Workshop for AWS Summit Online
INTRODUCTION TO AMAZON ECSに手順や必要なリンクがありま …
-
-
AWS LambdaでChrome HeadlessドライバをAWS Lambda Layersから使う
この記事はSelenium/Appium Advent Calendar 201 …
-
-
AWS Elastic Beanstalkによって作成されたS3バケットはDeleteBucketが拒否されていた
ちょっとした検証をしたあとに、Elastic Beanstalkのアプリケーショ …
-
-
ALBのヘルスチェックでPHPとMySQL接続をチェック
当ブログで504エラーが発生して、オートスケーリングにより自動でインスタンスが置 …
-
-
AWS Systems Manager AutomationでEC2の自動停止
Systems Manager Automationがない時代に、Lambdaを …
-
-
AWS CloudWatch LogsエージェントでAmazon EC2上のNginxのaccess.log , error.log , php-fpm error.log , Linuxのmessages , secureログを収集する
参考ページ クイックスタート: 実行中の EC2 インスタンスに CloudWa …
-
-
RDS ProxyをAurora MySQLで
Lambda関数をたくさん同時実行してMySQLにアクセスしても大丈夫なようにR …
-
-
slackのbotにWikipediaを調べてもらう(Python on AWS Lambda + API Gateway)
slackのbotに少しでも役に立ってもらおうと、Wikipediaを調べてもら …
-
-
EC2 Linux ユーザーデータ実行ユーザーとカレントディレクトリの確認
きっと、rootなんだろうなあと認識してたのですが、自分の目で確認したことはなか …


