public note

AWS

AWS Database Migration Service による Change Data Capture: 後編

Amazon RDS から Google BigQuery への CDC 後編です。後編では、S3 に格納された Parquet ファイルのデータを BigQuery に登録する部分を扱います。 構成図 前編はこちらをご覧ください。 ts223.hatenablog.com ソースコードは、前回同様にこちらで公開して…

AWS Database Migration Service による Change Data Capture: 前編

AWS

AWS Database Migration Service (以下、DMS) で Change Data Capture(CDC) を試してみました。 目的 構成 DMS のしくみ DMS の概要図 MigrationType 環境構築のポイント RDS パラメータグループ RDS への接続情報は SecretsManager に入れると便利 Replicat…

AWSのインターフェイス型VPCエンドポイントはAZごとに1つだけ設定できる

AWS

AWS のインターフェイス型 VPC エンドポイント (以下、Interface endpoint)を作成する際に、気になったことがあったのでまとめます。 サブネットの設定でエラーになった 例として、ECR エンドポイントを作成する CloudFormation のコードを挙げます。 ECREnd…

AWS CloudFormationスタックのドリフトを検出してSlackに通知する

AWS

AWS CloudFormation(以下、Cfn) のスタックドリフトを検出して、Slackに通知してみました。 ドリフト検出とは Cfn で定義したスタック内のリソースについて、定義した内容から変更が加わっていないかをチェックする機能です。Cfn で管理していることを知らず…

AWS Cloud Formation で作成した IAM を Miam DSL として出力する

はじめに AWS の IAM を Miam で管理している中で、AWS Cloud Formation で IAM を別途作成した場合にどのように管理するか、という課題について考えます。 対応方法 対応方法には、2通りあると考えました。 Miam の管理対象として DSL に追加する --exclude…

AWS Lambda カスタムイメージと Runtime Interface Clients

AWS Lambda に乗せるコンテナのベースイメージを自分でつくりたいときは、”Runtime Interface Clients” をイメージにインストールするとできます、というお話です。 AWSが提供しているベースイメージ docs.aws.amazon.com 2021年5月時点で、6言語のイメージ…

AWS Batch のシークレットを AWS Secrets Manager から取得する

AWS

AWS Batch で使うシークレットを AWS Secrets Manager から取得したのでメモ。 設定は、前回の Step Functions → Batchの AWS Cloud Formation テンプレートに追加して、動作を確認しています。 GitHub - tosh223/practice-aws-batch: Sample code of AWS Ba…

AWS Step Functions → AWS Batch on Fargate を SAM で定義する

AWS

AWS Step Functions から AWS Batch を呼び出す構成を AWS SAM で定義しました。 AWS Batch のジョブは、Fargate で動くようにしています。 すんなり定義できなかったところがいくつかありましたので、ひっかかったところをまとめました。 つくったテンプレ…

Amazon SQS と Cloud Pub/Sub のインターフェースを統一する

はじめに 小品ですが、ライブラリをつくっています。 その特徴やつくっている背景、解決したいことについてまとめています。 github.com 特徴 名前のとおり、キューのハブです。 Amazon SQS と Google Cloud Pub/Sub を同一のインターフェースで扱うことがで…

AWS Step Functions が yaml に対応したので試した

AWS

2021/3/4 に以下の記事が出ました。待望のyaml対応! aws.amazon.com これで、Cloud Formation の Template と同じく yaml で統一できます。 どんな感じなのか、以前に json で作成したステートマシンを yaml で定義しなおして確認してみました。 対象とした…

Cloud Pub/Sub でキューの長さを確認する

Cloud Pub/Sub で作成したTopicのサイズを確認する方法を調べていたのだが、ちょっと癖があったのでメモ。 Python での実装 import os from datetime import datetime from google.cloud import monitoring_v3 from google.cloud.monitoring_v3 import query…

権限付与から見たAWSとGCPの違い

業務都合で GCP を使う機会が増えたけど、サービスアカウントってなんかわかりにくいなぁってずっと思ってた。でもそれは AWS の考え方を引きずっていたからだと気づいたので、両者の権限付与について違いをまとめる。ざっくりしたまとめなので、詳細な仕様…

AWS Lambda コンテナイメージ の感想

AWS

2020年12月に、AWS Lambda のパッケージタイプとして「コンテナイメージ」が追加されました。 aws.amazon.com 遅まきながら、どのようなものか体験しましたので、感想を適当に書きます。 やったこと 感じたこと イメージについて確認したこと 気になったこと…

pytest, SAM, LocalStackを使ったAWS Lambda結合テスト

AWS

この前の続きで、AWS Lambda の結合テストについて書きます。 やること 実現方法 Method 単位のテスト Function 単位のテスト 具体例 ソースコード 動作確認環境 実装詳細 LocalStack pytest SAM Local テスト実行 テスト実行結果 まとめ やること LocalStac…

AWS Lambdaに対するユニットテスト

AWS

AWS Lambda に対するユニットテスト(以下、UT)で気をつけていることを言語化して、記録に残します。 結論 はじめに 実現したいこと 考えたこと 工夫したこと 具体例 処理内容 ディレクトリ構造 テストデータ Lambda Function テスト共通処理 テストコード ま…

AWS S3オブジェクトのMetadata管理

AWS

S3にファイルを格納する際に、そのファイルがどういった設定・経緯で作成されたのかを合わせて記録に残したいというニーズがありました。今回のケースでは、S3オブジェクトにMetadataを設定しつつputして、そのあとgetする手順をPythonで試したので、記録に…