お題となるWebサービスを、決められたレギュレーションの中で限界まで高速化を図るチューニングバトル、ISUCON に New Relic は今回もスポンサーとしてサポートをさせて頂いております。本記事では ISUCON 11 の予選環境をAWSに構築した上、Infrastructure Agentを入れていきたいと思います。
ISUCONの環境を題材にさせて頂きますがAWSなどマネジードクラウドサービスへ Infrastructure Agentの導入を検討されている方も、導入のしやすさをご確認頂ける内容ですので是非ご参考にして頂ければと思います。
予選問題の参考実装の構成を踏まえますと、Infrastructure Agent、MySQL Integration、Logs Integrationなど関連機能を利用できます。今回はNew Relicを使ったことがない方でもお分かりやすい「Guided install」という方法で導入手順を解説していきます。
- ホスト単位あるいはプロセス単位でのCPU、メモリ、IOなどのメトリクス => Infrastructuer Agent
- MySQLの秒間クエリ数、接続数、スロークエリ数やインベントリ情報 => MySQL Integration
- ログの転送と分析 => Logs Integration
前提条件
New Relicのアカウント。
まだ作成していない場合は、New Relicアカウントを作成します。
アカウント作成自体は無料です。毎月データを100GBまで無料でご利用いただけます。詳細は上記ページをご覧ください。
AWSにISUCON11予選環境を構築
AWSへログインして、CloudFormationへアクセス。
リージョンに「東京」を選択して、「スタックの作成」ボタンをクリック。
githubより取得したcf.ymlの修正箇所は下記通り。修正したファイルをこのリポジトリで公開している。
BenchInstance:
Type: AWS::EC2::Instance
Properties:
# ここを修正
ImageId: ami-0796be4f4814fc3d5
InstanceType: c4.xlarge
略
QualifyInstance1:
Type: AWS::EC2::Instance
Properties:
# ここを修正
ImageId: ami-0796be4f4814fc3d5
InstanceType: c5.large
略
QualifyInstance2:
Type: AWS::EC2::Instance
Properties:
# ここを修正
ImageId: ami-0796be4f4814fc3d5
InstanceType: c5.large
略
QualifyInstance3:
Type: AWS::EC2::Instance
Properties:
# ここを修正
ImageId: ami-0796be4f4814fc3d5
InstanceType: c5.large
略
スタックの名前を指定して、自分の持っているKeyPairを指定してから、「次へ」ボタンをクリック。KeyPairを持っていない方は事前に作成してください。
それ以降の画面ではデフォルトのままで「次へ」ボタンを押す。
次に表示される画面も全てはデフォルトのままで、画面下にある「スタックの作成」ボタンをクリック。
作成中のスタックについて画面上では「CREATE_COMPLETE」と表示されると無事に作成完了の意味。
これでAWSを使ってISUCON11の予選環境を構築完了。
New Relic側の操作
ご自分のユーザ/パスワードでNew Relicへログイン。
表示された画面の右上にあるユーザのアイコン(#1の赤い枠線で囲まれた箇所)をクリック。
次に表示されるポップアップメニューの「Add more data」(#2の赤い枠線で囲まれた箇所)をクリック。
次の画面へ遷移される。赤い枠線で示している箇所「Guided install」をクリック。
アカウントの選択画面を表示される。ここでISUCON環境を入れたいアカウントを選択して「 Continue」ボタンをクリック。
今回はInfrastructure Agentを入れるため、次の画面に「Auto-discovery」をクリック。
今回題材としているISUCON11環境ではOSはUbuntuであるため、「Linux」をクリック。
次の画面に「Begin installation」をクリック。
インストール用コマンドを表示される画面に、右上の「Copy command」をクリックして、表示されたコマンドをコピー。
ISUCON11環境のホスト側の操作
ターミナルを開いて、 「ubuntu」というユーザ名でQualifyインスタンスへ接続した後、下記コマンドを実行。
sudo -i -u isucon
その後、先ほどNew Relic画面にコピーしたコマンドをペーストして、実行。
下記画面のように、表示されたInstallation summaryを確認して、問題なければ、インストールは完了。
New Relic側のデータ確認
<対象ホスト機の状況確認>
Navigation Menuにある「Infrastructure」→「Hosts」をクリック。
New Relic Infrastructure Agentの入れたホストをクリックして、下記画面を表示される。
該当ホストのCPU、メモリ、ストレージ、ネットワーク、ロード状況、Process一覧を一目瞭然。不必要なサービスを見つけたり、どのプロセスが一番リソースを使っているかを素早く把握し、改善のアクションへ移せる。
<OSなど確認>
OSなど情報も簡単に確認できる。Navigation Menuの「Infrastructure」→「Hosts(original)」をクリック。
次に遷移された画面に赤い枠線の囲まれた箇所をクリック。
ポップアップされた画面に、ホスト名「ip-192-168-0-11」をクリック。
該当ホストのメタ情報を表示される。
<DB状況確認>
該当画面のNavigationバーにある「Third-party services」をクリック。
次に表示される画面に「MySQL dashboard」をクリック。
SlowQueryの状況, Max connection数などを簡単に確認できる。
New Relic Infrastructure Agentの削除
ISUCON競技終わった後、New Relic Infrastructure agentを削除したい場合の対応方法を説明します。
今回お題材とさせていただいているISUCON11環境はubuntuであるため、下記コマンドを実行して削除します。
sudo apt-get remove newrelic-infra
agentの削除を正常に完了したら、下記画面のように表示される。
Linuxのバージョンによってアンインストールは違うコマンドを使う。
<Debian / Ubuntu>
sudo apt-get remove newrelic-infra
<Amazon Linux / Centos>
sudo yum remove newrelic-infra
ここまではNew Relic Infrastructure Agentの入れ方と削除の手順を解説しました。
初めてNew Relicをご利用される方でも数分で操作完了できますので、ぜひご自分で体験してみてください。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。