12
AWS で実現する Windows「DevOps」環境(後編)AWS で実現す る「Infrastructure as Code」、クラ ウド時代に求められる IT 運用とは? クラウドを使った開発が一般的になることで、その運用にも新たな課題が浮上している。 開発スピードが上っても運用に負荷が掛かれば、クラウド開発のメリットを得られない。 Windows 環境における最適な IT 運用を考える。 「Infrastructure as Code」とは? 「ソフトウェア開発のライフサイクルには、コーディングからビルド、 テスト、リリースまでのデリバリーパイプラインと、それを使った顧 客の反応をモニタリングし、次のリリースでの改善や修正につなげて いくフィードバック ループが存在する。この一連の流れを高速化して いく取り組みを DevOps と捉えることができる」 そう話すのは、アマゾン ウェブ サービス ジャパン 技術本部 レデ ィネス ソリューション部ソリューション アーキテクトの渡邉源太氏 だ。

る「Infrastructure as Code」、 クラ ウド時代に求められるIT運用 … · 一方、AWS OpsWorksは、データベースとWebアプリケーションサ ーバ層、ロードバランサによる比較的シンプルなWebアプリケーショ

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

AWS で実現する Windows「DevOps」環境(後編)AWS で実現す

る「Infrastructure as Code」、クラ

ウド時代に求められる IT 運用とは?

クラウドを使った開発が一般的になることで、その運用にも新たな課題が浮上している。

開発スピードが上っても運用に負荷が掛かれば、クラウド開発のメリットを得られない。

Windows 環境における最適な IT 運用を考える。

「Infrastructure as Code」とは?

「ソフトウェア開発のライフサイクルには、コーディングからビルド、

テスト、リリースまでのデリバリーパイプラインと、それを使った顧

客の反応をモニタリングし、次のリリースでの改善や修正につなげて

いくフィードバック ループが存在する。この一連の流れを高速化して

いく取り組みを DevOps と捉えることができる」

そう話すのは、アマゾン ウェブ サービス ジャパン 技術本部 レデ

ィネス ソリューション部ソリューション アーキテクトの渡邉源太氏

だ。

このライフサイクルを最適化していくに当たり、「開発」「運用」

双方のエンジニアによるコラボレーションが必要なことは明白だ。「ア

マゾン ウェブ サービス」(AWS)では、DevOps を支援するための

多様なツール(マネージドサービス)が提供されている。

アマゾン ウェブ サービス ジャパンの渡邉源太氏

包括的に用意されたマネジメントツール

今回は主に「運用」の面から、これらを活用して「クラウドならでは」

の迅速なライフサイクル展開を目指すケースを考える。場面としては、

サービス提供のための IT 基盤を用意する「プロビジョニング」と、そ

こにシステムを構成するコードやバイナリ、アセットなどを配布する

「デプロイ」のフェーズをイメージしてほしい。

クラウドを採用することで、リソース調達が容易になったとしても、

実際の運用の中で「プロビジョニング」や「デプロイ」の作業は発生

する。むしろ、調達の手軽さ故に、無秩序にインスタンスを生成して

しまえば、それらを運用していく際の手間は増えてしまう。

クラウドの導入で生じる、運用管理負荷増大のリスクをコントロー

ルするために、現在注目されているアイデアの 1 つが「Infrastructure

as Code」だ。文字通り「コード」を記述することで、IT インフラの

プロビジョニングを自動化していこうという取り組みである。

「Infrastructure as Code では、従来『手順書』のようなもので管

理していたインフラ構築の手順や設定方法を、コードとして記述して

おく。このコードは、そのままの形で実行可能なので、再現性や再利

用性に優れる。コードのメンテナンスさえ適切に行っておけば、構築

するサーバ台数が突然増えたとしても、その構築にかかる手間は変わ

らない」(渡邉氏)

渡邉氏によれば、「AWS における基本的なコンセプトとして “API

指向” によるインフラ構築、管理の自動化を目指すものがある。これら

は、世界各国の AWS リージョンに共通しており、複数のリージョンに

またがる膨大なサーバファームを、単一のコードベースでコントロー

ルできるようにしている」という。

AWS で Infrastructure as Code を実現する場合、対応するさまざ

まな言語やツールの中から、ユーザーが最も使い勝手の良いものが選

択できる。もちろん、その中には Windows ユーザーになじみの深い

「.NET」「Windows PowerShell」も含まれている。

一般的に、運用管理の現場ではコマンドライン ツールを利用して作

業を行っているケースが多いが、AWS では、運用自動化のためのコマ

ンドラインツールとして「AWS Command Line Interface(CLI)」

および「AWS Tools for Windows PowerShell」が用意されている。

Windows の運用経験がある人でならば、後者が気になるのではないだ

ろうか。

「AWS Tools for Windows PowerShell」を利用すると、

「AWSPowerShell」モジュール内のコマンドレットから、ほとんどの

AWS サービスを操作できるようになる。一例を挙げると、オンプレミ

スの仮想環境(Citrix XenServer、Microsoft Hyper-V、VMware

vSphere など)上にある仮想マシンを、AWS のマシンイメージである

AMI としてインポートするといった処理を、PowerShell スクリプトと

して記述し、実行することが可能だ。使いこなすことで、AWS 上の環

境構築にまつわる大部分の作業を自動化できる強力なツールである。

また、Amazon EC2 には「Amazon EC2 Run Command」機能が、

マネジメントコンソールおよび API で用意されている。これは、実行

されている Amazon EC2 インスタンスに対して、リモートからさまざ

まな操作を行えるツールだ。例えば、インスタンス内で動いている OS

やアプリケーションの設定変更、ログファイルやシステム リソースの

表示、収集なども可能となっている。利用は、Amazon EC2 のコンソ

ール上にあるコマンド入力欄に Windows PowerShell のコマンドを書

き込むだけでいい。従来、インスタンス内の情報を得たり、設定を変

更したりする際には、一度「リモート デスクトップ」などでログオン

し、その中で個別に作業を行うといった方法が一般的だったが、この

Amazon EC2 Run Command を使うことで、外部から一括で特定の

管理作業ができるようになる。管理対象が増えれば増えるほど、大幅

な省力化につながる機能だ。

用途と使いやすさで選べる AWS の環境構築、デプロイ自動化

ツール

AWS では、インフラ構築自動化の方法として複数の手段やツールを用

意している。渡邉氏によれば「構築の自由度」と「利用の手軽さ」の

観点から、それぞれは以下の図のような位置付けになるという。

AWS プロダクトの位置付け

最も自由度が高いのは、Amazon EC2 上で直接インフラ全体を組み上

げていく方法だが、この方法にはそれなりのスキルと手間が必要にな

る。より分かりやすい仕組みとして、AWS では「AWS CloudFormation」

と呼ばれるサービスが用意されている。

AWS CloudFormation では、Amazon EC2 や ELB(Elastic Load

Balancer)といった AWS の環境構築を、テンプレート(設定ファイ

ル)を元に自動化できる。実体としては、JSON で記述されたテンプレ

ートファイルを、CloudFormation 上に用意されたフレームワークに読

み込ませ、各スタックに反映することで機能するが、このサービスに

は、JSON テンプレート内のリソースをビジュアルに確認、修正できる

「AWS CloudFormation Desingner」も用意されている。実際にある

環境を元にしてスクリプトを生成することもでき、これらを活用する

ことで単体のサーバだけでなく、特定のアプリケーションやサービス

向けの大規模な構成を「コード」として管理し、プロビジョニングに

再利用することが容易になる。

アプリケーションのデプロイを自動化するためのサービスとしては

「AWS OpsWorks」がある。近年、システムの構成管理フレームワー

クとして「Chef」が利用されるケースが増えている。Windows 環境と

の親和性も高いため、既に利用している管理者も多いと思われるが、

開発者は AWS OpsWorks によって、この Chef のレシピを使ったデプ

ロイや運用タスクの自動化を行うことができる。AWS

CloudFormation が、大規模で複雑なシステムなどの構成に向いている

一方、AWS OpsWorks は、データベースと Web アプリケーションサ

ーバ層、ロードバランサによる比較的シンプルな Web アプリケーショ

ンから大規模で複雑なアプリケーションまでを管理する際に使い勝手

が良いという。

サードパーティー製品との統合が容易な AWS の「運用監視」

フレームワーク

