Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS CDKのススメ

AWS CDKのススメ

・Infrastructure as Code使ってますか?
・AWSでのIaCツールの選択肢
・AWS CDKとは
・AWS CDKの基本的な使い方
・Stackの記述方法とデプロイ方法

CloudTechの第一回LT会登壇用資料
Podcast: https://spotifyanchor-web.app.link/e/hseL8Tfrmzb

tokku5552

April 28, 2023
Tweet

More Decks by tokku5552

Other Decks in Technology

Transcript

  1. AWSでのIaCツールの選択肢 5 ツール名 コード定義 対象 備考 terraform HCL マネージドサービス 全般

    GCPやAzureなども 対応 SAM yaml サーバーレスサービ スのみ Cloud Formation yaml マネージドサービス 全般 Serverless Framework yaml サーバーレスサービ スのみ GCPやAzureなども 対応 AWS CDK Python/Java/.NET/G o/TypeScript マネージドサービス 全般
  2. AWS CDKとは • AWSが提供するIaC(Infrastructure as Code)ツールの一つ ◦ CloudFormationのテンプレートを作成し、デプロイしてくれるツール • CloudFormationが対応しているものは対応していると考えて良い

    ◦ サーバーレスでないリソースも作れる • 特徴はjsonやyamlではなく、プログラミング言語でインフラを記述できるところ。 ◦ IDEの補完などの補助機能が使える。画像は TypeScriptの場合の例 6
  3. Stackの記述 export class LiffCdkSampleStack extends Stack { constructor(scope: Construct, id:

    string, props?: StackProps) { super(scope, id, props); const liffAppBucket = new s3.Bucket(this, 'LiffAppBucket', { websiteIndexDocument: 'index.html' }); const liffAppDistribution = new cloudfront.CloudFrontWebDistribution(this, 'LiffAppDistribution', { originConfigs: [ { s3OriginSource: { s3BucketSource: liffAppBucket, originAccessIdentity: liffAppIdentity }, behaviors: [{isDefaultBehavior: true}] } ], }) Stackを継承したclassの中の constructorに作りたいリソースを 書いていく 前段で作成したS3バケットを変数に入 れておき、CloudFrontのオリジンに渡し ている。これで連携可能 9 ※途中省略しています