HashiCorp最近触ってなかったから久しぶりに壮大なブログを書きます?#hashicorpjp
— adachin?SRE (@adachin0817) September 11, 2018
書きました!!!
Hashimotoさんツールだいぶ触っていなかったので。。。
今回HashiCorpツール群に特化した活用方法など久しぶりにキャッチアップしに行ってきました!
メモですが相当な量なのでよかったら頑張って見てください!
というかTerraformブログも去年の12月で止まってた…(ヤバメ/追わねば…)
※現時点のバージョンはv0.11.8ですな
いってみましょう!!!
■DevOpsを支える今話題のHashiCorpツール群について
HashiCorp User Group Japan
https://hashicorp.connpass.com/event/98386/
もう人ギューギュー
・アジェンダ
・DeNA オフィス
とヒカリエの受付で「バシッ!!」っと肩を叩かれたので振り返ると
BASE人事米田さんに遭遇w ビビったわ。相変わらずかわいい!!!!
んなことは置いといて、オフィスに向かいます。
すぐあだちんさんってわかりました?
— あいぽん@BASE (@AiYoneda) September 11, 2018
始めて行ったけど広すぎキレイすぎや!
席がまったく空いてなかったので一番前に座りました。(@lorentzca と)
生ハムが!…ッ!!…!! #hashicorpjp pic.twitter.com/PD17HyLs1a
— †深淵の覚醒者† (@lorentzca) September 11, 2018
最高かよ!!!
■HashiCorpについてご紹介とツール解説 森 英悟, HashiCorp Japan株式会社 ソリューションエンジニア
■HashiCorpとは
・2012〜
・ミシェルハシモト/学生時代に作ったとかぱねええ
・バーチャルボックスのラッパーをより良く使うために開発
・OSS
・vagrant⇛Packer
・クラウドなど効率的にチームとしての開発するために考えられてる
・Terraform大人気
・Vault⇛セキュリティ
・ダイナミックシークレット⇛AWS etc
・ルールセットにより各ユーザごとに割り当てられる(IAMみたい)
・ログもでる。
■Nomad ⇛ k8s リソースマネージャー
・スケジュールの対象がdockerではなくスケジューリングできる(早い)
■Consulのお話
・インフラ上のサービス設定とサービスディスカバリのためのツール
・サービス・ディスカバリとオーケストレーション
・ヘルスチェック
・キーバリュー・ストア
・耐障害性
■Consul connect
・https://www.consul.io/intro/getting-started/connect.html
・サービスとサービス間の通信をmTLSで暗号化するとともに「認証」を行い、論理的なサービス名を用いた通信の「認可」制御を行える機能
⇛プロキシなどIP気にしなくていい。コネクションも暗号化
HashiCorpの伝説を聞いて日々インフラの自動化がアップデートされていっているなと感じました。
Consulもk8s対応してよりインフラ構成の把握やサービスディスカバリしやすくなったし、熱い技術となっていますな。
特に最近発表されたConsul connectも話題となっていました。使ってみよう!
■「DeNA AIインフラでのTerraform活用について(仮)」 松木 秀憲 様, 株式会社ディー・エヌ・エー システム本部 AIシステム部
#hashicorpjp DeNAのAI基盤 AIのプロジェクトでは AWS / GCP上にボコボコ作っていく。AWSだと、p2、p3を、GCPだと、GPU付きのインスタンスをデプロイしている。 pic.twitter.com/G6pc19IgdS
— HashiCorp Japan (@hashicorpjp) September 11, 2018
#hashicorpjp DeNAの分析インフラ Hadoop クラスタの検証などでVagrantを使ってる。 pic.twitter.com/TRaHsewoZ6
— HashiCorp Japan (@hashicorpjp) September 11, 2018
https://speakerdeck.com/mazgi/hashicorp-products-on-dena-ai-and-analytics-infra
■自己紹介
・AIシステム部にインフラ提供している
・機械学習を活用してサービスを生かしている
・データマイニング ログを集めて分析してサービスをよりよくしている
・データハウスはBigQueryがメイン
■AIインフラの課題
・オンプレ⇛aws,GCP
・短い時間でセットアップしたい
・Terraformを活用
・扱うデータは様々
・インフラとしてそんなに変わらない
・インスタンスはイージーに構築できる
・CPUを活用した機械学習インフラを構築している
・cloud data labo
・手でやるとつらたん
■Packerによる解決(案)
・jsonにコメントしたいからなんとかして(HCLにして)
■分析インフラの課題
・td⇛Hadoop⇛embulk⇛BigQuery⇐web ui
・重量級ミドルウェアを活用して安定した分析環境を提供
・Hadoop辛い
・分析基盤の検証は大変、そこでVagrant!と思いきやつらたん
Terraform万能すぎる!!
分析基盤はHadoopに一旦ログを仕込んでembulkでBigQueryに同期しているというのを聞いて、うちでも同じことやっているなと!しかしHadoop…
■「コンテナ基盤を支えるHashiCorpソフトウェア」 小田 知央 様, GMOペパボ株式会社 技術部技術基盤チーム プリンシパルエンジニア
#hashicorpjp 次は、GMOペパボの小田さんです。 pic.twitter.com/HC6nnYBfJO
— HashiCorp Japan (@hashicorpjp) September 11, 2018
■Fast Container
・論文書いてるから見てください!!
どこだ!!!⇛ https://rand.pepabo.com/article/2017/06/28/iot38-matsumotory/
・Vaultのブログ書いたよ↓以下
やわらかVault – ペパボテックブログ https://t.co/HxuGQiCgoY #pepabotechblog
— adachin?SRE (@adachin0817) September 11, 2018
■本題
・k8sとdockerは使ってない
・Oohori⇛オーケストレータ
・Haconiwa⇛コンテナランタイム
・ロリポップ⇛コンテナベースのパース
・クラウド付きのレンタルサーバー
・コア機能⇛オートスケール⇛勝手に上がって勝手になくなる(課金される)
■なぜ独自開発なのか
・安価なコンテナ環境の提供にcontainerが高集積である必要
・ユーザ管理のcontainerが継続的に安全で必要である
・リソースや権限に対して柔軟な設定が可能、能動的である必要がある
・要求を満たすために開発したかった
■システム全体像
・roleが多い!!!
・Openstack
・SMTPのアイコン吹いた
・モニタリングはPrometheus
・プロキシはH2O
■Deploy
・Packerでイメージ作ってterraformで構築
・CIを通してchefのテストとterraformのフォーマットを使ったり
■特徴
・Packerはイメージを最小限で全roleを共通化して使用
・terraformはプロビジョニングせずにknife-Zeroを使う
・開発環境はVagrant
・頻繁に発生する大きな使用変更に対応している
■振り返り
・HashiCorpさんに感謝
■Terraformの使用
・moduleを分割
・tfstateはまじでs3
・基本的な部分なので省くよ
■Consul
・サービスディスカバリ 監視
・mackerelは外形監視
・ホストの名前解決はConsul DNS
・ssh configに踏み台サーバに名前解決できるからすぐにsshできる
・DNSラウンドロビンはH2O
・Consul Template⇛LB
・Consul DNS ⇛Web
■Vault
・PKIとTansitとして活用
・問題⇛Vaultがroutecaとしてどうやって他のnodeに配布するのか
・TLS接続ができないのでレッツエンクリプト使えるが、Chefで配布
・VaultにSIGHUPシグナルでサーバ証明書の再読込みをする
・SIGHUPではSEALされない
・Application Tokenの配布問題
・Applicationプロセスの外でTokenを発行する
・tokenが失効して障害
・問題点⇛マウントしたsecretごとにmax-lease-ttlという設定があり、漏れてた
・他のsecretにも関係するので死亡する
・監視追加だ!!!!⇛ログ⇛mackerelのcheckコマンドで正規表現しただけ
■まとめ
・ドキュメントを嫁!!
・流れがあり、併用することで便利さが増す!
生ハムだよーん #hashicorpjp pic.twitter.com/VrXmgWjEig
— L I N Y O W S ? (@linyows) September 11, 2018
相変わらずペパポの活用事例ぱない。
上記のように各HashiCorpツールの活用方法など細かく紹介されていたので、
使いこなしているなあと思いました。ドキュメントは読みましょう。
■「ApplibotのDevOpsを支えるTerraform/Packer(仮)」西村 遊 様, 株式会社アプリボット(サイバーエージェントグループ)企画・開発Div. システムオペレーションエンジニア
■アプリボットさん
・オンラインプログラミング教育サービスやってるのか!!(QUREO)
■組織
・1アプリケーションでカンパニー(縦割り)
・サーバ用意する人二人!?
・アプリケーションチームと協力してやっている
■Packer
・imageの作成
・RUN DECK ansible Packer
・イメージ作成の流れをテンプレート化
・before
・AMI⇛ansible⇛イメージ削除(手動)⇛これら忘れるしめんどい
・Packer コマンド一発!!!楽か!!
・半自動化 pushしたときにkickするようなことはしてない
・ブログ見よう!!!以下↓
#hashicorpjp / “Applibotでのサーバイメージ作成 – Packer+Ansible -(AWS AMI編) – てっくぼっと!” https://t.co/Q7yuKS0QAT
— progrhyme (@progrhyme) September 11, 2018
■terraform x hubot
・負荷試験 サーバエンジニアが試験 シスオペ結果に対してレビュー
・工数がかかる
・本番同等となる環境が必要
・JMeta使ってる
・マスタースレーブ構成でスケールアウト
・試験のたびに作成、削除
・スクリプトで調整⇛秘伝のタレか!
・毎朝毎晩縮小おねがいします。。。。。。。。。。。。ツライ
・1からTerraformにしている
・terraform import頑張ってちょくでjsonいじる
・拡張用、縮小用の設定ファイル作るだけ
・設定が共有できるので誰が実行しても一発
・hubot使ってslackで一発
■新規サービス
・awsのアカウント作成
・terraformで一発
・IAMの管理ができる CloudtrailからIAMまで
・tfstateファイルは各環境ごとに分けている
・環境の差分ができる
・ディレクトリを分けている
■まとめ
・Packer/Terraformを使うごとで管理しやすく共有可能なインフラへ
・最高かよ!!
印象深いのは負荷テストのたびに手動で変更するツラさと
RUN DECKやPacker/Terraformを活用してSlackですぐに環境が構築できるようにしたのはすごい!まさにChatOps!!!
■「tfnotify – Show Terraform execution plan beautifully on GitHub」b4b4r07 様, 株式会社メルカリ ソフトウェアエンジニア
■メルカリでやっていること
・SREチーム!!!
・プラットフォーム作ってる
■tfnotify
・terraformの実行結果をパースしてGithubに通知
・terraformのCI的な
■なんで必要になったのか
・マイクロサービスでTerraformを使っている
・インフラ管理においてもレビューとマージはマイクロサービスチームによってされるべき
・プラットフォームチームにレビューしないといけない
・レビューの流れえGithub上でクイックに確認したい
■メルカリでのHashiCorpツール
・110のコントリビューターがいる
・45PRがマージ
・今後増えていく
・CI pipelineの構築が一度で済む
・レビューに入りやすい
■リポジトリ構成
・ディレクトリごとに分けている
・サービスごとにtfstateを分けている
・リソースごとにfileを分けている
・権限委譲
・Approveされるまでマージできないようになっている
■モジュール
・Template Provierを使いディレクトリ作成、ファイルを吐き出す
■特徴
・CIのコンソールにも出力
・実行結果はパーサで構造化する
■実装
・重複したないようがある場合、古いものが削除
・実行結果が長いので折りたたんでデベロッパーが見やすいようにしている
■まとめ
・手軽に確認
・毎回plan、apply結果を見る習慣を持つ/もってもらう
Terraformの実行結果をGithubに通知して、いつでもレビューしやすいようにしたとか神かと思いました。
最近流行っているインフラCIにも関わってくるので、インフラコードもCIでぶん回すのが当たり前になりそうですな。
■「dwangoでのHashiCorp OSS活用について(仮)」鈴木 栄伍 様, 株式会社ドワンゴ 第二サービス開発本部 Dwango Cloud Service部Consultingセクション 第二プロダクト開発部 第一セクション
https://niconare.nicovideo.jp/watch/kn3424
■鈴木さんの見た目が完全にV系
・ニコニコアンケート
・frends.nico
・社内awsコンサルティング
■インフラ構成
・VMware
・AWS
■Packer
・開発環境を気楽に使いまわしたい
・AMIの作成
■Consul
・MySQLサーバがダウンしたときに動的に外したりヘルスチェックとして利用
・Ansible Playbook のdynamic inventory として利用
■Terraform
・CI
・本番に当てるのが怖い
・planでは問題ない!!が⇛死亡
・github,Jenkins,tfenv
・ディレクトリ構成
・0.6 workspaceが馴染めない⇛確かにようわからなかった
・tfstateを結合
・test用にplan applyを工夫している
・Jenkins⇛testをplan,apply,destroy
・↑が通ったらsandbox環境にplanとapply
.すべて通ったらマージしている
・slackで通知
・0から立ち上げるとRDSは10分かかるのでメンション飛ばすように絵文字!!
・何が嬉しいのか⇛githubのチェックで構成を壊すのか壊さないのか事前にわかる
・バージョンアップの確認が楽
■terraformでのCD
・やり方はほぼさっきと一緒
・自分以外でもデプロイできるようになった
・Slack通知で楽に判断できる
■まとめ(期待すること)
・consul connect
・sentinelが制限ありでいいのでOSSにもほしいいいい
・vault
・運用パターンを作るまでがとてもむずかしい
Terraformを本番に当てる恐ろしさをCIで工夫していました。
自分もplanに信ぴょう性が欠けていたのでめちゃくちゃ参考に!
にしても鈴木さんV系だった。
■まとめ/ Brian Burns, HashiCorp Japan株式会社 ゼネラルマネージャー
HashiCorp箸いただきました! #hashicorpjp pic.twitter.com/4y9LWwnzhr
— Akinori Tomita (@__tmy) September 11, 2018
#hashicorpjp なんと、DeNAさんから驚きの差し入れ‼️ pic.twitter.com/UizeHpiqzn
— HashiCorp Japan (@hashicorpjp) September 11, 2018
どうやらHashimoto氏は日本でいうダジャレがお好きなようで、
HashiCorpにちなんで箸Corpをブライアンさんが紹介してましたw欲しかった…
それとDeNAさんからの差し入れでHashiCorp!!!表面がバキバキでした。
今回のイベントでは様々な事例を出していただいたエンジニアさまに感謝です!
まずはVaultとConsul触ってどんなものか、会社で生かせないか考慮してみます!!
ブログ見ていただいた皆様ありがとうございます!
0件のコメント