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

Post on 23-Feb-2017

1.617 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

2

Cloud Formation

3

インフラをJSONテンプレート化 再利用可能な再現性のあるインフラ 自動化された一括デプロイメント 大量にあるAWSのサービス・機能の大部分をカバー

近ではGUIで図から作れる機能なんかも出ましたね

4

5

Masashi Terui @ marcy_teruiI’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

7

JSON is

ツラい

8

人に優しくない構文

オブジェクトは必ず中括弧で囲む

要素間はカンマが必要だが、末尾には付けてはいけない等など 静的な記述

JSONはInfrastructure as Codeなのか? 表現力に限りがある

CloudFormation専用の特殊な記述(RefとかFn::Hogeとか)

9

10

11

12

13

Chef is 何

14

Infrastructure as Codeブームの火付け役

サーバの設定をコード化

Ruby DSLによる優れた表現力

高い再利用性

抽象化 ※概念や周辺ツールが多くて複雑みたいな話はここでは置いておこう

15

16

Kumogata

17

CloudFormationをJSON以外で書いて、相互変換を行う

Ruby DSL

YAML

JavaScript, Coffee Script etc…

デプロイするためのコマンドラインツールとしての機能が付属

現在はVersion 2へ移行

Change Sets(プレビュー的な機能)対応

Plugin方式でフォーマットを増やせる

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

19

色々 あるよ

21

Dry runで差分プレビューできるのがめっちゃ便利(Kumogataは無いけど、v2ならChange Setsで代替) よく変更するものほどメリットが高いと思います とりあえず、自分でよく使うやつ Roadworker - Route53 Piculet - Security Groups Miam - IAM

何が 嬉しい?

22

プルリクマージで反映等といった自動化フローが作りやすい

複数のファイルに分割可能

複雑な記述や冗長な記述を回避できる

変数やメソッドを利用して簡易な表現に こういうのがInfrastructure as Codeって言うんちゃう?

23

24

25

作った 動機

27

API Gatewayの設定が面倒

Swagger取り込みでだいぶマシになるが、冗長な表現も多い

俺達(俺)は書いたコードをサクッと上げてサクッとAPI公開

したいだけなんだ!!1

詳しくは→ http://marcy.hatenablog.com/entry/2016/06/02/133228

まとめ

28

JSONの手書きツラい

JSON以外で書くという選択肢

便利なツールはシェアしよう。そして、作ってみよう。

CloudFormationをdisってるわけではない

むしろ、誰かがツール作ることを見越してJSONなのでは?

top related