Slide 1

Slide 1 text

AWS CDK Conference Japan Tomoya Oka アンチCDKだったわたしが 「CDK、できる・・」と思ったところ

Slide 2

Slide 2 text

Speaker @cyberarchitect Cloud Solutions Architect AWS認定試験対策本を書きました Tomoya Oka

Slide 3

Slide 3 text

一部のおっさんは、「新しいもの」に対してあれこれと理由をつけて否定しがちである。おっさんは 経験だけは多いためそれっぽい理由をつけて拒否するが、単にめんどくさいだけのケースも多い。 (そうでないおっさんも世の中にはたくさんいらっしゃいます。念のため) 貴様アンチのくせにCDKカンファレンスに何しにきた 一部のおっさん(わたし含む) は?CDK? もうCFnとTerraform あるし IaCのコードを TypeScriptやPython で書く? 誰がメンテするんだ? https://www.irasutoya.com/2014/03/blog-post_4378.html CFnやTerraformと 比較するとネットの情報 が少ない アプデで言語仕様が ちょいちょい変わる? 怖くてProductionじゃ 使えねーよ

Slide 4

Slide 4 text

年を取ってくると、AWSの新サービスや新機能が発表された際、「クイックに試す瞬発力」が落ちて くる。なので(特に、役に立ちそうなサービスアップデートがあると)強いストレスを感じてしまう。 (参考)類似症例:AWSのサービスアップデート怖い病 キャッチアップして 実戦投入できるか 確認しなくては・・ https://www.irasutoya.com/2014/03/blog-post_9392.html ✨✨✨ ✨✨ でも試す時間が ない・・ (なお、Twitterやる 時間はある模様)

Slide 5

Slide 5 text

ある神本。 CDKとの邂逅 https://www.oreilly.com/library/view/aws-cookbook/9781492092599/

Slide 6

Slide 6 text

あの、オライリーのクックブックシリーズに、AWS版が追加された!!! AWS Cookbook(1/3) https://www.oreilly.com/library/view/aws-cookbook/9781492092599/ AWS Cookbook: Recipes for Success on 発売日: 2021/12/28 英語版 John Culkin (著), Mike Zazon (著), Jeff Barr (はしがき) https://www.amazon.co.jp/dp/1492092606/ ※なお、お値段はかわいくない模様

Slide 7

Slide 7 text

セキュリティからAI/MLまで、AWSを活用するための各「レシピ」が、AWS CLIやシェル (bash/Zsh)によって書かれている。 AWS Cookbook(2/3) https://www.oreilly.com/library/view/aws-cookbook/9781492092599/ 目次から抜粋(1章のSecurityと8章のAI/ML)

Slide 8

Slide 8 text

「レシピ」を試すために、AWS上に環境構築が必要になるものがある。その環境構築のためのIaC コードとして、CDK(しかもv2、且つPython)のコードがGithubで公開されている。これは良い 機会だと思って、読んで実行してみる気になりました。 AWS Cookbook(3/3) https://github.com/awscookbook

Slide 9

Slide 9 text

CDKを実際に使ってみる前のイメージ(と認識) ✓ CDKがサポートするプログラミング言語の経験が必要である ✓ CFnやTerraformと比較すると、コード量が少なくて済む ✓ 繰り返し処理や条件分岐等を駆使した自由度の高いコード が記述されている ✓ その他のメリットってなんだろう???

Slide 10

Slide 10 text

CDKを実際に使ってみて、CDKについて調べてみた結果 ✓ CDKがサポートするプログラミング言語の経験が必要である ⇒そうでもない ✓ CFnやTerraformと比較すると、コード量が少なくて済む ⇒これは合ってる ✓ 繰り返し処理や条件分岐等を駆使した自由度の高いコードが記述されている ⇒そういうコードも書けるだろうが、むしろいい意味で型にはめようとしている印象(後述) ✓ その他のメリットってなんだろう??? ⇒OSSとして貢献できる!!!(後述)

Slide 11

Slide 11 text

