mazyu36の日記

某SIer所属のクラウドエンジニアのブログ

個人的AWS ログ管理のベースライン

AWSのログ管理についてはいくつか考えるポイントがあると思います。

  • どのログを保存するか。
  • CloudWatch Logs(以下CW Logsと記載)とS3のどちらに保存するか、もしくは両方に保存するか

などなど。

システムの特性によるところも多いかと思いますが、自分の中でのログ管理のベースラインが定まりつつあるので、頭の整理がてらまとめます。

自分の中での大まかな方針としては以下です。

  • S3に保存できるものは基本S3に保存する。
  • 以下の場合は、CW Logsに保存する。必要に応じてS3に転送する。
    • アラームを出したい場合
    • さっとCW Logs Insightでログを確認したい場合
    • CW Logs に出さざるを得ない場合

全体像としては以下になります。

なおあくまで個人的な経験に基づくものなので、実際にはシステムの特性を踏まえて方針の決定が必要かと思います。 またこれは必要、これは不要などご意見あればいただけると非常に嬉しいです。

続きを読む

AWS CDKで各種ログに対するAmazon AthenaのPartition Projectionを実装する

Amazon AthenaにPartition Projection(パーティション射影)という機能があります。

dev.classmethod.jp

ざっくりいうとパーティション管理を自動化して、高速にクエリが実行でき、お財布にも優しいというものです。個人的にはめちゃくちゃ便利だなと思い、特にログの調査に活用しています。

ログ調査対象のサービスの内、大体どのプロジェクトでも使っているものがいくつかあります(ALB、VPCフローログ、CloudTrail....)。

これまではPartition Projectionの設定を行うCREATE文を毎回実行していたのですが、少し面倒なのでAWS CDKで実装し使いまわせるようにしました。

今回の実装の全体像は以下です。

続きを読む

AWS CDKでECSタスク定義を作成後、アプリを更新するとイメージタグがずれる問題への対応

CDKでECSのタスク定義を作成すると、必ず遭遇する(と思う)コンテナのイメージタグがCDKと実態でズレる問題への対応についてです。

以下のスライドでまさに言及されているものです。

AWS CDKでECS on FargateのCI/CDを実現する際の理想と現実 / ideal-and-reality-when-implementing-cicd-for-ecs-on-fargate-with-aws-cdk - Speaker Deck

過去試行錯誤したので、自分なりに整理してみます。

続きを読む

AWS CDKで作ったAuroraクラスターはRDS Blue/Green Deploymentsを使って運用できるのか

本ブログでは何回かAWS CDKで構築したAurora(RDS)クラスターを運用の観点で検証してきました。

当たり前ですがCDKで作ったとしても、そのあとは運用を行っていく必要があるので、運用継続ができるかは重要かと思います。特にDB(ステートフルなリソース)は扱いが難しいため、さまざまな検証をしています。

今回はAmazon RDS Blue/Green Deployments(以降B/G デプロイと記載)が題材です。

B/GデプロイはCloudFormation(CDK)非対応なので、マネコン等からの操作を行う必要があります。そのため実施するとCDKの実装と実態が必ず乖離します。

今回はAWS CDKで作ったAuroraクラスターに対してB/G デプロイを行い、その後CDKと実態を一致させることで運用継続ができるのかを検証します。

https://pages.awscloud.com/rs/112-TZM-766/images/20221222_25th_ISV_DiveDeepSeminar_RDS_BlueGreenDeployments.pdf

先に結論を記載すると、「できなくはないが、CDKと実態を一致させる際にクラスターの再起動が行われる可能性がある」です。

続きを読む

AWS CDKで作ったAurora グローバルデータベースは運用できるのか

リージョン間フェイルオーバーを行うため、Auroraグローバルデータベースを検討することはあるかと思います。

※Aurora グローバルデータベース:リージョン間でデータをレプリケートし、リージョンを跨って運用するための仕組み。

https://pages.awscloud.com/rs/112-TZM-766/images/ORL-T4-Session.pdf

Primaryのリージョンを切り替える際に当然フェイルオーバー操作が発生します。このフェイルオーバー操作がIaCとはなんとも相性が悪そうです。

今回はAWS CDKでAuroraグローバルデータベースを構築したとして、フェイルオーバー発動後にCDKの設定変更反映など運用継続ができるのか?を検証してみました。

結論としては「運用可能」と思われます。以下詳細が続きます。

続きを読む

AWS監視アラートをCDKで実装する

前回以下の監視アラートに関する記事を書きました。(予想以上に反響がありました。ありがとうございます)

mazyu36.hatenablog.com

監視アラートの基準はシステム特性によるものの、同じメトリクスを使用する場合は閾値や集計期間がシステムによって違うぐらいで仕組みとしては同じため、なるべく使い回しができるようコード化しておきたいところです。

今回は監視アラートをAWS CDKで実装する方法について簡単にご紹介したいと思います。

※CDKユーザーの中にはご存じの方も多いかと思いますが、特にメトリクス監視はAWS公式のBLEAにも実装がされており非常に参考になります。本記事においても数多く引用させていただいております。

github.com

続きを読む