タグ

awsとcdkに関するopparaのブックマーク (59)

  • TypeScriptのAWS CDKで設定値(Config)を渡す実装方法を考えてみた | DevelopersIO

    AWS CDKではシステム環境(dev,stg,prdなど)の環境ごとに設定値を切り替える方法が何パターンかありますよね。今回TypeScriptを使う際にできるだけ型の恩恵を受ける実装パターンを考えてみました。 こんにちは。AWS事業コンサルティング部に所属している今泉(@bun76235104)です。 AWS CDKを使う時の設定値(Config)の渡し方に迷ったことはありませんか? 私は何度もあります。 以下記事では弊社の佐藤が設定値の渡し方について2つの方法を提示してくれています。 私としても2. 外部ファイルの利用(TSファイル)による方法に以下のようなメリットを感じています。 TypeScriptの型の恩恵を受けることができる プログラミング言語によるインフラのプロビジョニングができるAWS CDKにおいて、TSファイルを使う方法は相性が良い(と私は思っています) アプリケ

    TypeScriptのAWS CDKで設定値(Config)を渡す実装方法を考えてみた | DevelopersIO
  • [AWS CDK]Chatbotを使ってLambdaのエラーをSlackに通知してみた | DevelopersIO

    Lambda単体で動かす時、簡単にSlackに通知できる仕組みが欲しいなと思いCDKで実装してみました いくつかLambdaのエラーを拾うための実装パターンはありますが、なるべく単純な仕組みが好ましかったため以下のサービスを利用しました。 やってみる 以下の環境で実装しました。 ❯ cdk --version 2.59.0 (build b24095d) ❯ python --version Python 3.8.13 事前準備 CDKでデプロイするだけにしたいところですが、Chatbotを利用する上でワークスペースとの接続はコンソールから実施する必要があります。 AWSコンソールにログインしてChatbotを開きます。チャットクライアントでSlackを選択してクライアントを設定をクリックしてください。 ワークスペースとの接続画面に飛ぶので、右上から通知先にしたいワークスペースを選択してか

    [AWS CDK]Chatbotを使ってLambdaのエラーをSlackに通知してみた | DevelopersIO
  • S3バケットへのファイルアップロードをClamAVでウィルススキャンする構成をCDKでサクッと作ってみる | DevelopersIO

    CX事業部Delivery部の新澤です。 S3バケットにファイルがアップロードされたタイミングでウィルススキャンツールのClamAVを用いてウィルススキャンを行う仕組みをCDKでサクッと作ってしまえるコンストラクトをConstruct Hubで見つけたので、使ってみました! 概要 S3バケットにファイルがアップロードされた際のPUTイベントでClamAVを実行するLambda関数を実行して、スキャン実行結果をSQSキューに投入します。 これらの仕組みを簡単に構築するためのCDKコンストラクト"cdk-serverless-clamscan"がConstruct Hubにて公開されていますので、活用してみます。 CDKの作成 まず、projenでCDKの雛形を作成します。 $ mkdir cdk-clamav & cd cdk-clamav $ npx projen new awscdk-a

    S3バケットへのファイルアップロードをClamAVでウィルススキャンする構成をCDKでサクッと作ってみる | DevelopersIO
  • cdk init の結果に要らない記述あるよなーと思って調べたら5年前のCDK初期の姿を垣間見た | DevelopersIO

    エントリは、AWS CDK Advent Calendar 2022の2日目の記事となります。 親の顔より見たnpx cdk init app --language=typescriptですが、不要な記述や不要なライブラリが含まれています。 個人的には、余計な依存を消したりミスリードになりうる記述は消すようにしているので、それを紹介するとともに、 CDKの開発初期の5年前にさかのぼって、それらの不要な実装がどのような経緯で生まれたのかを追ってみます。 前提 cdk.jsonのappを見てわかるように、初期化されたcdkアプリケーションはts-nodeで動作します。 { "app": "npx ts-node --prefer-ts-exts bin/cdk-init-app-sample.ts" } https://www.npmjs.com/package/ts-node cdkコマ

    cdk init の結果に要らない記述あるよなーと思って調べたら5年前のCDK初期の姿を垣間見た | DevelopersIO
  • CDK Bootstrapをカスタマイズしてみた | DevelopersIO

    こんにちは。たかやまです。 CDKを利用する場合cdk bootstrapを実施して、アカウントにCDKが利用するECR/IAM/S3/SSMといったリソースを作成する必要があります。 このBootstarpを作成する場合に、組織の制約によってはBootstrapの作成ができなかったり、bootstrapの内容を変えたい場合があります。 このようなニーズを満たすため、Bootstrapをカスタマイズしてみたいと思います。 カスタマイズをするユースケース例 CloudFormation Hooksを利用してガバナンス強化をしている場合 IAM Permissions BoundaryでRole作成に制約をつけている場合 組織ルールに合わせた機能を有効化したい場合 etc... やってみた Bootstrapテンプレートをエクスポートする cdk bootstrap --show-templa

    CDK Bootstrapをカスタマイズしてみた | DevelopersIO
  • CI/CDサービスからCDKでデプロイする際、差分がないはずなのにno changeにならない原因と対策 | DevelopersIO

    はじめに CX事業部の佐藤智樹です。 今回はCI/CDサービスからCDKをデプロイする際、差分がないはずなのにno changeにならない場合の原因と対策について紹介します。あくまで1例なので当てはまらない可能性もありますがCI/CDサービスからCDKをデプロイしている多くの方は引っかかる内容かと思うので、心当たりなどあれば是非読んでみてください。また話の流れでCDKが生成するテンプレートに記載されているCDKMetadataについて何が書かれているか紹介します。 先に結論 CDKがテンプレートを生成する際にMetadataを付与しています。CDKMetadataにはスタックで作成するリソースやCDKのバージョン、Node.jsのメジャーからマイナーバージョン番号まで含まれるため意図せぬタイミングでテンプレートの更新が走る可能性があります。対処方法は記事の最後の方をご確認ください。 調

    CI/CDサービスからCDKでデプロイする際、差分がないはずなのにno changeにならない原因と対策 | DevelopersIO
  • AWS CDK+localstackを使ってよくあるRESTなWebアプリ構成を作ってみる

    以前出した下記の記事をさらに発展させて、AWS CDKとlocalstackでSPAなWebアプリを作ってみます。いろんなところで同じような事をやられている方が多いと思いますが、自分のアウトプットのため+もしかしたら誰かの役に立つと思ってまとめてみます。 構成 こんなのを作ってみます。処理としては、S3上にdeployされたwebサイトからMySQLに登録されたデータが参照・登録できるようになることが目標です。 今回の構成についての注意点は下記のとおりです。 localstack でのRDSはPro版じゃないと使用できなさそうなので、適当にMySQLDBを作って、そこに接続しにいく。 docker-composeを使ってlocalstackとMySQLコンテナを動かしているので、Lambdaから外部DBに出るのは簡単になっている。 権限周りについては実際の番環境では適切に絞る必要がある

    AWS CDK+localstackを使ってよくあるRESTなWebアプリ構成を作ってみる
  • AWS CDKをlocalstackで練習する

    極力お金をかけないようにAWSのサービスを練習していきたいという思いから、何番煎じかわからないけどAWS CDKをlocalstackで練習してみます。 AWS CDK v2が出ているので、localstackでも動作するかなぁと思ってやってみたらできたので備忘録として残すことにしました。 環境としてはWindows10のWSL2上で試しているので、macでもlinuxでも多分動くでしょう。 API Gateway + Lambda + S3をAWS CDKで定義してlocalstackで動くことを確認していきます。 AWS CDKとlocalstack AWS CDKとは AWSを使ったアプリケーションは、多数のサービスを互いに連携することが多く、そのようなサービスのセットアップだったりクラウドリソースの管理だったりが面倒になってきます。 そこでAWSにはAWS CloudFormati

    AWS CDKをlocalstackで練習する
  • AWS CDKでEC2のキーペアを作成してみた | DevelopersIO

    先日、EC2のキーペアに新しい管理機能が追加されて、CloudFormationでキーペアが作成できるようになりました。 [アップデート]EC2のキーペアに新しい管理機能が追加されました。 | DevelopersIO CloudFormationでキーペアが作成できるようになったんだから、そのうちcdkでもキーペアが作成できるようになるだろうと待っていました。 v2.25.0 でできるようになったので試してみました。 Release v2.25.0 · aws/aws-cdk 前提条件 AWS CDKはv2.25.0以上を使用します。 $ cdk --version 2.25.0 (build ae1cb4b) 構成図 ざっくりこんな感じの環境を作ります。 AWS CDKのサンプルプログラム TypeScriptのサンプルプログラムは次のとおりです。 cdk.ts #!/usr/bin/

    AWS CDKでEC2のキーペアを作成してみた | DevelopersIO
  • AWS CDKで管理しているリソースに一括で共通タグを付与する | DevelopersIO

    「全てのリソースに同じタグを付与したい!」 環境用のタグやシステム名のタグなど、一括でタグを付与したいことがあると思います。 Terraformでは、AWS Providerのdefault tags機能で実現できます。 CDKでも簡単に実現できるので、紹介します。 一括でタグの付与 Tags.of(SCOPE).add('key', 'value'); こんな感じで、App全体やStack単位で共通のタグを付与することができます。 Tagging - AWS Cloud Development Kit (CDK) v2 やってみた 共通のタグを付与 #!/usr/bin/env node import 'source-map-support/register'; import * as cdk from 'aws-cdk-lib'; import { Construct } from '

    AWS CDKで管理しているリソースに一括で共通タグを付与する | DevelopersIO
  • 重要度別にGuardDutyをSlackに通知してみた | DevelopersIO

    こんにちは。たかやまです。 こちらのブログのようにGuardDutyはSlackに通知することができますが、今回はこのGuardDutyの通知を重要度別にチャンネルへ飛ばす実装をしたいと思います。 構成 構成 Slackイメージ図 設定方法 構築はCDKを利用しています。リポジトリはこちらです。 guardduty-chatbot SNS 2つのSlackチャンネルに連携するために、スタンダードのSNS トピックを2つ用意します。 Severity Highを通知するトピック Severity Middleを通知するトピック サブスクリプションはこのあとのチャットボットとの紐付けで設定されるため、この段階では設定不要です。 cdk(クリックで展開) lib/sns-stack.ts import { Stack, StackProps } from "aws-cdk-lib"; impor

    重要度別にGuardDutyをSlackに通知してみた | DevelopersIO
  • AWS CDKの学習方法 ドキュメントや学習コンテンツをまとめてみる | DevelopersIO

    AWS CDK?学習コスト高そう。。」 AWS CDKは、プログラミング言語でインフラを定義できる便利なツールです。 反面、プログラミングに慣れていない人には学習コストが高そうに感じるかもしれません。 AWS CDKを使ったことがない方が学習を進めるのに役立つドキュメントや学習コンテンツをまとめてみました。 以下のような方の、参考になると嬉しいです。 AWS CDK何から始めればいいのかわからない 概要は知っているけど触ったことはない プログラミング言語を使うことにハードルを感じる 入門 とりあえず動かす とりあえず、動かしてみましょう。 CDK入門には「CDK Workshop」が有名ですが、以下の方がボリュームは少ないのでファーストステップにおすすめです。(所要時間 25分) AWS Cloud Development Kit (CDK) の開始方法 | はじめに こちらのガイドでは

    AWS CDKの学習方法 ドキュメントや学習コンテンツをまとめてみる | DevelopersIO
  • GitHub ActionsとAWSのOIDC連携に使用するリソースをAWS CDKで作る | DevelopersIO

    こんにちは、CX事業部 IoT事業部の若槻です。 GitHub ActionsではOpenID Connect(OIDC)がサポートされたため、AWSなどと安全にキーのやり取りが可能となっています。 Secure deployments with OpenID Connect & GitHub Actions now generally available | The GitHub Blog GitHub ActionsをAWSとOIDC連携する場合は、「ID Provider」と「IAM Role」をAWS上に作成する必要があるのですが、これらリソースをAWS CDKで作ってコードで管理するようにしてみました。 やってみた 以前作ったID Providerの確認、削除 以前にコンソールから手動で作成した同じくGitHubとのOIDC連携用のID Providerを取得します。 $ OP

    GitHub ActionsとAWSのOIDC連携に使用するリソースをAWS CDKで作る | DevelopersIO
  • AWS CDKでクロススタック参照をしてみた | DevelopersIO

    こんにちは、CX事業部 IoT事業部の若槻です。 AWS CDKは、書き慣れた言語でAWSリソースのIaCを構成できるAWSサービスです。 What is the AWS CDK? - AWS Cloud Development Kit (CDK) このAWS CDKでアプリケーションを構築する際に、目的単位やリソース種別単位でCDKスタックを複数使用することがよくあるのですが、その際にスタック間でリソースのパラメーター(リソース名やArnなど)を参照させたい(クロススタック参照)場合があります。 そこで今回は、AWS CDKでクロススタック参照をする方法を確認してみました。 方法 スタックAwsCdkStateMachineStackで作成したステートマシンのArnを、もう一方のスタックAwsCdkAppStackで参照したい場合の実装で確認してみます。 参照される側のスタック クロス

    AWS CDKでクロススタック参照をしてみた | DevelopersIO
  • AWS CDKでクロススタック参照をしてみた | DevelopersIO

    こんにちは、CX事業部 IoT事業部の若槻です。 AWS CDKは、書き慣れた言語でAWSリソースのIaCを構成できるAWSサービスです。 What is the AWS CDK? - AWS Cloud Development Kit (CDK) このAWS CDKでアプリケーションを構築する際に、目的単位やリソース種別単位でCDKスタックを複数使用することがよくあるのですが、その際にスタック間でリソースのパラメーター(リソース名やArnなど)を参照させたい(クロススタック参照)場合があります。 そこで今回は、AWS CDKでクロススタック参照をする方法を確認してみました。 方法 スタックAwsCdkStateMachineStackで作成したステートマシンのArnを、もう一方のスタックAwsCdkAppStackで参照したい場合の実装で確認してみます。 参照される側のスタック クロス

    AWS CDKでクロススタック参照をしてみた | DevelopersIO
  • AWS CDKで管理しているスタックの削除保護を有効化してみた | DevelopersIO

    AWS CDKで管理しているスタックの削除保護ってどうするんだろう こんにちは、のんピ(@non____97)です。 「AWS CDKで管理しているスタックの削除保護ってどうするんだろう」と思ったことはありますか? 私はあります。 AWS CDKではcdk destroyで簡単にスタックを削除できます。私は非常にうっかりさんなので、絶対に削除したくないスタックには念のため削除保護をしたいなと思いました。 そこで、「よし、じゃあ削除保護を有効化するか!」と思ったのですが、実際設定を知らなかったので今回確認してみました。 API Referenceに書いてある 困った時はAPI Referenceということで、確認したら早速見つけました。 スタックを作成する際のプロパティとして、terminationProtectionをtrueにすれば良さそうですね。 やってみた 実際にやってみます。 まず

    AWS CDKで管理しているスタックの削除保護を有効化してみた | DevelopersIO
  • API Reference · AWS CDK

  • CDKを使用してAuto ScalingでFargateを作成してみた。 | DevelopersIO

    概要 Fargate はECS を使用して、サーバーを管理する必要なくコンテナを実行できるテクノロジーです。Fargateでは、仮想マシンをプロビジョニングと設定する必要がありません。Fargate 起動タイプを使用して Amazon ECS タスクを実行する場合、アプリケーションをコンテナにパッケージ化し、CPU とメモリ要件を指定し、ネットワークとIAM ポリシーを定義して、アプリケーションを起動します。 この記事では、CDKを使用してAuto ScalingでFargateを作成してみました。MemoryUtilization> 50の場合、Auto Scalingグループはスケールアップします。Auto ScalingとApplication Load BalancerでFargateサービスを作成しました。 やってみた CDKアプリの作成 CDKをインストールする 次のコマンドを

    CDKを使用してAuto ScalingでFargateを作成してみた。 | DevelopersIO
  • AWS CDKのv1はいつまでサポートされるのか調べてみた | DevelopersIO

    はじめに CX事業部 IoT事業部の佐藤智樹です。 今回はAWS CDKのv1がいつまで/どのようにサポートされるのか確認しました。 短い内容ですが、公式のどこに書いてあるのか忘れて100万回ぐらい調べて面倒になってきたので日語記事として紹介することにしました。大した内容ではないですが、同じようなことで何度も調べている方へ参考になれば幸いです。 情報元 「How customer feedback shaped the AWS Cloud Development Kit version 2」にAWS CDK v1の現状のサポート方針が書かれています。 AWS CDK v1 サポート状況 以下は記事から解釈した内容です。詳細が気になる場合は原文をご確認ください。 AWS CDKのv1はAWS SDKやツールのメンテナンスポリシーに沿ったのサポートが計画されています。6ヶ月の間はフルサポー

    AWS CDKのv1はいつまでサポートされるのか調べてみた | DevelopersIO
  • AWS CDKでLambdaバージョンとエイリアスをしてみた。 | DevelopersIO

    概要 Lambdaバージョン Lambdaバージョンは、関数のデプロイを管理するために使用できます。 Lambda は、関数を公開するたびに新しいバージョンの関数を作成します。 新しいバージョンを作成する前に、$LATEST でコードの変更をデプロイする必要があります。 バージョンは不変です。 バージョンは独自のARNを取得します。 Lambdaエイリアス エイリアスはラムダバージョンへのポインタです。 エイリアスは変更可能です。 エイリアスは関数のバージョンのみを参照でき、別のエイリアスを参照することはできません。 関数の新しいバージョンを指すよう、エイリアスを更新できます。 この記事では、AWS CDKでLambdaバージョンとエイリアスをしてみました。 やってみた CDKアプリの作成 次のコマンドを使用してCDKをインストールしておきます。 npm install aws-cdk-l

    AWS CDKでLambdaバージョンとエイリアスをしてみた。 | DevelopersIO