やっつけ不定記

好きなときに好きなことをちゃっちゃと書いてます

JAWS-UG大阪「IaCを語りたい(仮)」

表記イベントに参加してきました。
https://jawsugosaka.doorkeeper.jp/events/151661
年明け頃からCloudFormationを触る機会が多くなってきたこと、会場のgusuku Ashibinaa OSAKAが
ご近所だったのに加えて、他のLTイベントの実況でよく流れてきて気になっていたことが
うまいこと重なりました。
おうち帰ってレポるまでがイベントということで、忘れないうちにメモを列挙してみます。

【30分で読めるCloudFormation】

  • CloudFormation概要
  • 慣れない間はAWSコンソールのcFnデザイナーを使うとよい
  • セクションを理解し、役割を暗記しておくと便利
    • Resourcesセクションのみ必須
  • cfn読み解きルール:写真撮った
    • フレームワーク,階層構造に沿ってCFNを読み解く
    • Resourcesを制する者はCFNを制する
  • AWSドキュメント読みにくいところある(めっちゃわかる)
    AWSコンソールでの設定値やawscliコマンドから推測することになる
  • 質疑応答
    • コンソールから作るのとCFNでやるのとでは、どっちがラクか?
      • 運用を考えて選択するのがよい。CFNがっつりの会社はCFNでやっている。
      • 講師さんの会社ではIAMやS3の設定はコンソールでやっている。この場合、コード管理ができないのでドキュメント管理が重要になる。
    • Terraformはimport対応しているが、それでもCFNを選ぶ理由は何か?
      • 選択は働く環境の状況、人の状況次第である。CFNがAWSコンソールの設定現物に最も近い(ちゃんと書かないと実現できないというデメリットもある)
      • パートナーさんに構築してもらう場合に学んでもらいやすい。
    • CFNの押しポイントは?
      • 実はTerraformの方がいいかなあ^^;
      • 図式化してくれる(デザイナーのことかな)
    • CFNには変数の型チェックありますか?→ある
    • デザイナーで直接書くのはお勧めしない


【CDK WITH CHATGPT】

  • 本講演の目的はChatGPTの有料版を買ってもらうことであるw
  • 朝9時に起動するLambdaをChatGPTに作ってもらった
    →以下を指定したら、ちゃんとCDKのコードが出てきた
    • 言語をPythonを指定
    • 日本時間の9時
    • RuleとFunctionを紐づけする
  • 生成されたコードをデプロイしたら、Coreのインポートができない旨でエラーが出た
    • 理由:CDK v1のコードだった
      • ChatGPTが持っている知識は2021年9月までである
      • CDK v2が公開されたのは2021年12月である
    • 対応策
      • CDK v2化の実施
      • CDKサンプルを見て自分で修正
  • 普段のCDKによる開発はflake8, cdk-nagを使っている
    →テストをFailからPassにするのが大変なのでChatGPTで何とかできないかやってみた
    →多少のプロンプトやり取りはいるけど、修正内容に加えて変更点まで出してくれた。
     セキュリティ担保のコードにも対応してくれる。
  • 日本語が使えるのは大きい
  • 質疑応答
    • GPTのバージョンは何か?MSのAIもあるが?(Bingのこと?GoogleのBardのこと?)
      • GPT4でやった。MSのツールもやってみたけど日本語が入力がイケてなさすぎて使うのをやめた
    • GPTが有料版でなければいけない理由を教えてほしい
      • レスポンスの質が違う。あいまいなものも答えてくれる
    • GPTからのレスポンスのスピードはどうか?
      • 無料版は混み具合などの影響が出る。有料版は影響なし。
    • 設計そのものを渡したらコードにしてくれるのではないか?
      • 最初のインプットをきちんと書く必要があると思われる。プロンプトを生成するプロンプトもある
    • CDK v1からv2のバージョンアップってしんどいのではないか?
      • Experimental(実験的APIのことらしい)をそもそも使用禁止にしていたので、つらくはなかった


【IaCツールはこうやって選べ!】

  • IaCツール何使ってますか?
    • AWS CDK
    • AWS SAM
    • Terraform
    • AWS CloudFormation
  • コード量:SAM&CDK<CFN&Terraform
  • IaCの目的とメリットを整理する
  • コードとしてのインフラストラクチャ(下記ドキュメントのことかな)
  • なぜIaCなの?
    • コード設計手法
    • Git管理
    • ライフサイクル
    • 人為的ミスの削減
    • クラウドの台頭
  • AWSをIaCで管理するということ
    • AWSプラットフォームの哲学:ビルディングブロック(レイヤーモデルL1の話につながる)
  • IaCツールをどれにするかは、チームの状況を見て選ぶとよい
  • 質疑応答
    • IaCのメリットをお客さまに説明したいがどうすればよいか?
      • 「その環境、あと何個作りますか?」という文句を使って、数字比較でねじ伏せる


【その他】

  • 会場名でもある「あしびなー」とは沖縄の言葉で「遊び場」のことらしい