mazyu36の日記

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

AWS

CDKのL2 ConstructでVPCのDual Stackを設定しIPv6による通信を試す

VPCのL2 ConstructでDual Stackがサポートされるのを待っていたところ、v2.121.0でサポートされていました。 今回はこちらを試してみます。 AWS CDK v2.121.0 新機能✨#cdk_releases1/ Vpc L2コンストラクトでDual Stackを構成してIPv6を使用可能に。ipProtoc…

Global AcceleratorのWorkshopをCDKで実装する

業務でGlobal Acceleratorを検討する機会があったのですが、恥ずかしながら使用したことがないため勉強がてらCDKで実装してみました。 題材としては以下のWorkshopのGlobal Acceleratorパートを使用しています。 catalog.workshops.aws 実装は以下にあります…

AWS App Runner Workshop を AWS CDKで実装する

App Runnerの学習にあたり、以下のWorkshopをCDKで実装してみました。そのまとめです。 catalog.us-east-1.prod.workshops.aws コードは以下にあります。 github.com ※App Runnerが何であるかは一切書いてありません。基礎知識を得たい場合は以下の記事がお…

ハンズオンやWorkShopをAWS CDKで実装するようにしたら学習効果が上がった話

🎄本記事は、AWS CDK Advent Calendar 2023 の 18日目の記事となります AWSのサービスを学ぶときにハンズオンを行うことは多いと思いますが、最近は基本的にCDKで実装しています。 メリットや具体的な流れを簡単にまとめます。

AWS CloudFormationのGit Syncを使って、AWS CDK用のGitOpsパイプラインを構築する

🎄本記事は、AWS CDK Advent Calendar 2023 の 5日目の記事となります 前回、CloudFormationのGit SyncをCDKで使う方法を紹介しました。 mazyu36.hatenablog.com 今回はこちらを活用して、AWS CDK用のGitOpsパイプラインを組んでみたいと思います。

AWS CDKでCloudFormationのGit Sync機能を使用してデプロイする

CloudFormationのGit Sync機能が追加されました。 aws.amazon.com こちらをAWS CDKで試してみたので、やり方などまとめます。 ※CDKでできないかなーと試している時に、Xで以下のポスト見かけて参考にさせていただきました。感謝。 CloudFormation git sync w…

Step Functionsでエクスポネンシャルバックオフやジッターの設定が便利になった

個人的に待ち望んでいた、Step Functionsにおけるエクスポネンシャルバックオフの上限設定や、ジッターの設定が追加されたので試してみました。 2023/9/7のアップデートにおける enhanced error handling で追加されています。 aws.amazon.com

【CDK】HTTP API Callを使ったIntegration testを試す

CDK integ-tests モジュールを使用したintegration test(以下integ test)を試してみたのでその記録です。 CDKでdeployしたリソースに対して、動作確認用のinteg testを走らせるということができます。 以下がAWS公式の解説ブログで、基本的な使い方や仕組…

【CDK】Connectionsのメソッドを使用して楽に通信設定を行う

CDKだとIConnectableインタフェースのプロパティであるconnectionsを使うことで通信の許可設定を容易に行えることを最近知りました。 今まではセキュリティグループ(以下SG)を個別に定義し、インバウンドルールを設定ということをやっていましたが、上記の…

Spring BootでAWS Advanced JDBC wrapperを使ってAurora PotgreSQLに接続する

最近Java(Spring)を使う機会があり、DB接続周りでAWS Advanced JDBC wrapperを試してみたのでその記録です。 やりたいことは以下です。 Secrets ManagerからDBの認証情報を取得する。 Failoverに対応する。 WriterとReaderでクエリを振り分ける ※なお筆者…

AWS IoT CoreでMQTTを試す + Topic Ruleを活用したデータ基盤を構築する

AWS IoT Coreを使ったMQTT通信を試してみた記録です。 構成としては以下のような感じです。 IoTデバイスとサーバーがMQTTを使用してProtocol Buffersでやりとりする+IoTデバイスのデータを格納するデータ基盤から成ります。 大きくは以下の3つの要素が存在し…

Amazon MQで Multi AZなMQTTブローカーを構築し、フェイルオーバーを考慮したMQTT通信を行う(AWS CDK, paho-mqtt)

前回の記事で、AWSにおけるMQTTブローカーのサービスに比較について記載しました。 mazyu36.hatenablog.com 今回はその中でもAmazon MQを使用し、Multi AZであるMQTTブローカーを構築した上でMQTT通信を試してみました。 ポイントとしては以下です。 Amazon …

AWSにおけるMQTTブローカーを比べてみる(Amazon MQ, AWS IoT Core)

AWS上でMQTTを使う機会があったのですが、MQTT自体を全く知らなかったので、基礎知識整理しつつ関連サービスを触ってみて感じた違いを整理してみます。 (内容としては初心者向けです。間違っているところあれば教えてください。) 今回試してみたサービスは…

VPC LatticeのService Networkは送信元のVPCと受信側のServiceを関連付ければ良い

前回のブログでVPC LatticeをAWS CDK(L1 Construct)で構築してみました。 mazyu36.hatenablog.com とりあえず動作はしましたが、VPCとService Networkの関連付けや、Service NetworkとServiceの関連付けのところはあまりよくわかっていませんでした。 そのた…

