New Relic で EC2 インスタンスを監視する方法
目的
Amazon EC2 の新規インスタンスを立ち上げ、New Relic でリソース監視をする。
これを vagrant up コマンド一発で実現したい。
プロビジョニングには Ansible を使う。
事前準備
1. New Relic アカウントの準備
- サインアップ
- ライセンスキーを確認
2. AWS Management Console の作業
- AWS アカウントの作成 (手順割愛)
- ユーザ・グループ作成
- Services -> Deployment & Management -> IAM
- IAM -> Groups: vagrant グループ (Power User Access) を追加
- IAM -> Users: vagrant ユーザを追加し、vagrant グループに所属。APIキーを確認
- セキュリティグループ作成
- Services -> Compute & Networking -> EC2 -> NETWORK & SECURITY -> Security Groups
- vagrant グループを追加し、Inbound 許可, {SSH, HTTP, HTTPS}, Anywhere を設定
- SSH鍵の作成
- Services -> Compute & Networking -> EC2 -> NETWORK & SECURITY -> Key Pairs
- キーペア vagrant を作成し、vagrant.pem を適当な場所に保存 (例: ~/.ssh/aws-vagrant.pem)
3. プロビジョニング実行環境の整備
- Vagrant のインストール
- Vagrant プラグインのインストール
$ vagrant plugin install vagrant-aws $ vagrant plugin install dotenv
- Ansible のインストール
プロビジョニング用ファイルの作成
Vagrantfile
.env ファイル
Vagrantfile と同じディレクトリに「.env」というファイルを作成する。
以下のように認証情報を適宜設定すること。
# default provider VAGRANT_DEFAULT_PROVIDER="aws" # credentials AWS_SSH_USERNAME="ec2-user" AWS_SSH_KEY="path/to/your/vagrant.pem" AWS_ACCESS_KEY_ID="your access key id" AWS_SECRET_ACCESS_KEY="your secret" AWS_KEYPAIR_NAME="vagrant" AWS_SECURITY_GROUP="vagrant" # new relic NEWRELIC_LICENSE_KEY="your license key"
Ansible 関連ファイル
- provisioning/site.yml
- provisioning/roles/newrelic/tasks/main.yml
- provisioning/roles/nginx/tasks/main.yml (おまけ)
プロビジョニングの実行
$ vagrant up Bringing machine 'aws-newrelic-test' up with 'aws' provider... [aws-newrelic-test] Warning! The AWS provider doesn't support any of the Vagrant high-level network configurations (`config.vm.network`). They will be silently ignored. [aws-newrelic-test] Launching an instance with the following settings... [aws-newrelic-test] -- Type: t2.micro [aws-newrelic-test] -- AMI: ami-29dc9228 [aws-newrelic-test] -- Region: ap-northeast-1 [aws-newrelic-test] -- Availability Zone: ap-northeast-1a [aws-newrelic-test] -- Keypair: vagrant [aws-newrelic-test] -- Security Groups: ["vagrant"] [aws-newrelic-test] -- Block Device Mapping: [] [aws-newrelic-test] -- Terminate On Shutdown: false [aws-newrelic-test] -- Monitoring: false [aws-newrelic-test] -- EBS optimized: false [aws-newrelic-test] -- Assigning a public IP address in a VPC: false [aws-newrelic-test] Waiting for instance to become "ready"... [aws-newrelic-test] Waiting for SSH to become available... [aws-newrelic-test] Machine is booted and ready for use! [aws-newrelic-test] Running provisioner: ansible... PLAY [all] ******************************************************************** GATHERING FACTS *************************************************************** ok: [aws-newrelic-test] TASK: [newrelic | check if repository is installed] *************************** *snip* PLAY RECAP ******************************************************************** aws-newrelic-test : ok=9 changed=6 unreachable=0 failed=0
AWSインスタンス作成、起動、Ansible によるプロビジョニングが一気通貫で実行される。
暫くすると、New Relic の画面で EC2 サーバの情報が見られるようになった。
AWS課金には注意。
0 件のコメント:
コメントを投稿