学習時間 | 10時間 |
---|---|
難易度 | 初級 |
質問投稿 | 可 |
はじめてのAnsible!AWSでWebサーバを自動構築して業務の効率化に取り組もう!
Ansible入門!インストールからサーバ構築まで図や画像を用いながら丁寧に解説。AWSを使って手動と自動(Ansible)それぞれでWebサーバを構築することにより、Ansibleを使った場合のメリットを体感しながら理解を深めていく。
Infrastructure as Code(IaC)の一つである、サーバ構成管理ツール 「Ansible」で明日から使える実践的なインフラ技術を身につけよう!
日々の業務で、サーバに決められたコマンドを実施する作業はありませんか? 例えば、サーバの構築、定期メンテナンス、障害対応時で決められたコマンドを実施する時など色々あると思います。
本教材では、そういった作業に対して今まで手動やbashを使用して行っていた作業を、Ansibleを使って自動化するためのお手伝いをするだけでなく、わからなくて挫折するということを出来るだけ排除するべく、キャプチャを多め
にし、何をする為にどうしているか
などの説明も入れて理解しながら進められるように意識して作成しました。
本教材が、日々の業務の自動化のきっかけになれば幸いです。
Ansibleとは
Red Hat社が提供するオープンソースの構成管理ツールです。「エージェントレス(管理対象に特別なツールをインストールする必要がない)」であり設定ファイルの記述がシンプルでわかりやすいため、構成管理ツールの中でもハードルが低く使いやすいのが特徴となっています。そのため、自動化ツール・構成管理ツールを使ったことがない人にもオススメとなっています。(詳細は教材 「0-2 Ansibleとは」にて)
Ansibleの現場からの評価とトレンド
Ansible が現場でどのような評価を受けているかに関しては、検索してみるとたくさん出てくると思うので、ここではいくつか記事を紹介するだけに留めておきます。
・海外
DataVisionのChief Operating OfficerであるMark Abolafiaは「データセンター環境には、人的エラーの原因になりやすい繰り返しのプロセスが色々あります。なのでAnsibleのようなテクノロジーが、それらの課題の抑制につながるのです。Ansibleなら、特定のPlaybookにアクションを一組に記述し、変数でアドレスなどの異なる値を用意してしまえば、以前なら人の手の介在と長いリードタイムが必要だった一連の長いプロセスを自動化できます」と言います。
・国内
サーバの構築・設定の更新についてはAnsibleで行うことが普通になってきています。(中略)インフラ部内ではAnsibleは一般的なものとなっています。
参照)新卒インフラエンジニアが強みを活かして業務改善 - DMM inside
学習内容
- Ansibleの基本的な使い方(記載方法やルール)を学びます。
- GitHubを使用してのAnsibleのコード管理を行います。
- Ansibleを使用しAWS上にWebサーバ(nginx)を構築します。
- Ansibleの効率化を体感するため、手動でもwebサーバを構築します。
- AWSの使用方法についてもキャプチャ付きで紹介しています。
他、踏み台サーバ経由でのAnsibleの使用方法や初心者がやりがちなコードの記載ミス、その際に出るエラー、対応方法なども学びます。
本教材のやること、目指すこと
本教材では、すぐに業務でAnsibleを使って効率化出来るように、業務で役に立ちそうなものを触っていくことを目指します。 インフラの運用経験が一番長い筆者が、様々な業務で汎用的に使えそうなAnsibleのモジュールをピックアップして作成したコードを実際に動かすことで、 日々の業務で効率化を目指して欲しいと言う思いで作成しています。
自動化されるコードのイメージをつかもう
Ansibleはコードを作成すればあとはbashなどと同じように流すだけです。 こうやってAWSで作成したばかりのインスタンスにコードを流すと、
nginxが自動でインストールされているのが確認出来ます。
実行命令一つ一つに名前を付けることが出来るので、コード実行中に今どこまで実行されてるかも明瞭です。 本教材ではAWSを使いながら自動化を目で見える形で実感いただきます。
この教材の対象者
- Infrastructure as Code(IaC)に興味があって、体験してみたい方
- Ansible の恩恵をいまいち理解できていなく、何がかわるのかを実際に体験したい方
- 日々の業務の自動化に興味がある方(定常作業の自動化や、複数台のサーバを同時に構築するなど)
受講における必要条件
- サーバなどの概念がわかる方
学ばないこと
- 本教材はAnsibleの基本的な使い方を知ることを一番の目的としており、AWSについても設定方法などは記載しておりますが、細かい機能の説明は行っていません。
- Ansibleはネットワーク機器の設定も行えますが、本教材では取り扱いません。
本教材の対応バージョン
- Ansible 2.9.0
Ansibleはバージョンによって使えない構文などがある為、バージョンは2.9に合わせていただくことをオススメします。
本教材で質問対応可能なOSや環境
- Mac OS
本教材を実行するローカル環境はmacOSを想定しています。 Windowsでの実施は置き換える点が多すぎて本教材を取り扱うのにオススメしません。
AWSを使用することによりかかる費用について
本教材ではAWSを使用します。AWSはオンデマンド方式で使用した分だけ費用がかかります。(初めてAWSを使用する人は無料枠である程度使うことが出来ます。) いろいろなサービスを使用しますが、EC2インスタンス
と、EBS
いうサービスで費用がかかります。 いくらかかるかは下記をそれぞれ参照してください。インスタンスのタイプはt2.micro
で、EBSは汎用 SSD (gp2) ボリューム
のサイズは10GB
使用します。 EC2インスタンス , EBS 使わない時はインスタンスを停止するなどの対処をしなかった場合、無料枠を考えないと大体月1000円と少し程度の料金が発生します。作業が終わればこまめにインスタンスは停止するようにしましょう。(削除してしまうのが費用面では最も良いですが、毎回削除していると立ち上げるのに時間がかかってしまう為、一通り確認するまでは停止するようにしましょう)
本教材の構成について
0章 はじめに
本教材を進める上での環境を整えたり、Ansibleとは何か?を解説していきます。
1章 AWSでサーバの準備
Ansibleを実行する為のサーバの準備を行います。
2章 Webサーバ構築(手動)
まずはAnsibleを使わずにWebサーバを構築します。 ここでどういうことをAnsibleで自動化するかを把握します。
3章 Webサーバ構築(Ansible)
2章で行ったことを、次はAnsibleを使用し構築します。
4章 GitHubを使ってコード管理
作成したAnsibleのコードをメンテナンスしやすいようにGitHub上で管理します。
5章 踏み台サーバ経由でAnsibleを実行する方法
別のサーバ経由で対象のサーバにAnsibleを実行する方法を紹介します。
6章 エラーメッセージについて
初心者がやりがちな記載ミスとその時に発生するエラーに対応する方法を紹介します。
7章 作成したリソースの削除について
費用のかかるサービスの削除を行います。