VPC LatticeをAWS CDK(L1 Construct)/ CloudFormationで実装する

re:Invent 2022でも話題になっていたVPC Latticeが2023/3/31にGAしました。 aws.amazon.com キャッチアップついでにAWS CDK(L1 Construct)で実装したので、その内容をまとめます。なお L1 ConstructはCloudFormationとほぼイコールなので、CloudFormation…

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

AWS

AWSのログ管理についてはいくつか考えるポイントがあると思います。 どのログを保存するか。 CloudWatch Logs(以下CW Logsと記載)とS3のどちらに保存するか、もしくは両方に保存するか などなど。 システムの特性によるところも多いかと思いますが、自分の…

CodeBuildのbuildspecはCDKのBuildSpec.fromObjectで作成するようにした

タイトルの通りですが、AWS CDKを使い始めてからAWS CodeBuildのbuildspecはBuildSpec.fromObjectを使って生成しています。 個人的にはbuildspecの管理がかなり便利だと思っているので、簡単にまとめます。

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

Amazon AthenaにPartition Projection(パーティション射影)という機能があります。 dev.classmethod.jp ざっくりいうとパーティション管理を自動化して、高速にクエリが実行でき、お財布にも優しいというものです。個人的にはめちゃくちゃ便利だなと思い、…

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

CDKでECSのタスク定義を作成すると、必ず遭遇する(と思う)コンテナのイメージタグがCDKと実態でズレる問題への対応についてです。 以下のスライドでまさに言及されているものです。 AWS CDKでECS on FargateのCI/CDを実現する際の理想と現実 / ideal-and-r…

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

本ブログでは何回かAWS CDKで構築したAurora(RDS)クラスターを運用の観点で検証してきました。 当たり前ですがCDKで作ったとしても、そのあとは運用を行っていく必要があるので、運用継続ができるかは重要かと思います。特にDB(ステートフルなリソース)…

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

リージョン間フェイルオーバーを行うため、Auroraグローバルデータベースを検討することはあるかと思います。 ※Aurora グローバルデータベース:リージョン間でデータをレプリケートし、リージョンを跨って運用するための仕組み。 https://pages.awscloud.co…

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

前回以下の監視アラートに関する記事を書きました。(予想以上に反響がありました。ありがとうございます) mazyu36.hatenablog.com 監視アラートの基準はシステム特性によるものの、同じメトリクスを使用する場合は閾値や集計期間がシステムによって違うぐ…

AWS監視アラート 事始め

はじめに 入門監視をはじめ一般的な監視に関するプラクティスは出回っているものの、AWSで具体的に何を監視するか?そのとっかかりについてはあまり出回っていないような気がします。 AWSの監視ってみんな何監視してるんすか…っていうぐらい実例あまり見つか…

AWS CDKのチーム開発時に実装時の考慮事項、意識合わせした点について

はじめに 以下の記事でAWS CDKにおけるチーム開発のフローやテストについて記載した。 mazyu36.hatenablog.com mazyu36.hatenablog.com 今回は実装内容についてチーム内で意識合わせしておいた方が良いと思った点をまとめておく。

AWS WAFのマネージドルールでありがちな予期せぬブロック

はじめに AWS WAFのマネージドルールについて、観測範囲における誤検知あるある事象をまとめておく。 AWS WAFの意図せぬブロックあるあるを知りたい。複数のプロジェクトで経験したのはリクエストボディ8kb越えでブロックされるのと、OIDCのエンドポイントへ…

Fargate BastionとAthena Federated Queryを使用して楽にAurora MySQLを運用する( + CDKで実現する方法)

初めに Fargate BastionとAthena Federated Queryを使って、サーバレスでAurora MySQLを手軽に運用する仕組みを導入したところ、なかなか便利だったのでまとめておく。

AWS CDKをチーム開発する際に採用したテスト実装について

はじめに 別記事でAWS CDKのチーム開発をどのようにやっていたかを書いていた。 mazyu36.hatenablog.com 今回はその続きとしてテスト実装をどのようにやっていたかをまとめてみる。

TypeScript未経験者がAWS CDK with TypeScriptをやるときに困ったこと

はじめに 今でこそAWS CDK with TypeScript大好きマンだが、TypeScript未経験の状態で始めたので割と初歩的なところで詰まった。 多分NodeとかJSとか開発経験がある人には常識的なことばかりだとは思うが、詰まったところを小ネタ的にまとめていく。 ※JS、TS…

AWS CDKをチーム開発する際に採用したプロジェクト管理、開発のフローについて

はじめに 今年度初めてAWS CDKによるチーム開発を行ってみた。その際に採用したソースコードのプロジェクト管理方法や、デプロイのフローについて考えたこと含め整理としてまとめておく。 ※これが最適だとは思っていないので、イマイチな点などあれば意見も…

ECS on FargadeでFirelensによるログ管理サイドカーをAWS CDKで実現する

はじめに あるプロジェクトでECS on Fargateで以下のFirelensによるログ管理サイドカーを行う必要性が出てきたので、CDKによる実装れいを記載する。 ログ管理サイドカー前々からやりたいと思ってたので、CDKでやってみるhttps://t.co/4xvdnIwHKe— mazyu36 (@…