AWSのプラクティスとして確立している実装や、サービス利用上自明な作業については、抽象化 されて極めて短いコードで(も)実現できるようになっている。この方向性で進化していくことで、 「とりあえずCDKでこのフレームワーク(L2とPatternsの集合的な?*1)使っておけば基盤はOK」に なるかもしれない。 (ぜひなってほしい。RubyにとってのRails的な) 「いい意味で型にはめようとしている印象」とは NAT Gatewayを経由したインターネット接続が必要な場合 public_subnets = ec2.SubnetConfiguration( name="Public", subnet_type=ec2.SubnetType.PUBLIC, cidr_mask=24) tier2_subnets = ec2.SubnetConfiguration( name="Tier2", subnet_type=ec2.SubnetType.PRIVATE_WITH_NAT, cidr_mask=24) *1 AWSさんのBaseline Environment on AWS(BLEA)とか https://github.com/aws-samples/baseline-environment-on-aws ECSのConstruct Library(よくある実装パターン)の1つ load_balanced_fargate_service = ecs_patterns.ApplicationLoadBalancedFargateService( self, "Service", cluster=cluster, memory_limit_mi_b=1024, desired_count=1, cpu=512, task_image_options=ecsPatterns.ApplicationLoadBalancedTaskImageOptions( image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample") ), task_subnets=ec2.SubnetSelection( subnets=[ec2.Subnet.from_subnet_id(self, “subnet”, "VpcISOLATEDSubnet1Subnet80F07FA0")] ) )

Slide 12

Slide 12 text

CFnやTerraformと比較するとネットの情報が少ない件は、がんばってブログとか書こうと思った。 また、気に入らない部分、足りない部分は、コード書いてConstruct Hubで公開しましょう。 CFnではできなかったこと: OSSとして貢献できる!!! https://constructs.dev/

Slide 13

Slide 13 text

AWSにもBabelfish、BottlerocketやFirecracker等々あるのは存じておりますが・・ cdktfやcdk8sには期待してますし、小さくてもがんばって貢献したいと思います!!! (参考)AWSとOSS BigTechの開発が元となった、代表的なOSS(オープンソースソフトウェア) 企業(例) OSSプロダクト 概要 Google MapReduce 大容量データの分散処理フレームワークである一連のHadoop関連ソフトウェアの元となった概念 Borg コンテナ・オーケストレーションツールのデファクトであるKubernetesの元となったソフトウェア Istio Kubernetes上で実行されるサービス間の透過的な通信をサポートするソフトウェア TensorFlow 機械学習(Deep Learning)を行うためのフレームワーク Android スマートフォンのOS Go プログラミング言語 Facebook React WebアプリケーションのUI部品を効率的に取り扱うためのJavaScriptフレームワーク PyTorch 機械学習(Deep Learning)を行うためのフレームワーク Netflix Chaos Monkey インフラ上で意図的に障害は引き起こし、障害発生時にもサービス提供の継続が可能かどうかをテストするため のツール カオス・エンジニアリングの概念 Chaos Monkey等を利用し、敢えて障害を引き起こしながら、サービス全体の信頼性を高めていく方法論 参考:マイクロソフトも、TypeScriptなどのOSS公開を行っている。 Amazon社については、Developer単位ではOSSコミュニティに貢献しているものの、Elastic社をはじめとして、 「企業としてOSSコミュニティの成果にただ乗りしている」との批判の声がある

Slide 14

Slide 14 text

まとめ ✓ 食わず嫌いはよくない。否定する前に手を動かしましょう ✓ AWS Cookbookは神本です ✓ CDK、敷居高そうですが、触ってみるとそうでもないです ✓ ただ、抽象度が高いということは、思わぬ罠にハマる可能性も あるので、ピアレビューやCIによるチェックは必須ですね ✓ CDK、OSSなので、みんなでがんばって盛り上げていきましょう

Slide 15

Slide 15 text

Thank you! Tomoya Oka https://twitter.com/cyberarchitect https://www.linkedin.com/in/tomoya-oka-6baab7165/