Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Fargate運用物語 ~ 本当にコンテナで幸せになりますか? ~ JAWS-UG コンテナ支部 #15
Slide 2
Slide 2 text
What is it? 結論は突然に
Slide 3
Slide 3 text
What is it? EC2で運用できるならEC2 EC2で困ってるならコンテナ
Slide 4
Slide 4 text
What is it? シンプルなサービス構成ならFargate
Slide 5
Slide 5 text
What is it? その理由と運用の話をします
Slide 6
Slide 6 text
What is it? 大前提!! 今日はFargateの細かい説明はありません
Slide 7
Slide 7 text
あじぇんだ 1. 自己紹介 2. EC2よりもFargateを使いたい 3. Fargateで辛かったこと 4. Fargateで良かったこと 5. コンテナの勘所 6. まとめ
Slide 8
Slide 8 text
あじぇんだ 1. 自己紹介 2. EC2よりもFargateを使いたい 3. Fargateで辛かったこと 4. Fargateで良かったこと 5. コンテナの勘所 6. まとめ
Slide 9
Slide 9 text
自己紹介 曽根 壮大(34歳) 株式会社 オミカレ 副社長 CTO そ ね たけ とも ● 日本PostgreSQLユーザ会 勉強会分科会 担当 ● 3人の子供がいます(長女、次女、長男) ● 技術的にはWeb/LL言語/RDBMSが好きです ● コミュニティが好き
Slide 10
Slide 10 text
婚活といえばオミカレ https://party-calendar.net/
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
本書きました
Slide 13
Slide 13 text
先週のそーだいさん
Slide 14
Slide 14 text
明日のそーだいさん
Slide 15
Slide 15 text
あじぇんだ 1. 自己紹介 2. EC2よりもFargateを使いたい 3. Fargateで辛かったこと 4. Fargateで良かったこと 5. コンテナの勘所 6. まとめ
Slide 16
Slide 16 text
EC2よりもFargateを使いたい なぜならば、使いたいからだ
Slide 17
Slide 17 text
EC2よりもFargateを使いたい なぜならば、使いたいからだ
Slide 18
Slide 18 text
EC2よりもFargateを使いたい 根拠がないと辛みを重ねるだけ
Slide 19
Slide 19 text
EC2よりもFargateを使いたい EC2で辛かったこと
Slide 20
Slide 20 text
EC2よりもFargateを使いたい ● AMIやAnsibleの管理 ● 手元の環境との乖離 ● deployの複雑さ よくあるEC2で辛かったこと
Slide 21
Slide 21 text
EC2よりもFargateを使いたい ● AMIやAnsibleの管理 ● 手元の環境との乖離 ● deployの複雑さ よくあるEC2で辛かったこと
Slide 22
Slide 22 text
EC2よりもFargateを使いたい Ansibleで冪等性を担保すればいいじゃん!
Slide 23
Slide 23 text
EC2よりもFargateを使いたい どんどんオートスケール時の起動が遅くなる
Slide 24
Slide 24 text
EC2よりもFargateを使いたい オートスケール用のAMIを作ろう
Slide 25
Slide 25 text
EC2よりもFargateを使いたい オートスケール用のAMIを作ろう ↓ 細かい修正をする度にAMIを作り直すことに
Slide 26
Slide 26 text
EC2よりもFargateを使いたい ロールが増えてくると サーバの責務が Ansibleの責務を超えてしまいがち
Slide 27
Slide 27 text
EC2よりもFargateを使いたい そもそも冪等性は幻想
Slide 28
Slide 28 text
EC2よりもFargateを使いたい 複雑になったAnsibleのメンテは大変
Slide 29
Slide 29 text
EC2よりもFargateを使いたい 複雑になったAnsibleのメンテは大変 ↓ 最初にちゃんと設計してることは稀 (スタートアップだと特にそうだと思う)
Slide 30
Slide 30 text
EC2よりもFargateを使いたい Ansibleはとても便利だけど 頻繁に環境に手を入れるなら コンテナの方が向いてる Ansibleも便利だけどね
Slide 31
Slide 31 text
EC2よりもFargateを使いたい ● AMIやAnsibleの管理 ● 手元の環境との乖離 ● deployの複雑さ よくあるEC2で辛かったこと
Slide 32
Slide 32 text
EC2よりもFargateを使いたい LAMPの時は EC2 & Vagrant でも良かった
Slide 33
Slide 33 text
EC2よりもFargateを使いたい LAMPの時は EC2 & Vagrant でも良かった ↓ APIやデータストア層が増えてくると…
Slide 34
Slide 34 text
LAMPの頃 PHP データストア フレームワーク httpd EC2=Vagrant 同じAnsibleを実行すれば良い Web
Slide 35
Slide 35 text
サービスがスケールしてくると… PHP データストア フレームワーク httpd Web APIサーバ NoSQL
Slide 36
Slide 36 text
EC2よりもFargateを使いたい 1つのVagrantではデカすぎる
Slide 37
Slide 37 text
EC2よりもFargateを使いたい 1つのVagrantではデカすぎる ↓ AnsibleとVMもロール単位で分けよう
Slide 38
Slide 38 text
乱立するVM VM2 VM1 VM3 VM3.5 VM4 VM5 VM5.1 VM6
Slide 39
Slide 39 text
EC2よりもFargateを使いたい なるほど、dockerだ!!
Slide 40
Slide 40 text
EC2よりもFargateを使いたい なるほど、dockerだ!! ↓ Ansibleとdockerの二重管理
Slide 41
Slide 41 text
EC2よりもFargateを使いたい こうやって開発環境と乖離してきた
Slide 42
Slide 42 text
EC2よりもFargateを使いたい ● AMIやAnsibleの管理 ● 手元の環境との乖離 ● deployの複雑さ よくあるEC2で辛かったこと
Slide 43
Slide 43 text
EC2よりもFargateを使いたい はるか昔、deployツールは神から与えられた (当時のエースエンジニアが作った)
Slide 44
Slide 44 text
EC2よりもFargateを使いたい Mackerel Web Web Web deployサーバ github ansible 1. MackerelからWebサーバの一覧を取得 2. Inventoryに登録してAnsibleで対象にdeploy 3. githubの該当のmasterをPull
Slide 45
Slide 45 text
EC2よりもFargateを使いたい 8年前のデプロイツール、メンテが属人化
Slide 46
Slide 46 text
EC2よりもFargateを使いたい deployをシンプルにしよう
Slide 47
Slide 47 text
EC2よりもFargateを使いたい Web Web Fargate ECR github CircleCI 1. githubの該当のmasterからコンテナを生成 2. ECRのコンテナをECSにdeploy
Slide 48
Slide 48 text
EC2よりもFargateを使いたい 最近っぽい
Slide 49
Slide 49 text
EC2よりもFargateを使いたい なんとdocker fileだけメンテすれば良い!
Slide 50
Slide 50 text
EC2よりもFargateを使いたい 幸せ!!最高!!!!
Slide 51
Slide 51 text
あじぇんだ 1. 自己紹介 2. EC2よりもFargateを使いたい 3. Fargateで辛かったこと 4. Fargateで良かったこと 5. コンテナの勘所 6. まとめ
Slide 52
Slide 52 text
Fargateで辛かったこと 理論はわかったけど 現実はそんなに甘くない
Slide 53
Slide 53 text
Fargateで辛かったこと ● 最初の環境構築 ● トラブルシューティング ● ログ ● モニタリング
Slide 54
Slide 54 text
Fargateで辛かったこと 知見が全く無い状態でいきなり作った
Slide 55
Slide 55 text
Fargateで辛かったこと 知見が全く無い状態でいきなり作った ↓ これは失敗だった(自分が悪いけど)
Slide 56
Slide 56 text
知見が無くて失敗したこと ● 既存とVPCを安易に分けてしまった ● 作りながら学ぶ状態 ● パフォーマンスの計測が甘かった ● ネットワークのdebugが大変
Slide 57
Slide 57 text
知見が無くて失敗したこと ● 既存とVPCを安易に分けてしまった ● 作りながら学ぶ状態 ● パフォーマンスの計測が甘かった ● ネットワークのdebugが大変 ALBがVPCを超えてターゲットグループを 指定するにはルーティングテーブルが必要
Slide 58
Slide 58 text
知見が無くて失敗したこと ● 既存とVPCを安易に分けてしまった ● 作りながら学ぶ状態 ● パフォーマンスの計測が甘かった ● ネットワークのdebugが大変 ECRからdeployするときにAWS内に経由の設定ではまったり… サイドカー立てるのにハマったり… Terraformがまだ未対応の機能を使ったり…
Slide 59
Slide 59 text
知見が無くて失敗したこと ● 既存とVPCを安易に分けてしまった ● 作りながら学ぶ状態 ● パフォーマンスの計測が甘かった ● ネットワークのdebugが大変 本番リリースしたら障害になった オートスケールが間に合わなかった
Slide 60
Slide 60 text
知見が無くて失敗したこと ● 既存とVPCを安易に分けてしまった ● 作りながら学ぶ状態 ● パフォーマンスの計測が甘かった ● ネットワークのdebugが大変 つながらなくてコンテナが落ちた時、 DNSなのかネットワークのルーティングなのかセ キュリティグループなのか… (気軽にPINGやCURLが打てない)
Slide 61
Slide 61 text
Fargateで辛かったこと オートスケールは簡単だけど 増えるより落ちる方が早い場合に困る EC2の時はオートスケールとは別に 落ちないインスタンスを用意してた
Slide 62
Slide 62 text
Fargateで辛かったこと Fargateは高い
Slide 63
Slide 63 text
Fargateで辛かったこと Fargateは高い ↓ 特にCPUを増やすと金額が跳ねる!
Slide 64
Slide 64 text
Fargateで辛かったこと ログが気軽に保存できない
Slide 65
Slide 65 text
Fargateで辛かったこと ログが気軽に保存できない ↓ CloudWatch Logsか…
Slide 66
Slide 66 text
Fargateで辛かったこと コンテナのdebugしたいけど 大切なときに(負荷がかかってた) 君(コンテナ)はもういない
Slide 67
Slide 67 text
Fargateで辛かったこと モニタリングしてチューニングしたいけど 永続的な情報を取るのは難しい
Slide 68
Slide 68 text
Fargateで辛かったこと 知見が全く無い状態でいきなり作った
Slide 69
Slide 69 text
Fargateで辛かったこと 知見が全く無い状態でいきなり作った ↓ 最初はECSで作るべきだったなと思う
Slide 70
Slide 70 text
あじぇんだ 1. 自己紹介 2. EC2よりもFargateを使いたい 3. Fargateで辛かったこと 4. Fargateで良かったこと 5. コンテナの勘所 6. まとめ
Slide 71
Slide 71 text
Fargateで良かったこと もちろん当初の目的(前述)を 達成したメリットは大きい
Slide 72
Slide 72 text
Fargateで良かったこと さらに運用が回りだせば 得る物も多い
Slide 73
Slide 73 text
Fargateで良かったこと 本番にあるコンテナは全て同じ
Slide 74
Slide 74 text
Fargateで良かったこと 本番にあるコンテナは全て同じ ↓ つまり、バージョンを固定することも 常に最新にすることもコントロールしやすい
Slide 75
Slide 75 text
Fargateで良かったこと 本番にあるコンテナは全て同じ ↓ つまり、バージョンを固定することも 常に最新にすることもコントロールしやすい 弊社は常に最新のパッケージを使ってます つまりセキュアになるし、Fargateはホストのことを 考えなくても良い
Slide 76
Slide 76 text
Fargateで良かったこと ロールバックが簡単 ECRの履歴を使って戻せる (buildやコードの調整は不要)
Slide 77
Slide 77 text
Fargateで良かったこと コンテナは外に閉じているし ホスト無いので EC2よりも守りやすい
Slide 78
Slide 78 text
Fargateで良かったこと stagingや開発環境の複製が簡単
Slide 79
Slide 79 text
Fargateで良かったこと stagingや開発環境の複製が簡単 ↓ パートナーにも環境を提供しやすい (これはFargateってよりコンテナ)
Slide 80
Slide 80 text
Fargateで良かったこと CI/CDの環境構築がより簡単に
Slide 81
Slide 81 text
Fargateで良かったこと CI/CDの環境構築がより簡単に ↓ サービスの品質向上へ
Slide 82
Slide 82 text
Fargateで良かったこと Fargateは一旦置いても コンテナを利用するメリットは多い
Slide 83
Slide 83 text
あじぇんだ 1. 自己紹介 2. EC2よりもFargateを使いたい 3. Fargateで辛かったこと 4. Fargateで良かったこと 5. コンテナの勘所 6. まとめ
Slide 84
Slide 84 text
コンテナの勘所 段階的に学ぶことが大事
Slide 85
Slide 85 text
コンテナの勘所
Slide 86
Slide 86 text
コンテナの勘所 テストが楽になる!
Slide 87
Slide 87 text
コンテナの勘所 テストが楽になる! ↓ 御社ちゃんとテストあります? (テストが無いとメリットが弱い)
Slide 88
Slide 88 text
コンテナの勘所 ネットワークとログの設計は コンテナの方が難しい (無限にCloudWatchに頼るとしても)
Slide 89
Slide 89 text
コンテナの勘所 油断するとサイドカーを増やしたくなる
Slide 90
Slide 90 text
コンテナの勘所 それ、レンタルサーバで出来るよ
Slide 91
Slide 91 text
コンテナの勘所 それ、レンタルサーバで出来るよ ↓ 他にもPaaSやFaaSでも良い
Slide 92
Slide 92 text
コンテナの勘所 自分たちの解決したい問題の スコープを大事にする
Slide 93
Slide 93 text
コンテナの勘所 コンテナ技術を使うなら 仕組み化が重要 (状態を持たないからこそ仕組み化しやすい)
Slide 94
Slide 94 text
あじぇんだ 1. 自己紹介 2. EC2よりもFargateを使いたい 3. Fargateで辛かったこと 4. Fargateで良かったこと 5. コンテナの勘所 6. まとめ
Slide 95
Slide 95 text
まとめ コンテナ技術は使えばいいと言うものではない
Slide 96
Slide 96 text
まとめ 自分たちの解決したい課題に合わせる
Slide 97
Slide 97 text
まとめ 自分たちの解決したい課題に合わせる ↓ 一部から使うことでもメリットはある (例えば開発環境でdockerとか)
Slide 98
Slide 98 text
まとめ 運用のことは考えよう
Slide 99
Slide 99 text
まとめ 技術で課題を解決する
Slide 100
Slide 100 text
まとめ ご清聴ありがとうございました