いんふら女子めも

備忘録です

ALBのヘルスチェックに失敗するときに確認すること

概要 ALBのヘルスチェックにハマったので、そのときに見直すところのメモ。 構成 ALB ECS Nignxコンテナ Railsコンテナ 確認 ヘルスチェックのエンドポイントが間違っていないか ALBのターゲットグループに設定するヘルスチェックのエンドポイントが間違って…

aws firelensを使ってみる

aws

Firelensとは 去年ECSのログ出力先をカスタマイズできる「Firelens」機能がリリースされました。 それまでは、ECSコンテナのログはCloudwatchLogsか自前でFluendコンテナを立ててログ取集する仕組みを作るみたいなやり方だったと思います。 CloudwatchLogsは…

ECSコンテナインスタンスにSSMセッションマネージャを使えるようにする

aws

概要 今までECSのコンテナインスタンスの中に入ってDockerコンテナのデバッグするためには、踏み台サーバー経由して対象のインスタンスにsshする必要がありましたが、ECSエージェントのアップデートによりsshなし踏み台なしでコンテナインスタンスの中に入る…

ecs-cliを使ってみる

概要 awsのコマンドラインツールはaws-cliがありますが、ecsに特化したecs-cliを使えば、ローカルからクラスタやタスクの作成や簡単なモニタリングをすることが可能です。 そのecs-cliの導入とちょっと使ってみたときのメモです。 導入 macOSの場合 ecs-cli…

Route53を使う

aws

AWS勉強ログ。 Route53 ドメイン管理機能 Route53で新規のドメイン取得や更新ができる 権威DNS機能 ドメインとIPアドレスを変換するシステム ドメインを取得するとき 取得したいドメインを入力し、「チェック」する 入力したドメインが使えるかどうか確認で…

CloudFrontを使う

aws

AWS勉強ログ。今回は、CloudFrontです。 CloudFrontとは HTMLファイルやCSS、画像や動画などの静的コンテンツをキャッシュして、オリジンサーバーの代わりに配信するCDN(Contents Delivery Network)サービス AWSは世界中にエッジロケーションが120あり、利…

ECSのタスクロールとタスク実行ロール

aws

ECSのタスクロールとタスク実行ロールは何が違うのかのメモ タスクロール AWSの開発者ガイドには以下のように書かれている。 Amazon ECS タスク用の IAM ロールを使用すると、タスクのコンテナで使用できる IAM ロールを指定できます。 上記の文言からだと分…

ECSタスクのCPUとメモリをチューニングする

aws

ECSのtask定義のメモリとCPUをチューニングするときのメモ メモリ制限 メモリは「ハード制限」と「ソフト制限」があり、2つの値を設定するとき必ず「ハード制限>ソフト制限」である必要がある。 「ソフト制限」は、コンテナに予約するメモリ量(MiB) 「ハ…

awsコマンドの'ecr get-login'が非推奨になったので'ecr get-login-password'を試す

aws

概要 クラメソさんの記事を読んでaws ecr get-loginがv1では非推奨、v2では使えなくなっていることを知ったので、自分の環境どうだったか確認をかねて新しいコマンドecr get-login-passwordを使ってみました。 dev.classmethod.jp 自分の環境 自分のawsコマ…

ansible-playbookのwith_itemsが肥大化するのを防ぎたい

概要 Ansible-playbookの1つのタスクで複数のユーザーを作成したり、色んなパッケージをインストールしたいときに役立つのがループ処理です。その代表的なパラメータがwith_itemsではありますが、このパラメータもうまく使わないとwith_itemsに羅列するパラ…

ECRのDockerイメージをローカルにプルしてビルドする

aws

概要 デバッグするために、ECRにあげているDokcerイメージをローカルにプルしてビルドするまでのメモ。 環境 mac10.14.6 aws-vaultコマンドをインストールしている 手順 AWS ECRにログインする 下記コマンドを実行するとDokcerにログインするためのアクセス…

codebuildでyum installが失敗する

概要 今日の午後くらいから今まで動作に問題なかったcodebuildの失敗が連続していた。 原因を調査してみると、fedoraproject.orgの名前解決ができなくなっていた。fedraprojectのDNSサーバーが死んでる模様。同じような現象に遭遇している人もちらほらいるみ…

「AWS IAMのマニアックな話」を読んでIAMについて勉強した

aws

最近、IAMをどのように管理するのがベストなのか悩んでいたので「AWS IAMのマニアックな話」を読みました。全部で126ページの薄い本ではありますが、内容はIAMについて分かりやすく丁寧に書かれているし、チュートリアルもあるので手を動かしながら理解を深…

AmazonLinux2でyumが使えなくなったとき

aws

Amazon Linux2を使ってEC2インスタンスを立てていたのですが、突然yumが使えなくなり戸惑ったのでその対処法について書きます。 エラー内容 遭遇したエラーは下記。 yum updateしようとすると、HTTPエラーが発生しアクセス許可されていないと言われてしまい…

terraformに入門した(aws-vaultを使うver)

はじめに terraformに入門したので、環境構築及び基本操作をまとめました。 環境 CentOS7.6 Terraform0.12.13 aws-cli1.16.278 aws-vault4.7.1 手順 1. linuxbrewのインストール brewコマンドがないとaws-vaultをインストールできないので、事前に入れておき…

