S3への自動バックアップが発生しません - バックアップは実行されますが、管理UI経由で手動で実行しない限りアップロードされません

こんにちは。

Discourse を EKS クラスターにデプロイしており、2 つの S3 バケット(アセット用とバックアップ用)へのアクセスを許可するために IAM ロール for Service Accounts を利用しています。フラグ s3_use_iam_profile は true に設定されています。

設定では、バックアップは毎日実行され、S3 バックアップバケットにアップロードされるようになっています。しかし、ログでバックアップが実行されているのは確認できるのですが、完了して S3 にアップロードされるべき段階で、設定されていないかのようにそのステップがスキップされてしまいます。

この古い投稿 - Discourse does not support service account and IAM role for S3 backup - を見つけました。それによると、IRSA または IAM プロファイルは機能しないとのことです。現在、管理 UI を介して手動でバックアップを実行すると完了し、S3 にアップロードされます。これを自動で行うために、他に設定する必要があることはありますか?

よろしくお願いいたします。

スティーブ

わかりません。次に確認する点は以下の通りです。

EKS がバックアップの圧縮と S3 へのプッシュ前に終了していませんか? スペース不足などの問題が考えられますか?

こんにちは、ジェイさん。

すべて問題ないようです。ポッドログは、自動バックアップが正常に完了し、正常に終了したことを示しています。リモートが有効かどうかを確認するチェックが誤って false を返しているようです。

このコミットからビルドされた v3.0.1 を実行しています - Commits · discourse/discourse · GitHub

コードを見ると、false を返しているのはこの行です - discourse/lib/backup_restore/backuper.rb at 4571b10ee5a3c46249271b2870d6eaf37994460f · discourse/discourse · GitHub

興味深い点が 2 つ見つかりました。

1 - 管理 UI で手動でバックアップを実行すると、正常に完了し、圧縮された gzip ファイルが S3 にアップロードされます。
2 - 上記のコード行は v3.0.1 以降変更されているようです - 行は return unless @store.remote? から return unless store.remote? になっています - 私の Ruby はあまり得意ではありませんが、Google によると @variable は self のインスタンス変数なので、v3.0.1 でこれを機能させるために別の設定が必要ですか、それとも v3.0.2 にアップグレードすべきですか?

再度感謝いたします。

これもわかりませんが、一般的に、奇妙な動作がある場合は、アップグレードするのが良い考えです。

これは次を呼び出す必要があるようです。

なぜ失敗するのかわかりません。

承知しました、ジェイさん。

アップグレードを試してみて、それが役立つかどうか確認します。結果をお知らせします。

スティーブ

「いいね!」 1