開発から運用に至るフローを一体化するAtlas

2015年10月1日(木)
前佛 雅人(ぜんぶつ まさひと)

これまでの連載では、HashiCorpが提供する様々なツールの使い方を見てきました。連載の最後に、各々のツールを結び付けるAtlasを紹介します。

DevOpsを支えるインフラを提供するAtlas

Atlasは、HashiCorpが提供するオンラインのサービスです。これまでの連載で取り上げたツールは、いずれも連載の第一回で取り上げたThe Tao of HashiCorp(HashiCorp道)という設計思想に基いて作られており、その1つ1つがそれぞれの目的のために作られたものでした。現在、HashiCorpによって提供されているツールと役割は、以下の通りです。

HashiCorpが提供するツールとその役割

Vagrant(https://www.vagrantup.com/開発環境のコード化
Packer(https://packer.io/マシン・イメージの自動構築
Terraform(https://terraform.io/インフラのコード化と自動構築
Serf(https://serfdom.io/クラスタ管理とオーケストレーション
Consul(https://consul.io/サービス・ディスカバリとオーケストレーション
Vault(https://www.vaultproject.io/秘密情報(API用の秘密鍵など)の保管と管理

共通しているのは、いずれも何らかのワークフローの解決を目指すという点です。そのためにHashiCorpが提案しているのは、コード化を通した自動化です。それは、効率の向上だけでなく、人手による誤りを防ぐという役割も持ちます。そのため、本来行いたい開発や運用に関する業務に集中するための仕組みを提供しています。

その一方で、実際の開発から運用に至る流れを見てみますと、各ツールを組みあわせる必要が出てきます。たとえば、次のようなケースが考えられます。

  • Vagrantで作った環境を、Packerでマシン・イメージ化したい
  • Packerで作成したマシン・イメージを使ってTerraformで使いたい
  • Terraformで作った環境を、Consulで監視・オーケストレーションしたい

そこに登場するのがAtlasです。Atlasは、サイトの説明によると「開発から運用に一貫したフローを提供する」とあります。Atlasは、これらのツール間の溝を埋めるために必要な、統一したインターフェースを提供します(図1)。GUI上でマシン・イメージ(アーティファクト)、インフラの設定、アプリケーションの稼働状況を、まとめて管理できます。それだけでなく、Atlas上に各種の設定を保存したり、Atlasの環境を通してリモート上のクラウド環境に対して、自動的な処理を行ったりすることもできます。

とりわけ、Atlasが力を発揮するのは、チームにおける協力時です。たとえば、これまではローカルの開発用途はVagrantを使っても、ステージング環境や本番環境は別の担当者がいる場合もあると思われます。そうなると、情報の確認や設定に時間がかかりがちですが、そこがAtlasの出番となります。

「誰が何をしているのか」を把握

通常のHashiCorpのツールはコマンドライン上で使うもののため、誰が何をしているか状況を把握することは困難でした。ですが、Atlasというプラットフォームを使うことにより、誰がどのようなイメージを管理しているか、インフラに対してどのような変更を行ったかなどを容易に確認できます。また変更時の記録(ログ)はAtlas上に一括して保管されるので、どこに記録を残すべきか迷うこともありません。

Atlasは、ネットワークを通した共同作業を行う場合に、特に力を発揮します。一社内、一部所でというより、広範囲のリモート—ワークにおける共同作業の場のほうが、Atlasを使うメリットを実感できるでしょう。一方で、既にチーム内で開発から運用に至るフローができている場合は、あえてAtlasを導入する必要がないかもしれません。

Vagrant CloudからAtlasへ

Atlasは、2014年12月に公開されました。突然の発表でしたが、Atlasにはその前身とも言えるサービスがありました。それが、2014年3月にリリースされたVagrant Cloudです。当初はVagrant用のbox(マシン・イメージ)を共有したり、Vagrantの共有機能を使ったりするためのものであり、どちらかと言えば開発者寄りのものでした。一方、現在のAtlasは開発者だけでなく、運用視点でのサービス監視機能や、開発と運用の境界ともいえるインフラの管理も行えるようになっています。

料金について

Atlasの料金体系について見ていきましょう。Atlasは、基本的に無料で利用できます。特にVagrantとPackerに関連するイメージ管理機能は、完全に無料です。一方、管理ノードは10ノードまで無料ですが、11ノードを超える分はノード毎に月額40ドルの料金が必要になります。この管理ノードとはConsulエージェントが稼働してAtlasの管理対象となるサーバか、Terraformによって管理されているリソースのことを指します。もしConsulとTerraformを両方使う場合は、多く使っている方が課金対象となります。ただし、課金対象となる管理ノードとは月平均で換算され、かつ前述のように10ノード分は無料となります。例えば、1ヶ月間に平均30ノードが稼働している場合、そこから無料対象となる10ノード分を差し引いた20ノード分が課金対象となります。

Atlasへのアカウント登録と準備

Atlasを使うためには、アカウントの登録が必要です。アカウントをお持ちでない場合は、登録用のページにアクセスし、アカウント名やメールアドレスの登録をお願いします(図2)。登録後のAtlasへのログインには、ここで入力したアカウント名またはメールアドレスを利用します。

Atlasの各々の機能を使うには、それぞれの機能に対応したHashiCorpツールのダウンロードも必要です。たとえば、VagrantのboxをAtlasに保管したいのであれば、手許にVagrantのセットアップが必要ですし、マシン・イメージを自動構築したいのであれば、Packerが必要です。以前のバージョンではAtlasの機能に対応していない場合もありますので、それぞれの最新安定版のダウンロードをお願いします。

トークンの生成

HashiCorpのツールでAtlasを利用するためには、AtlasのAPIにリモートからアクセスするためのAPIトークンが必要になります。APIトークンを生成するには、Atlasダッシュボード画面右上にある自分のアカウント名をクリックし、「Tokens」のリンクを開きます。

入力フォームに「Atlas Token」等の文字を入れ「Generate Token」をクリックすると、画面上にトークンが表示されますので、コピーしておきます。この情報はパスワード認証なくAtlasの操作が可能なため、取り扱いには十分ご注意ください。また、トークンの文字列は再度表示できません。

取得したトークンは、環境変数ATLAS_TOKENにその文字列を定義しておきます。

export ATLAS_TOKEN="トークンの文字列"

それでは続いて、具体的な連携方法を見ていきましょう。

著者
前佛 雅人(ぜんぶつ まさひと)
クリエーションライン株式会社

Technology Evangelist
ホスティングサービスで運用保守サポートに携わった後、現職へ。サポート業務や新技術検証や開発業務を行う傍ら、実家で農作業のため東京と富山を往復する日々。趣味で監視や自動化に関するOSS検証や翻訳を行う。とりわけ運用・監視の省力化・最適化に興味。辛口の日本酒が大好き。
Twitter: @zembutsu (https://twitter.com/zembutsu)

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています