Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜

2,325 views

Published on

JAWS-UG札幌 第19回勉強会

Published in: Technology
  • Be the first to comment

私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜

  1. 1. 2
  2. 2. Cloud Formation 3 インフラをJSONテンプレート化 再利用可能な再現性のあるインフラ 自動化された一括デプロイメント 大量にあるAWSのサービス・機能の大部分をカバー 最近ではGUIで図から作れる機能なんかも出ましたね
  3. 3. 4
  4. 4. 5
  5. 5. Masashi Terui @ marcy_terui I’m a Developer and Cloud Architect. I’m a full-time employee at JIG-SAW Inc. But, I’m a part-time freelancer. I’m a member of JAWS-UG and GCPUG and MyNA←New!! I’m around 30 years old. I’m a father of my son and daughter. https://willy.works/ 6
  6. 6. 7
  7. 7. JSON is ツラい 8 人に優しくない構文 オブジェクトは必ず中括弧で囲む 要素間はカンマが必要だが、末尾には付けてはいけない等など 静的な記述 JSONはInfrastructure as Codeなのか? 表現力に限りがある CloudFormation専用の特殊な記述(RefとかFn::Hogeとか)
  8. 8. 9
  9. 9. 10
  10. 10. 11
  11. 11. 12
  12. 12. 13
  13. 13. Chef is 何 14 Infrastructure as Codeブームの火付け役 サーバの設定をコード化 Ruby DSLによる優れた表現力 高い再利用性 抽象化 ※概念や周辺ツールが多くて複雑みたいな話はここでは置いておこう
  14. 14. 15
  15. 15. 16
  16. 16. Kumogata 17 CloudFormationをJSON以外で書いて、相互変換を行う Ruby DSL YAML JavaScript, Coffee Script etc… デプロイするためのコマンドラインツールとしての機能が付属 現在はVersion 2へ移行 Change Sets(プレビュー的な機能)対応 Plugin方式でフォーマットを増やせる
  17. 17. 18 require './funtions' Resources do VPC do Type "AWS::EC2::VPC" Properties do CidrBlock "10.0.0.0/16" EnableDnsHostnames true Tags [env_tag("production")] end end _include 'subnets.rb' _include 'gateway.rb' _include 'routetable.rb' end
  18. 18. 19
  19. 19. 20
  20. 20. 色々 あるよ 21 Dry runで差分プレビューできるのがめっちゃ便利
 (Kumogataは無いけど、v2ならChange Setsで代替) よく変更するものほどメリットが高いと思います とりあえず、自分でよく使うやつ Roadworker - Route53 Piculet - Security Groups Miam - IAM
  21. 21. 何が 嬉しい? 22 プルリクマージで反映等といった自動化フローが作りやすい 複数のファイルに分割可能 複雑な記述や冗長な記述を回避できる 変数やメソッドを利用して簡易な表現に こういうのがInfrastructure as Codeって言うんちゃう?
  22. 22. 23
  23. 23. 24
  24. 24. 25
  25. 25. 26
  26. 26. 作った 動機 27 API Gatewayの設定が面倒 Swagger取り込みでだいぶマシになるが、冗長な表現も多い 俺達(俺)は書いたコードをサクッと上げてサクッとAPI公開 したいだけなんだ!!1 詳しくは→ http://marcy.hatenablog.com/entry/2016/06/02/133228
  27. 27. まとめ 28 JSONの手書きツラい JSON以外で書くという選択肢 便利なツールはシェアしよう。そして、作ってみよう。 CloudFormationをdisってるわけではない むしろ、誰かがツール作ることを見越してJSONなのでは?

×