【めも】linuxbrewコマンドのインストールに失敗するときはアップデートすると良い

何をしていたのか 自分のLinux環境にaws-vaultを導入しようと思い、まずはlinuxbrewを公式HPを見てインストールしていたら失敗した。 実行していたコマンドは下記。 sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/instal…

RubyでZabbixアラートをSlackに通知する

概要 Rubyの勉強をかねて、今までシェルスクリプトでZabbixのアラート通知をしていたものをRubyで書き換えてみました。 設定方法とつまずいたところをまとめたいと思います。 環境 CentOS7.6 zabbix4.0 Ruby2.4 設定方法 slackのWebhook URLを取得する 通知…

Ansibleでインベントリに書いたIPアドレスを変数として使いたい②

以前、Ansibleでインベントリに書いたIPアドレスを使って、それを変数として使いたい場合の変数の書き方について記事を書きました。 akng-engineer.hatenablog.com しかし、上記の書き方だと他のパターンに適用することが難しいので、今回は別の書き方につい…

Ansibleでテンプレートエラーが出たときの対処法

概要 今回遭遇したエラーは、テンプレートに関する内容で以下の通り。 - Ansible error: template error while templating string missing end of comment tag. - Ansible error: template error while templating string expected token end of print state…

Ansibleでインベントリに書いたIPアドレスを変数として使いたい

概要 最近Ansibleを頻繁に使っていて、こういう使い方ないかなと思って調べたのでそのやり方を整理。 やりたいことは、「インベントリファイルにグループ別にIPアドレスを記載しているので、そのIPアドレスを変数として使いgroup_varsディレクトリ配下のグル…

Zabbixで1秒間隔の監視にしたらヒストリログの肥大化により1週間でディスクフルになった

概要 先日、Zabbixの監視間隔を1秒にしたらMySQLのバイナリファイルによってディスクフルになった話を書いた。 akng-engineer.hatenablog.com しかし、バイナリファイルの肥大化より気にしなければならなかったのは、Zabbixで収集したデータのヒストリ保存期…

【Zabbix】MySQLのバイナリファイルが肥大化してDBが立ち上がらなかった

概要 検証環境のZabbixサーバーがディスクフルでサービス停止していたため調べたところ、/data/mysql配下にmysql-bin-*ファイルが大量に作成されており、ディスク使用量が100%になっていた。なるほど。 原因 expire_logs_days設定していなかった? いや、し…

prometheus+garfanaで遊んでみるよ

この前Prometheusを初めて使ってみたので、復習を兼ねてPrometheusで取得したメトリクスをGrafanaで可視化してみたいと思います。 Prometheus? オープンソースの監視ツールです。 プル型なのでPrometehusサーバーが監視先サーバーに聞きまわり、監視メトリク…

Grafanaのトップ画面をユーザーグループごとに変えたい

Grafana便利だよね Grafana便利ですよね。最近はGrafanaを使って監視ダッシュボードの開発をメインにしているので、Grafana職人なのかなって思うくらい使っています。今回は、ユーザー(グループ)ごとに見せたいダッシュボードを変えたいときの実例について…

GrafanaのAPIを使ってみよう

API使って楽したい grafanaでGUI画面からぽちぽちデータソース追加したりダッシュボード作ったりするのも良いですが、ちょっと楽したいなと思ったときAPI使って自動化し作業負荷減らしたいですよね。 公式ドキュメントには、APIの使い方の詳細があまり書かれ…

ZabbixでCPUコアごとの使用率を出したい

Zabbix上ではデフォルトのテンプレート(Template OS Linux)で全CPUの使用率を求めるアイテムはデフォルトで入っていますが、CPUコアごとに出せるんだっけ?と思ったので調べました。 公式ドキュメントを見る まずは、公式ドキュメントをみてみます。 www.z…

【めも】csvファイルを良い感じに整形・結合して使いやすくしたい

何をしたいのか アイテム名と値が別々のcsvファイルに吐き出されているので、2つのファイルを整形し1つのファイルにします。sedコマンドでファイルの整形できるけど、アイテム名-値が横に並ぶように結合するときに使えるコマンドあったかなと思い調べたの…

Elasticsearchが立ち上がらないときの対処法

どんなエラーが発生したのか? Elasticsearchを起動させようとすると失敗する。 $ sudo systemctl start elasticsearch ● elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: …

Zabbixエージェントによる監視が有効にならないときの対処法

エラー内容 ZabbixのWebインターフェース画面を確認すると、登録したホストに以下のエラーが表示。 Get value from agent failed: cannot connect to [[IP_address]:10050]: [4] Interrupted system call 環境 Zabbix server3.0.3 Zabbix agent3.0.3 CentOS7…

ElasticsearchにjsonをインポートしてGrafanaで可視化したい

何をやったのか 今回は、コマンドを打って取得した情報をjson形式に変換してElasticsearchにデータを流し込みます。Elasticsearchにデータを格納するときは、Metricbeatを通常使っているのですが、Metricbeatでは取得できない情報もElasticsearchに投入しGra…