はじめに 今回はAWS CDKがリソースをデプロイする際にリソース名が最終的にどう決まるのか、調査した内容を元に解説します。自分自身どうやって決まるのか間違って理解していた部分もあるので半分記録として残します。 また度々CDKのcore部分はロジックは変わらなくても、ソースのディレクトリが変更されたりするので、2024年9月の段階でどのような構成になるのかを改めて確認してみます。
はじめに 今回はAWS CDKがリソースをデプロイする際にリソース名が最終的にどう決まるのか、調査した内容を元に解説します。自分自身どうやって決まるのか間違って理解していた部分もあるので半分記録として残します。 また度々CDKのcore部分はロジックは変わらなくても、ソースのディレクトリが変更されたりするので、2024年9月の段階でどのような構成になるのかを改めて確認してみます。
こんにちは、つくぼし(tsukuboshi0755)です! 最近ChatGPTがGPT-4Vを発表し、AI業界がさらに盛り上がりを見せてますね。 GPT-4Vを用いる事で、ChatGPTがユーザ側から入力された画像を読み取った上で、応答を返してくれるようになります。 GPT-4V(ision) system card この機能追加により、なんと以下のようにAWSの構成図を読み取って、IaCコードを生成できる事が話題になっていました。 本日をもって引退します pic.twitter.com/fygAQDQ5kj — 電気ひつじ(onoteru) (@teru0x1) October 13, 2023 これを見て私もGPT-4Vを試してみたくなったので、今回はChatGPTを使って、様々なAWSの構成図を入力し、どこまで正確にIaCコードを生成できるか確認してみます! GPT-4Vを利用する際
はじめに CX事業本部の佐藤智樹です。 先日AWS DevDay Japan 2022 というイベントで「AWS CDKでECS on FargateのCI/CDを実現する際の理想と現実」というタイトルで登壇しました。 今回は上記の登壇で使用した資料の公開と発表の補足を記載いたします。 登壇動画 登壇資料 発表理由 1年前に上記の構成を始めた際に、思っていたよりは理想の状態にできないことが多々あり、情報も多くないように感じたので少しでも参考になるように実践例をベースにまとめました。同じような構成を試される際は参考になるかと思います。また発表の1ヶ月以内(2022/09~10)に結構更新があったので、昔同じ構成試してダメだった部分があったかたも参考になる部分あるかと思うのでみてもらえると嬉しいです。 最後に 本当は資料90ページぐらいになってタイトルと関連性の薄い内容(ECS on Farg
こんにちは、CX事業本部の若槻です。 Amazon API Gatewayでは、REST APIのログをCloudWatch Logsに記録することが可能です。 API Gateway での CloudWatch による REST API のログの設定 - Amazon API Gateway 今回は、AWS CDKでAPI Gatewayのログ出力を有効にしてCloudWatch Logsでログを確認してみました。 確認してみた API Gatewayのログにはアクセスログと実行ログの2種類があります。AWS CDKではいずれもRestApiのdeployOptions内で出力の設定を行います。 import * as apigateway from '@aws-cdk/aws-apigateway'; import * as logs from '@aws-cdk/aws-logs';
AWS CDKでVPCを作成する際にsubnetTypeをPRIVATEにしてしまうとNAT ゲートウェイが作成されますよね。 NAT ゲートウェイは必要だけどサブネット分だけ作成されると、コストが増えたりするので数を指定したい時ありますよね。 この記事では、AWS CDKで作成されるNAT ゲートウェイの数を抑制する方法を記載します。 設定すること Vpcインスタンスの定義時に、プロパティにnatGatewaysを与えるだけです。 具体的にはこのように記載するだけです。 import cdk = require('@aws-cdk/core') import { Vpc, SubnetType } from '@aws-cdk/aws-ec2' export class AwesomeStack extends cdk.Stack { constructor(scope: cdk.App
先日Serverless StackというAWSでサーバーレスアプリケーションを簡単に構築できるフレームワークの存在を同僚に教えて貰いました。どうやらAWS CDKをラップして実装しているらしく興味をもったのでさっそく触ってみました。 はじめに おはようございます、加藤です。先日Serverless StackというAWSでサーバーレスアプリケーションを簡単に構築できるフレームワークの存在を同僚に教えて貰いました。どうやらAWS CDKをラップして実装しているらしく興味をもったのでさっそく触ってみました。 概要 公式サイト: https://serverless-stack.com/ Serverless StackはAWSで簡単にサーバーレスアプリを構築するためのフレームワークです。 GitHubのスター数の変化を見てみると2021年1月から注目を浴びたようです。 AWS CDKをベース
AWS CDKで管理されていないリソースを、AWS CDKで管理するリソースから参照する場合、fromLookupのようなStaticメソッドをよく使うと思います。本記事では、AWS CDKのAmazon EC2 Construct Libraryを利用して、AWS CDKで管理されていないSubnetの参照方法を紹介します。 環境 AWS CDK: 1.56.0 TypeScript: 3.9.7 VPCを参照する方法 Subnetを参照するためには、まずVPCを参照する必要があります。VPCの検索パラメータはいくつか用意されていますが、だいたいはvpcIdを使うかと思います。VPCの参照については特に問題ありませんね。 const vpc = ec2.Vpc.fromLookup(this, 'Vpc', { vpcId: 'vpc-xxx' }) Subnetを参照する方法 参照した
全体図 WebAPIを2つ、Lambdaを2つ、DynamoDBを1つ作ります。 ※Lambdaコードは省略します。DynamoDBは作るだけです。 AWS CDKプロジェクトの構築 $ mkdir AWSCDK-ResourceNameSample $ cd AWSCDK-ResourceNameSample $ cdk init app --language=typescript 必要なライブラリをインストールします。 $ npm install --save @aws-cdk/aws-apigateway $ npm install --save @aws-cdk/aws-lambda $ npm install --save @aws-cdk/aws-dynamodb リソース名を決めるロジックを作成する やりたかったのはこれですね。AWSリソース名の作成ロジックを行うファイルを作
はじめに 先日のre:Invent 2020にて、Lambdaのパッケージフォーマットとして、従来のZIP形式に加えてコンテナイメージがサポートされました。詳しくは下記を参照してください。 【速報】Lambdaのパッケージフォーマットとしてコンテナイメージがサポートされるようになりました!! #reinvent CDKでLambdaのパッケージフォーマットにコンテナイメージの定義ができると実践投入や構成を考えやすなーと思っていたところ、CDKのv1.76.0で定義できるようになっていたため、今回はそちらを試します。 以下注意点です。ご了承お願いします。 本記事は、CDK v1.76.0ベースで記載した記事となります。CDKのバージョンが上がった場合には、記事通りやっても動かない可能性があります 作成する関数は、Node12系です。別言語で作成したい方は、一部しか参考になりません 構成 概要
はじめに AWS CDK で作成したサブネットの情報をどうやって取得するかハマったときのメモになります。 使用する言語は TypeScript です。 ※ この記事は AWS CDK v1.63.0 のものです。 v1.64.0 以降は後述の方法で解決できます。 AWS CDK + TypeScript はいいぞ! やること VPC を作成し、パブリックサブネットを2つ、プライベートサブネットを1つ作成する セキュリティグループを作成し、2つ目のパブリックサブネットから5432ポートへの通信を許可する できたもの import * as cdk from "@aws-cdk/core"; import * as ec2 from "@aws-cdk/aws-ec2"; import { CfnSubnet, Peer, Port, SecurityGroup } from "@aws-cd
コンニチハ、千葉です。 CDKの検証で、スタック環境を作成、削除をしていたのですが、cdk destroy を実行しても作成したS3バケットが残ってました。なぜだろう?と思い調査をはじめました。 背景 GitHubのイシューを見つけました。 S3のデフォルトは削除ポリシーがRetain(つまりCFnスタックを削除されてもバケットが残る) この動作は、cdk destroy を実行した場合に、失敗することがあるため。理由としては、S3バケットが空でないとバケットが削除できない CloudWatchロググループもRetainとなっている 今後、デフォルト値がアップデートされる可能性がありますが、現状はRetainとなっています。 デフォルトの挙動確認 デフォルトの動作確認です。通常通りS3を作成してみます。コードは以下です。 from aws_cdk import ( aws_s3 as s3
AWS CDKでプロバイダーとしてTerraformが使える!!CDK for Terraformが発表されました!! #awscdk AWS CDKがデプロイプロバイダーとしてTerraformをサポートしました!!!まだPreview版ですが、試しにVPCを作成してみました。 はじめに おはようございます、加藤です。私にとっては今年1番熱いアップデートが来ました!AWS CDKがなんとデプロイプロバイダーとしてTerraformをサポートしました!!! ただし、今の所アルファテストステージなので、原則プロダクション環境に使うべきでありません、使う際は慎重に判断してから使用しましょう。 今まで、TerraStackIO/terrastackという同様にCDKでプロバイダーとしてTerraformを使おうとするプロジェクトはあったのですが、あまり開発は進んでいませんでした。なので、これまで
SSMのパラメータストアにStringとSecure Stringを追加する あらかじめ追加しておきます。 $ aws ssm put-parameter \ --type 'String' \ --name '/CDK/Sample/NormalParam1' \ --value 'this is normal param1.' { "Version": 1 } $ aws ssm put-parameter \ --type 'SecureString' \ --name '/CDK/Sample/SecureParam1' \ --value 'this is secure param1.' { "Version": 1 } AWS CDKプロジェクトの構築 $ mkdir AWSCDK-SSM-SecureStringSample $ cd AWSCDK-SSM-SecureStr
お仕事でAWS環境を構築する機会がありましたので、今回はじめてCDKを使って構築してみました。CDKで環境構築する記事はたくさんありますので全体は割愛するとして、本記事ではCDKを使ったECS(Fargate) Serviceのデプロイフローにフォーカスしてご紹介します。 バージョン $ cdk version 1.32.0 (build 9766ad6) 全体構成 全体構成としては、以下の図のようにオーソドックスなWeb3層アプリケーションの構成です。 ECS Serviceに関連する主なリソース構成を以下の図に示します。 このリソース構成のうち、緑色の線で示したリソースはインフラ管理用のCDKで管理し、オレンジ色の線で示したリソースはECS Serviceデプロイ用のCDKとしてアプリケーションのリポジトリで管理しています。 デプロイフロー デプロイフローを以下の図に示します。 Git
valueFromLookup このメソッドを使うと生成するテンプレートにパラメータストアに格納されていたStringを転記します。テンプレートに転記する為、SecureStringに対して使用する事ができません。SecureStringに対して使用できてしまうと、CloudFormationに対する読み取り権限があれば誰でもテンプレートを閲覧する事で内容を確認できてしまいます。Stringに対してパラメータストアの階層構造などで権限管理している場合、その管理から外れて閲覧できるユーザーが発生しうるので注意が必要です。 パラメータのバージョンはlatestに強制されます。 実は、SecureStringに対して使用する事は出来ますが、暗号化されたままの文字列で取り出されるので使い道はありません。 import { Construct, RemovalPolicy, Stack, Stack
たとえば、/message/hogeに対してアクセスしたとき、下記のJSONを取得します。 { "env": "dev", "message": "your request message id is hoge" } envの値は、開発環境ならdevで、本番環境ならprodとします。 AWS CDKプロジェクトの構築 フォルダを作成し、AWS CDKプロジェクトの初期化を行います。 $ mkdir AWSCDK-CircleCIDeploySample $ cd AWSCDK-CircleCIDeploySample $ cdk init app --language=typescript 必要なライブラリをインストールします。 $ npm install --save @aws-cdk/aws-lambda $ npm install --save @aws-cdk/aws-apigat
AWS CDKをさわれば触るほど、素晴らしさに気づけます。 今回は、AWS CDKを使ってAppSyncとDynamoDBを使用したサービスを作ってみたいと思います。 本記事では、TypeScriptの使用方法や、CDKの基本的な使い方は紹介しません。 もくもくと、CDKでAppSyncを使うまでにしたことを記載します。 また本ブログで使用した、AWS CDKのバージョンは1.3.0です。 プロジェクトの初期設定 AWS CDKのスタックを作成するための初期設定を行ないます。 個人の趣向ですが、cdk initをせずにプロジェクトの設定を行います。 $ mkdir cdk-appsync-101 && cd $_ $ git init $ npm init -y $ npm i @aws-cdk/{aws-appsync,aws-dynamodb,aws-iam,core} $ npm i
CDKプロジェクトと必要なライブラリのインストール $ mkdir aws-cdk-construct-library-sample $ cd aws-cdk-construct-library-sample $ cdk init app --language=typescript $ npm install --save @aws-cdk/aws-lambda @aws-cdk/aws-apigateway @aws-cdk/aws-iam @aws-cdk/aws-ecs-patterns @aws-cdk/aws-ecs High Level Constructで実装 まずは、High Level Constructで実装します。Lambda + API Gatewayのリソースを作成します。 サンプル用のLambdaのコード export async function handle
運用中のLambdaのログに特定のワードが出現した時、Slackに通知させる仕組みをAWS CDKで作ってみました 1 はじめに CS事業本部の平内(SIN)です。 Lambdaファンクションでエラーなどがログに出力された時に、これを通知する仕組みは結構重要です。 CloudWatch Logsでサブスクリプションを追加してLambdaと連携すれば、Slackなど任意の宛先に通知することは簡単です。そして、作成当初から組み込んむ場合は特に問題ないでしょう。 しかし、既に運用されているLambdaにこれを仕掛けるとなると、ちょっと、一撃とは行きません。 今回は、AWS CDK(AWS Cloud Development Kit)を使用して、この作業を軽易に行うプロジェクトを作成してみました。 (注:CFnでも、同じ仕組みを作成可能です。AWS CDKでなければ出来ないという意味ではあ
はじめに おはようございます、加藤です。これまで、エンジニアとしてのキャリアは全てインフラエンジニアでしたが、今月からプログラマーとしてのロールを希望してゼロから再スタートしております。 今回、AWS CDK(以降、CDK)を使って典型的なWeb3層アーキテクチャを構築してみたので、こだわったポイントや使う過程で理解した事をご紹介します。 リポジトリはこちらです。 kmd2kmd/aws-cdk-ec2_web3tier ある程度CDKを理解されている方を前提として書いております。下記のブログを読む、Workshopを試した経験がある程度の理解が必要です。 AWS CDK が GA! さっそく TypeScript でサーバーレスアプリケーションを構築するぜ【 Cloud Development Kit 】 | DevelopersIO TypeScript Workshop :: AWS
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く