TECHSTEP

ITインフラ関連の記事を公開してます。

2023-01-01から1年間の記事一覧

IaCの継続的テストを検証する: Amazon EC2に対するテスト

背景 前回AWS CloudFormationで管理するAmazon S3に対し、CI/CDによる継続的なテストと更新を検証しましたが、今回はAmazon EC2を対象に検証してみました。 Amazon EC2で気を付けた点 まず、Amazon EC2に対してテストを行う前に、以前のAmazon S3と比べて異…

IaCの継続的テストを検証する: Amazon S3に対するテスト

背景 以前IaCの書籍をいくつか取り上げ、IaCのテストをどう実行すべきか調査したことがありました。書籍の中には具体的なツールや例を取り上げて記載されている箇所もありますが、やはり実際に動かしてみることで見えることもあると思い、今回簡単に検証して…

rainを使ってCloudFormationのデプロイを楽にする

AWS

今回はCloudFormationのデプロイをより便利にする rain コマンドを試しました。 rainとは rainは複数のコマンドが用意されており、それぞれの特徴は公式リポジトリ に記載されています。特によく使いそうなものをいくつか取り上げます。 rain deployによるイ…

Manning Publication IaC本を読んでIaCのテストを学ぶ

IaC

今回はManning Publicationsから2022年に出版された Infrastructure as Code Practices and Patterns の中から、IaCのテストに関連する部分を取り上げます。 www.manning.com 前提 テストのサイクル 静的解析 動的解析 テストの種類 unit test contract test…

【メモ】AWS CloudFormation Guardを試す

AWS

CloudFormation Guardとは cfn-guardを検証する インストール rulegen validate AWS ELBのログ有効化をテストする 参考リンク CloudFormation Guardとは AWS CloudFormation Guard (以降cfn-guard) は、汎用的なPolicy as Codeを実現するOpen Sourceツールの…

O'Reilly IaC本を読んでIaCのテストについて学ぶ

IaC

今回はO'Reilly社から2020年に出版された Infrastructure as Code (2nd Edition) を読み、IaCに対するテストについて個人的に気になった箇所などを書き留めていきます。 www.oreilly.com 目的 前提 IaCとは 2つ目のCore Practice IaCをテストするうえでの課…

【メモ】PRを作成したら対象ブランチ名を変更してCodePipelineを起動する

以前CodeBuildでPull Requestごとに特定のCommit IDをターゲットにビルドを実行する方法を調べましたが、今回はAWS CodePipelineで同じことを実現しようとしました。 背景 AWS CodePipelineはAWSサービスの一つでフルマネージドな継続的デリバリーサービス …

【メモ】EventBridge Input Transformationを利用してCodeBuild起動時のCommit IDを指定する

背景 以前PR作成時にCodeBuildでCommit IDを対象にビルドを開始する方法を検証したのですが、Amazon EventBridgeのInput Transformationを使うと同じ事が簡単にできることを知ったので、今回はこちらを試してみます。 方法 Input Transformationとは、EventB…

【メモ】CodeCommit上でPR作成時に変更のあったファイルに合わせてCodeBuildの処理を変更する

背景 CI/CDを実現するために各種ソフトウェアを設定するなかで、変更のあったファイルに合わせて起動するジョブを変更したいときがあります。 例えばファイルによって適用するジョブを変更したい場合です。処理対象のファイルによって必要なコマンドライン引…

【メモ】CodeCommit上でPR作成時にLambdaからCodeBuildを起動して特定のコミットにビルドを実行する

背景 以前AWS CodeCommit/CodeBuildを用いたCI/CDを試した際、PRの作成をトリガーにCodeBuildを実行するために、Amazon EventBridgeを使用しました。この時にやりたかったことを並べると、以下のようになります。 CodeCommitで特定のブランチ宛にPull Reques…

Reloaderを試す

Kubernetes上のアプリケーションに外部から秘匿情報やパラメータを与える方法の一つとして、ConfigMap/Secretに情報を記載し、環境変数として渡すことができます。一方でこの方法を採用した場合、ConfigMap/Secretに記載する変数を更新すると、これをPodに反…

Kubernetes External SecretsからExternal Secrets Operatorへの移行方法を調査する

今回は、Kubernetes External SecretsからExternal Secrets Operatorへ移行する際のポイントを調査しました。 前回触れたExternal Secrets Operator (以降ESO) は、同様の機能を提供する Kubernetes External Secrets (以降KES) から移行先として推奨されて…

External Secrets Operatorを試す

External Secrets Operatorとは External Secrets Operatorを動かす AWS Secrets Managerに秘匿情報を登録する ESOをインストールする AWSアクセス情報を登録する SecretStoreのデプロイ ExternalSecretのデプロイ その他 EKS: IRSAを使用する場合 External …

Flux+ArgoCD? Flamingoを試す

今回は、ArgoCD GUIからFluxのリソースの可視化を実現する、Flamingoというプロダクトを動かしてみます。 Flamingoとは Flamingoは、Flux subsystem for Argo (FSA) という名称を持っており、その名前の通りFluxとArgoCDを組み合わせて利用することを可能に…