ECのウェブ担当者のメモ

ECサイトを運営管理している、WEB担当プログラマのメモ

スポンサーリンク

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'

ヘルスチェックの設定

f:id:jun9632:20220208223757p:plain

 関連記事

marketing-web.hatenablog.com

(/Library/Developer/CommandLineTools), missing xcrun エラー の対処方法

MacのOSをアップデートして、gitのコマンドを使おうとしたら、以下のエラーが発生しました。

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Xcode をインストール

以下で インストールして解決です。

xcode-select --install

f:id:jun9632:20220208134511p:plain

関連記事

marketing-web.hatenablog.com

Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform エラー

f:id:jun9632:20220207191254p:plain

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

こちらで解決しました。

関連記事

marketing-web.hatenablog.com

Rails の graphql を サブディレクトリのパスで運用する

f:id:jun9632:20220113220705p:plain

/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

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

RDS Proxy が PostgreSQL 12 のサポートを開始したらしい

f:id:jun9632:20211214214520p:plain

RDS Proxy が PostgreSQL 12 のサポートを開始したらしいです。

https://aws.amazon.com/jp/about-aws/whats-new/2021/11/amazon-rds-proxy-supports-postgresql-major-version-12/

RDS のバージョン上げすぎて RDS Proxyに対応していないという状況が続いていましたが、 どうやらPostgre12 もサポート対象になったようです。

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

AWS CLIを使って ファイル名指定してS3内のファイルを削除する

f:id:jun9632:20210610140430p:plain

実行するコマンドは下記のようになります

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

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

AWS ELBでメンテナンス(503)画面を表示する

f:id:jun9632:20210527103255p:plain

awsのelbだけで、メンテナンス画面を表示させる方法です。

elbのルートの条件は下記のようにしています。

f:id:jun9632:20210527103658p:plain

条件やレスポンスなど 適宜調整してください。

パス

 *

レスポンスコード

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>

上記のようなルートを作っておき、 必要な時に、条件の一番先頭に移動すると、いつでもメンテナンス画面に変更することができます。

f:id:jun9632:20210527103926p:plain

関連記事

marketing-web.hatenablog.com