Rails の ELB ヘルスチェック用のアクションを設定する
AWSのELBのヘルスチェックをクリアするために、設定を追加します。 {result: 'ok'} を 返すだけの至って単純な仕組みです。
コントローラーを作成
rails g controller elb health_check
elb_controller.rb
class ElbController < ApplicationController def health_check render json: {result: 'ok'} end end
routes.rb
get '/health_check' => 'elb#health_check'
ヘルスチェックの設定
関連記事
(/Library/Developer/CommandLineTools), missing xcrun エラー の対処方法
Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform エラー
capistrano で deploy したら以下のエラーが発生。
bundle stdout: Nothing written bundle stderr: Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform is x86_64-linux. Add the current platform to the lockfile with `bundle lock --add-platform x86_64-linux` and try again.
コメントどおり 以下を実行
bundle lock --add-platform x86_64-linux
こちらで解決しました。
関連記事
Rails の graphql を サブディレクトリのパスで運用する
/api/graphql とか /admin/graphql とか /api/graphiql とか
のパスでgraphqlするための router.rbの設定です。
Rails.application.routes.draw do namespace :api do if Rails.env.development? mount GraphiQL::Rails::Engine, at: '/graphiql', graphql_path: '/api/graphql' end post '/graphql', to: 'graphql#execute' end end
コントローラーも下記においています。
app/controllers/api/graphql_controller.rb
関連記事
RDS Proxy が PostgreSQL 12 のサポートを開始したらしい
RDS Proxy が PostgreSQL 12 のサポートを開始したらしいです。
RDS のバージョン上げすぎて RDS Proxyに対応していないという状況が続いていましたが、 どうやらPostgre12 もサポート対象になったようです。
関連記事
AWS CLIを使って ファイル名指定してS3内のファイルを削除する
実行するコマンドは下記のようになります
aws s3 rm --recursive s3://my.bucket.com/logs/ --exclude '*' --include 'log-*'
s3://my.bucket.com/logs/
my.bucket.com バケットの logs/ ディレクトリを対象にする。
--recursive
指定のディレクトリ内またはプレフィックス内のすべてのファイルやオブジェクトに対してコマンドを実行する。
--exclude '*'
いったん全部除外
--include 'log-*'
log- で始まるファイルを削除対象とする。
補足
削除確認するときは --dryrun をつけてから実行すると安全です。
aws s3 rm --recursive s3://my.bucket.com/logs/ --exclude '*' --include 'log-*' --dryrun
関連記事
AWS ELBでメンテナンス(503)画面を表示する
awsのelbだけで、メンテナンス画面を表示させる方法です。
elbのルートの条件は下記のようにしています。
条件やレスポンスなど 適宜調整してください。
パス
*
レスポンスコード
503
Content-Type
text/html
レスポンス本文
<!DOCTYPE html> <html> <head> <title>メンテナンス作業中です。(503)</title> <meta content="width=device-width, initial-scale=1.0" name="viewport" /> <meta charset="UTF-8" /> <style> .page { margin-top: 60px; } .tit_box.center { text-align: center; } .page .page_inner { max-width: 640px; text-align: center; margin: 0 auto; } </style> </head> <article class="page"> <div class="tit_box center"> <img src="https://placehold.jp/60/666666/ffffff/300x300.png?text=503%0A" > </div> <div class="tit_box center"> <h1 class="page-title">503 Service Unavailable<br>ただいま、メンテナンス作業中です</h1> </div> <div class="page_inner"> <p> メンテナンス作業中のため、ただいまサービスをご利用頂くことができません。<br> ご迷惑をおかけして大変申し訳ありませんが、終了までしばらくおまちください。<br> </p> </div> </article> <body> </body> </html>
上記のようなルートを作っておき、 必要な時に、条件の一番先頭に移動すると、いつでもメンテナンス画面に変更することができます。