やるきげんきなみき

Web系インフラエンジニアのTips集

Amazon Auroraのカスタムエンドポイントをフェイルオーバーに追従させる

はじめに

こんにちは!インフラエンジニアのなみきです。

Webサーバーなどユーザーにサービスを提供するサーバーと、バッチサーバーなど裏方の処理を行うサーバーがある時、バッチ処理によるDB負荷がユーザー側へ影響しないよう、接続するDBインスタンスを分けたいシーンがあると思います。

ここで役立つのがAmazon Auroraのカスタムエンドポイントです。 以下のようにエンドポイントを使い分けるのがよくあるユースケースかと思います。

ユーザーにサービス提供するWebサーバーと裏側のバッチサーバーで異なるインスタンスを利用したい

ここで、フェイルオーバーしたときの挙動はどうなるのだろうと疑問に思いました。

リーダーだけを含むカスタムエンドポイントを作ったつもりでも、フェイルオーバーで昇格してしまったら、リーダーとライターが混ざったカスタムエンドポイントになってしまうのでは? そして、ライターからリーダーになったインスタンスには接続がなくなるのでは?

フェイルオーバー時に考えられる懸念。ライターになったinstance2にはreadが来てしまい、リーダーになったinstance1にはどこからも接続されない

理想としては、もしフェイルオーバーが起きてライターとリーダーが入れ替わったとしても、「カスタムエンドポイントはリーダーインスタンスに接続する」という点は変わらないようにしたいです。

理想の挙動。フェイルオーバー時にカスタムエンドポイントの宛先が動的に変わる

そこで、理想を満たす方法はないか、RDSのカスタムエンドポイントについて調べて検証してみました。

結論

  • カスタムエンドポイントをCLIで作成する
  • エンドポイントタイプを READER に指定する
  • ライターインスタンスも含める形でカスタムエンドポイントに登録する

このように設定すると、理想を満たす挙動にできます。

詳しくは以下より解説します。

続きを読む

新しい会社で役に立ったスキルと補ったスキル

この記事はGENDA Advent Calendar 2023の5日目の記事です。

qiita.com

はじめに

新しい会社にインフラエンジニアとして入社して、9か月が経過しました。 この9か月間、難なく対応できたこともあれば、非常に苦労したこともあります。 そこで今回は、入社してから「役に立ったスキル」と「補ったスキル」をそれぞれ振り返ってみようと思います。

続きを読む

Auto Scaling Groupでスポットインスタンス費用を節約しようとしたけどうまくいかなかった話

はじめに

こんにちは、インフラエンジニアのなみきです。

私の担当プロダクトでは、ステージング環境のAuto Scaling Groupでスポットインスタンスを利用しています。 当初、ステージング環境では費用の安さを優先して意図的にベストプラクティスから外れた設定にしていました。 そんな中、スポットインスタンスの起動に関する2つの問題に遭遇しました。

結論としては単純に「ベストプラクティスに従いましょう」というだけの話ですが、一見して何が悪いのかすぐには分かりませんでした。 したがって、今後同じ問題に遭遇した人の役に立つよう、「こんな設定にするとこんな問題が起きる」という一例として紹介したいと思います。

続きを読む

EC2 Auto Scalingで動的スケーリングとスケジュールを組み合わせる

はじめに

こんにちは、インフラエンジニアのなみきです。 これまでは所属企業でブログを書いていましたが、退職に伴い自分のブログを開設しました。 改めてよろしくお願いします。

さて、今日のお題はみんな大好きEC2 Auto Scalingです。

EC2 Auto Scalingでできる自動スケーリングは、大きく分けて3種類あります。

これらのスケーリングを組み合わせて利用されている方は多いのではないでしょうか。

今回は、「動的スケーリング」と「スケジュール」を組み合わせて利用する際のオススメ設定方法を紹介します。

続きを読む