dbtsブログ
このエントリーをはてなブックマークに追加

【dbts2021 レポート】DBAのためのDevOPS : 有力な自動化ツールを知りましょう!

DB(データ管理)
【dbts2021 レポート】DBAのためのDevOPS : 有力な自動化ツールを知りましょう!

こんにちは、プロダクト開発部片山です。 db tech showcase 2021 3日目の [G23] のセッションである「DBAのためのDevOPS : 有力な自動化ツールを知りましょう!」のレポートをお届けします。

スピーカー名:Eclipsys Solutions Inc. Rene Antunez 様


セッション概要:

DevOPS for DBAs : Your Automation Power Toys
Terraformは、HashiCorp社より作成されたオープンソースのInfrastructure as Codeソフトウェアツールで、2014年にリリースされ、自動化環境で有力な製品になります。さて、あなたはTerraformやAnsibleをご存知でしょうか?変化し続けるITの世界で、もしDBAとしてこれらの技術を知らないとしたら、もう遅れをとっています。本セッションを通じて、TerraformとAnsibleがどのようなものか、どのように連携するのか、また、これらの新ツールがどのようにハイブリッドクラウドの力を引き出すのに役立つのかを理解することができます。

db tech showcase 最終日の今回のセッションでは、Eclipsys Solutions Inc. の Rene Antunez さんより AI 技術の進展が DBA に与える影響と、DevOps エンジニアとして知っておくべき Infrastructure as Code ツールとして、Terraform, Ansible, Docker について解説頂きました。当レポートではその概要をご紹介いたします。


なぜ DBA が DevOps を知る必要があるのか

DBA という職業は 2014年の Forbes の調査 (*1 Forbes - The Happiest And Unhappiest Jobs In 2014)では、7,800 もの職種の中で最も幸福な職業に選ばれていましたが、2018年の調査ではリストからその名を消してしまいました。また 2014年のオックスフォード大学が雇用の未来について調査した結果では、2034年までに 47% の職業がコンピュータに取って代わられるという予測が立てられており、近年発展が著しい AI 関連技術によって、DBA の経験に頼るタスクであっても今後自動化が進んで行くと見られています。

そうした中で、DBA の知識を生かせるキャリアチェンジプランとして DevOps エンジニアがあります。

IaC でインフラ構築・管理を自動化する

DevOps エンジニアは、ハードウェアやソフトウェア、セキュリティなどの広汎な知識が必要なだけでなく、インフラの構築・管理や、クラウド事業者毎のサービスの違いも認識しておく必要があります。

その中でインフラ構築・管理を手助けしてくれる手法として、Infrastructure as Code (IaC)と呼ばれる手法があります。IaC では、マシンに関連するストレージやネットワークなどのリソースを構成設定ファイルとして記述することができ、Terraform などの構成管理ツールを用いることで、構成設定ファイルの内容に沿ったマシンを自動でセットアップすることができます。また IaC には以下の利点もあります。

  • 環境構築における再現性を高められる
    • 手順の実施漏れなどの人為的ミスが発生しないため
  • コード化することで構成の変更履歴を管理できる

IaC の代表的なツールとしては Terraform や Ansible が挙げられます。

Terraform は Hashicorp 社が開発する構成管理ツールで、ハードウェアのプロビジョニングを含めたマシンの作成・変更・破棄までのライフサイクル管理や、構築したマシンへのアプリケーションの導入自動化などの機能をサポートしています。自動作成可能なプラットフォームは AWS や Azure、GCP などの各種クラウドプラットフォームだけでなく、VMware vSphere などのオンプレミスの仮想化基盤にも対応しています。

Ansible は Red Hat 社が提供する OSS の構成管理ツールで、主に作成済みのマシン上におけるユーザ追加やディレクトリなどの細かい構成設定、アプリケーションの導入やセットアップに用いられます。Puppet など他の構成管理ツールと比較した際のメリットとして、Ansible はエージェントレスなので基本的には OS に余計なアプリケーションを導入することなく、目的のアプリケーションをセットアップすることが可能となっています。

要件がシンプルであればどちらかのみで事足りるケースもありますが、通常はプロビジョニングには Terraform、複雑なアプリケーションの構成設定には Ansible を組み合わせる形を取ることが一般的です。

コンテナで移植性の高い環境を作成する

インフラ自動化のもう一つの重要な仕組みとしてコンテナも外せません。その中でも最も代表的なツールは Docker です。Docker はアプリケーションの実行に必要な最小限のバイナリとライブラリをコンテナとしてまとめることで、コンテナ毎に隔離された環境でアプリケーションを実行することが可能です。その他にも様々なメリットがあり、主要なものとして以下が挙げられます。

  • OS を含まないため仮想マシンと比べてイメージサイズが小さい
  • アプリケーション毎に必要なパッケージの導入、セットアップが必要ない

上記の特徴から、アプリケーションに変更を検証環境や運用環境に素早く展開することが容易なので、DevOps における CI/CD の基盤として広く用いられています。

API 主導型アーキテクチャ

DevOps を実現する上でもう一つ重要な要素として REST API などの API 主導型アーキテクチャがあります。API 主導型アーキテクチャでは、クライアントはサーバに対してリクエストを送信し、サーバはその内容に応じてクライアントにレスポンスを返す、という基本的なやり取りを定めています。

REST API では各種リソースに対する操作を、HTTP の各メソッドにより行います。具体例としてデータベース上のユーザ情報の操作を REST API に当てはめると以下のようになります。

  • GET: ユーザに関する情報を取得
  • POST: 新規ユーザの追加
  • PATCH: ユーザ情報の更新
  • DELETE: ユーザの削除

これらの操作の結果は、HTTP 経由で JSON や XML の形式でクライアントに返却されます。

DX を進めていくにあたり、様々なデータソースをネットワーク越しに連携させる上で、API 主導型アーキテクチャに則ることで、最小限の労力でデータにアクセスできるようになります。また GDPR のようなセキュリティ規則に準拠するようカスタマイズすることも可能です。

まとめ

  1. IaC 関連ツールによりインフラ構築を自動化することができる
  2. Docker を利用することでアプリケーションを迅速に展開・実行できる
  3. REST API に則ることでデータにアクセスする手段を最小限の労力で準備できる

聴講した感想

今回のセッションを通して、DevOps を実現するために必要なインフラ構築の技術や、代表的なアーキテクチャを知ることができました。セッションの最後には Rene さんの体験談として、2017年にメキシコシティで大きな地震が発生した際、救援物資がどの場所にどれだけ必要なのか、Google フォームや SNS を通じて把握する仕組みを、今回のセッションで紹介された技術を利用し、短期間かつタイムリーに提供することができたと語っておられたのが印象的でした。

私も製品開発者からインフラエンジニアに近い仕事にシフトした経緯があり、現在は弊社の自社製品である PISO の開発工程を Terraform や Ansible を使うことで効率化しております。以前は開発環境の構築に数時間を要することもありましたが、それが CLI から数分で用意できる用意できるようになりました。

一昔前は難しいとされていた仕事も自動化技術や AI によって自動化、もしくは効率化される中で、アイデアを素早く形にするための手法として、アプリケーション開発者の方だけでなく DBA の方も、当レポートでご紹介した技術や考え方に触れてみるのはいかがでしょうか。

db tech showcase2021のアーカイブ動画・資料を12月末まで公開しております! 閲覧はこちらからご覧ください。

https://eventregist.com/e/TvkwJoawl5Dy
一覧に戻る