前提・実現したいこと
AWSのElastic Beanstalk(AL2環境)の.ebextensionsでsidekiqを起動したいです。
前提環境
rails 6.0 sidekiq #(バージョンは6ではない)
AWSのElastic Beanstalk(AL2環境)で環境構築しています。(sidekiqはdockerのコンテナ上で起動させており、ローカルでは起動を確認できています。)
sidekiqによる非同期実行を本番環境に導入することになり、ALでのsidekiqの起動に関する.ebextensionsの設定ファイルを参考にしEBを設定、buildしたのですが、ALとAL2では仕様が変更になっているらしくいくつか使えないコマンドがあるとのことで起動できず苦戦しています。
またAL2に変更後のsidekiqの設定ファイルについての記事はまだほとんど見つからず、めぼしい変更点も把握できない状態であり、こちらに投稿させて頂きました。
該当のソースコード
.ebextensions/50_sidekiq.config
# Sidekiq interaction and startup script commands: create_post_dir: command: "mkdir -p /opt/elasticbeanstalk/hooks/appdeploy/post" ignoreErrors: true files: "/opt/elasticbeanstalk/hooks/appdeploy/post/50_restart_sidekiq.sh": mode: "000755" owner: root group: root content: | #!/usr/bin/env bash . /opt/elasticbeanstalk/support/envvars EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir) EB_APP_PID_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_pid_dir) EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user) EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir) EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir) . $EB_SUPPORT_DIR/envvars . $EB_SCRIPT_DIR/use-app-ruby.sh SIDEKIQ_PID=$EB_APP_PID_DIR/sidekiq.pid SIDEKIQ_CONFIG=$EB_APP_DEPLOY_DIR/config/sidekiq.yml SIDEKIQ_LOG=$EB_APP_DEPLOY_DIR/log/sidekiq.log cd $EB_APP_DEPLOY_DIR if [ -f $SIDEKIQ_PID ] then su -s /bin/bash -c "kill -TERM `cat $SIDEKIQ_PID`" $EB_APP_USER su -s /bin/bash -c "rm -rf $SIDEKIQ_PID" $EB_APP_USER fi . /opt/elasticbeanstalk/support/envvars.d/sysenv sleep 10 su -s /bin/bash -c "bundle exec sidekiq \ -e $RACK_ENV \ -P $SIDEKIQ_PID \ -C $SIDEKIQ_CONFIG \ -L $SIDEKIQ_LOG \ -d" $EB_APP_USER "/opt/elasticbeanstalk/hooks/appdeploy/pre/03_mute_sidekiq.sh": mode: "000755" owner: root group: root content: | #!/usr/bin/env bash . /opt/elasticbeanstalk/support/envvars EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user) EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir) EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir) . $EB_SUPPORT_DIR/envvars . $EB_SCRIPT_DIR/use-app-ruby.sh SIDEKIQ_PID=$EB_APP_PID_DIR/sidekiq.pid if [ -f $SIDEKIQ_PID ] then su -s /bin/bash -c "kill -USR1 `cat $SIDEKIQ_PID`" $EB_APP_USER fi
.ebextensions/50_sidekiq_permissions.config
# Set permissions for files accessed by Sidekiq files: "/opt/elasticbeanstalk/hooks/appdeploy/post/51_chmod_logs.sh": mode: "000755" owner: root group: root content: | #!/usr/bin/env bash . /opt/elasticbeanstalk/support/envvars EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir) APP_LOG_DIR=$EB_APP_DEPLOY_DIR/log SIDEKIQ_LOG=$APP_LOG_DIR/sidekiq.log case $RACK_ENV in "integration") RAILS_LOG=$APP_LOG_DIR/integration.log ;; "staging") RAILS_LOG=$APP_LOG_DIR/staging.log ;; "production") RAILS_LOG=$APP_LOG_DIR/production.log ;; esac touch $SIDEKIQ_LOG chmod 0664 $SIDEKIQ_LOG touch $RAILS_LOG chmod 0664 $RAILS_LOG
試したこと
下記参考記事をもとにEB設定ファイルを作成し実行した
https://wiki.lyrasis.org/display/~elr37/Set+up+Sidekiq+for+Rails+app+on+AWS+Elastic+Beanstalk
どんな些細なことでも構いませんのでご指摘頂けると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/27 03:48
2021/01/27 04:17