サービス運用の観点では、ユーザーに対して問題なくサービス提供が

行えているか、セキュリティ上の問題などが発生していないかを見守

る「監視」すなわち「モニタリング」の視点も必要になる。AWS では

AWS 上の各種リソースの監視を行える「Amazon CloudWatch」と呼

ばれるサービスが提供されている。

「Amazon CloudWatch では、AWS リソースの死活状況、性能、ロ

グの監視を行う機能を提供する。取得したメトリックスのビジュアラ

イズ、各メトリックスをベースとしたアラーム(通知)といったサー

ビスが利用できる」(渡邉氏)

AWS CloudWatch では AWS リソースのみが監視対象になるため、

実際の運用ではサードパーティー製の監視システムと組み合わせて使

うことができる。「Zabbix」「Datadog」「mackerel」「JP1」「mPLAT」

「Hinemos」といった監視システムが CloudWatch に対応していると

いう。

また、AWS では「Microsoft System Center」を採用している企業

向けに「AWS Management Pack for Microsoft System Center」を

提供している。これを導入することで、ユーザーは、System Center

Operations Manager から、オンプレミスの環境と AWS 上のリソース

(Windows、Linux の Amazon EC2 インスタンス、EBS ボリューム、

ELB、CloudFormation スタックなど)の双方を一元的に管理すること

が可能になる。

さらに、AWS CloudWatch では、インスタンスの OS やアプリケー

ションが生成するログをモニタリングできる「CloudWatch Logs」や、

リソースへの変更といった AWS 上で発生するイベントをトリガーと

して特定のアクションを実行する「CloudWatch Events」といった機

能も用意されている。これらの機能により、例えば、各システムのロ

グ状況を AWS CloudWatch 上の可視化ツールやアラーム機能と連携

させたり、セキュリティ上の内部要件を満たしていない Amazon EC2

インスタンスを強制的に起動不能にしたりといった運用が可能になる。

「クラウドならでは」の機能を活用することで、その価値は

高まる

「AWS に既に用意されているこれらのマネージドサービスを使ってプロビジ

ョニングやデプロイ、監視の自動化を進めることにより、クラウドの柔軟性や

スケーラビリティといった価値を、より一層引き出すことができる。運用担当

者の手間を削減し、作業品質を高めること。さらに、運用に関する情報を、ク

ラウド上で開発エンジニアと共有できる環境があることで、より高速なアプリ

ケーションライフサイクルを回していく DevOps の実践も可能だ」と渡邉氏は

言う。

エンジニアにとって最も大きなメリットは、前編、後編の双方で紹介した全

てのサービスが、既に AWS 上で「利用可能」な状態になっている点だろう。同

じ環境を一から独自に実現しようとすれば、膨大な費用と時間、そして手間が

掛かる。AWS が提供するマネージドサービス群を使うことによって、DevOps

のための環境構築に掛かるコストそのものが大幅に削減できるわけだ。基盤技

術として Windows や.NET Framework を採用している企業にとっても、AWS

のサービスが十分使いやすいものになっていることは、見逃せないポイントだ。

仮想環境の登場によって、企業におけるシステム基盤のパラダイムは一度、

大きく変化した。そこから、次の段階であるクラウドへのシフトを進める際に

は、ユーザー側の意識と体制を作り替えることで、その価値と効果をさらに高

める意識が重要だ。既存ワークロードの移行のみに満足せず、クラウド時代に

ふさわしい開発、運用管理の体制を新たに作り上げていくという姿勢が、ソフ

トウェアの重要度が増す時代に競争力を高めたいと考える企業にとって、必須

のものとなっているのではないだろうか。

アマゾン ウェブ サービス、AWS および、AWS Command Line Interface(CLI)、AWS Tools for

Windows PowerShell、AWS OpsWorks、Amazon Elastic Compute Cloud(Amazon EC2)、AWS

CloudFormation、ELB(Elastic Load Balancer)、Amazon CloudWatch、AWS Management Pack for

Microsoft System Center は、米国その他の諸国における Amazon.com, Inc.またはその関連会社の商標

です。

提供:アマゾン ウェブ サービス ジャパン株式会社

アイティメディア営業企画/制作:TechTarget ジャパン編集部