書きました!!!

Hashimotoさんツールだいぶ触っていなかったので。。。
今回HashiCorpツール群に特化した活用方法など久しぶりにキャッチアップしに行ってきました!
メモですが相当な量なのでよかったら頑張って見てください!
というかTerraformブログも去年の12月で止まってた…(ヤバメ/追わねば…)
※現時点のバージョンはv0.11.8ですな

[GCP][Terraform][v0.11.1]GCEとVPCを自動化してみたら素晴らしかった!

いってみましょう!!!


■DevOpsを支える今話題のHashiCorpツール群について

HashiCorp User Group Japan

https://hashicorp.connpass.com/event/98386/

もう人ギューギュー

・アジェンダ

・DeNA オフィス

とヒカリエの受付で「バシッ!!」っと肩を叩かれたので振り返ると
BASE人事米田さんに遭遇w ビビったわ。相変わらずかわいい!!!!
んなことは置いといて、オフィスに向かいます。

 

始めて行ったけど広すぎキレイすぎや!

席がまったく空いてなかったので一番前に座りました。(@lorentzca と)

最高かよ!!!


■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システム部

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ペパボ株式会社 技術部技術基盤チーム プリンシパルエンジニア 

■Fast Container
・論文書いてるから見てください!!
どこだ!!!⇛ https://rand.pepabo.com/article/2017/06/28/iot38-matsumotory/

・Vaultのブログ書いたよ↓以下

■本題
・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コマンドで正規表現しただけ

■まとめ
・ドキュメントを嫁!!
・流れがあり、併用することで便利さが増す!

相変わらずペパポの活用事例ぱない。
上記のように各HashiCorpツールの活用方法など細かく紹介されていたので、
使いこなしているなあと思いました。ドキュメントは読みましょう。


■「ApplibotのDevOpsを支えるTerraform/Packer(仮)」西村 遊 様, 株式会社アプリボット(サイバーエージェントグループ)企画・開発Div. システムオペレーションエンジニア

■アプリボットさん
・オンラインプログラミング教育サービスやってるのか!!(QUREO)

■組織
・1アプリケーションでカンパニー(縦割り)
・サーバ用意する人二人!?
・アプリケーションチームと協力してやっている

■Packer
・imageの作成
・RUN DECK ansible Packer
・イメージ作成の流れをテンプレート化
・before
・AMI⇛ansible⇛イメージ削除(手動)⇛これら忘れるしめんどい
・Packer コマンド一発!!!楽か!!
・半自動化 pushしたときにkickするようなことはしてない
・ブログ見よう!!!以下↓

■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株式会社 ゼネラルマネージャー

どうやらHashimoto氏は日本でいうダジャレがお好きなようで、
HashiCorpにちなんで箸Corpをブライアンさんが紹介してましたw欲しかった…
それとDeNAさんからの差し入れでHashiCorp!!!表面がバキバキでした。
今回のイベントでは様々な事例を出していただいたエンジニアさまに感謝です!
まずはVaultとConsul触ってどんなものか、会社で生かせないか考慮してみます!!
ブログ見ていただいた皆様ありがとうございます!



adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください