前回の「TerraformでAmazon EKSクラスタを構築して、ArgoCDでアプリケーションをデプロイする」ではTerraformによるIaC化の説明をしました。実はこのコードのほぼすべては生成AIを使って作成したものでした。(流石に解説文までは生成AIを使ってはいません)
本記事では、環境構築ためのコードをどうやって生成させたかについてご紹介します。
続きを読む前回の「TerraformでAmazon EKSクラスタを構築して、ArgoCDでアプリケーションをデプロイする」ではTerraformによるIaC化の説明をしました。実はこのコードのほぼすべては生成AIを使って作成したものでした。(流石に解説文までは生成AIを使ってはいません)
本記事では、環境構築ためのコードをどうやって生成させたかについてご紹介します。
続きを読むTerraformなどのIaCのツールを使ってシステムを構築するメリットの一つに冪等性があります。ですが、EKSのようなKubernetesクラスタを構築した後、継続的デプロイのためにArgoCDをインストールする段階で kubectlやhelmコマンドを使いがちです。(ArgoCDのインストールの解説はkubectlやhelmコマンドで説明される事が多いです。) このようにすると冪等性が保てなくなってしまいます。
本記事では、ArgoCDのインストールやArgoCDのアプリケーションのカスタムリソースの登録までをTerraformでIaC化する方法を解説します。
続きを読むWebサービスを運営している時に、サーバサイドではAPIにフィルタリング機能を求められる事がしばしば起こります。このようなAPIの一例として、タスク管理ツールでのタスクの一覧を返す以下のようなAPIがあります。
openapi: 3.0.1 info: title: OpenAPI definition version: v0 servers: - url: http://localhost:8080 description: Generated server url paths: /tasks: get: tags: - tasks-controller summary: タスクをリストアップする operationId: listTasks responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ListTasksResponse" components: schemas: ListTasksResponse: type: object properties: results: type: array items: $ref: "#/components/schemas/TaskDto" Task: type: object properties: id: type: string description: ID format: uuid title: type: string description: タスクの名前です。 description: type: string description: タスクの説明です。 completed: type: boolean description: 完了したかどうか。 creatAt: type: string description: 作成日時です。 format: date-time updateAt: type: string description: 更新日時です。 format: date-time description: タスクです。
このAPIに対して、「タスクの名前でフィルタリングしたい」、「未完了のものだけ返して欲しい」とか、「未完了のもので1週間以上更新のないものをリストアップしたい」というような要望が出てくるのは一般的です。フィルタリングの処理そのものを実装するのは、RDBMSなどのデータベースへのクエリに条件を追加するだけなので難しくはないでしょう。
続きを読むCognitoの構築方法を忘れないように、Terraformを使ってコード化しておこうと思います。 また、せっかくなのでAPIGatewayを前段に配置してCognitoをオーソライザとして使ってみるところまでを試してみようと思います。 こちらの記事(Part1)ではCognitoの構築をメインに記述します。(※今回IDプールは使用しませんが後学のためにコード化だけしています。) Part2ではAPIGatewayの構築とCognitoのオーソライザ設定を主に記述します。
