ユニファ開発者ブログスマートフォン用の表示で見るユニファ開発者ブログユニファ株式会社システム開発部メンバーによるブログです。Prometheusおはこんばんちは。ユニファのインフラ担当すずきです。今年一本目のブログなんですが...途中で間違えてブログ消してしまって2回目書いてつらいです...気を取り直して本題いきます!!弊社ではサーバ等々の監視にprometheusを利用しようとしています。prometheusでは多くの情報を取得するためにいろいろなexporterを利用するのですが、それら1個ずつ起動したり、起動確認するのは面倒だなと考えていました。そこでECS+NLBを利用して各exporterの設定毎にDockerコンテナとして起動してしまえば楽じゃないかな?と思ったので今回はそのチャレンジしたことを記事にしています。ECSクラスターとタスクを設定とりあえずはじめにECSクラスターを作成します。ECSコンソールに入ってもらって、簡単なECSクラスターを作成します。リポジトリは不要なので一つ目の項目だけチェックします。(これはECSクラスターを1つも持ってない時に使える画面のはずなのですでに利用してる方はいい感じに...)しばらくするといろいろ作成され、ECSコンソールを見ると「default」クラスターが作成されます。中を覗くと「sample-webapp」サービスや「console-sample-app-static」タスクなどが登録されていることが確認できると思います。続いてタスク定義を登録します。今回タスク定義として登録するexporterはprometheus公式のblackbox_exporterにします。DockerHubにイメージもあったのでタスク定義にはそれを利用します。タスク定義はECSコンソールのタスク定義から設定します。タスク定義は設定する内容は最低限の下記の項目だけにします。9115/9115/tcp入力が完了したらタスクを作成してください。タスク定義に「blackbox」という項目が追加されます。ためにし項目名をクリックし「blackbox」の画面に行っていただき、「タスクの実行」をしてみます。実行したあとは、「default」クラスターのタスクタブを覗いてもらうと起動できてることが確認できるかと思います。(ステータスがRUNNINGになっていると正常起動できています。)お試しでcurlで情報を取ってみると以下のような結果が返ってきます。0~~~~~~~~~~~~だらだらとでます。タスクの詳細画面を出し、画面下部のコンテナの情報を参照してもらうと表示されています。IPとかはサンプルでつくっただけなので既に存在していないのでお気になさらず。確認等できたら画面開いたついでに画面右上の停止を押して、テスト起動していたタスクを終了させます。NLBの作成クラスターとタスクは作成したのでNLBを作成します。EC2コンソールのロードバランサーの項目から作成します。balancer」を選択します。これらだけ設定し後はデフォルトで良いです。(NLBで受け付けるサービスなどを増やす場合はこのリスナーポートも合わせて増やしていく必要があります。)設定したら次へ次へとしてもらいNLBを作成してください。サービスの登録つづいてサービスの登録をしていきます。先程作成したクラスタに「sample-webapp」というサービスがあったかと思いますが、それと同じように「blackbox」タスク定義もサービス化します。サービス化することで、ECSクラスターに何個タスクを実行しておくか、起動したタスクがLBに紐づくかなどなど起動させるタスクの状態を設定しておけます。サービスの登録はECSコンソールから行います。最初に作成した「default」クラスターにサービスを登録するので、「default」クラスターの画面に入りサービスの「作成」から登録していきます。サービスの登録画面では、どのサービスにどのタスク定義をどれだけ動かすかなど設定します。今回は「default」クラスターの「blackbox:1」(:1はタスク定義のリビジョン番号なので今回は:1のはず)のタスク定義、そして実行するタスクの数を「1」としています。入力できたら次に進んでいただきLBの設定をします。Balancer」を選択します。NLBの利用を選ぶと項目が追加で現れますが、今回は自動で入力された項目を利用します。負荷分散用のコンテナ欄の「ELBの追加」をクリックすると更に項目が増えます。リスナーポートの部分でNLBで作成したターゲットグループ名+リスナーポートである「blackbox:9115」を選んでください。以上で必要な設定は完了です。「default」クラスターのサービスを確認すると以下のように登録され、タスクも起動していることが確認できます。サービスの詳細を見ると設定したNLBのターゲットグループ名が見えます。クリックするとターゲットグループへ飛びECSクラスターのインスタンスがターゲットグループに登録されていることが確認できます。ターゲットグループにインスタンスが登録されていない時は、LBのリスナーポートの設定などポート周りの設定が食い違ってる可能性が高いので一度確認して見てください。今度はNLBに向かってリクエストを投げてみて、期待通りの結果が返ってくることを確認します。0~~~~~~~~~~~~だらだらとでます以上で、ECS+NLBの設定の完了です。ターゲットグループにインスタンス登録されないーって詰まってましたが一から作り治すとあっさり解決しました。思った動作しなかったらはじめから作り直しなどしてもらったらと思います。以上、コメント等あればお気軽にお願いします。iOSエンジニアをやっていますわたなべと申します。現...2019-04-23スクラムとは何なのか?はじめまして。Fargate)で運用する際のログ設定で工夫した点こんにちは、Webエンジニアの本間です。学習済みモデルを使って顔画像のクラスタリングを行うお久しぶりになります、iOSエンジニアのしだです。Detection月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。