My Note

自己理解のためのブログ

Mackerelのノベルティをいただきました

先日、Mackerelアンバサダーを拝命したので、はてなさんからノベルティをいただきました! はてなさん、ありがとうございます!!(歓喜) yhidetoshi.hatenablog.com

Mackerelアンバサダーを拝命しました!

この度、嬉しいことにMackerelアンバサダーを拝命しました!! Mackerelアンバサダーとは? mackerel.io Mackerelとの出会いとツール等作成のきっかけ Mackerelとの出会いは、前職の先輩社員に "よさそうな監視サービスあるけど話聞いてみる??" というのが…

GuardDutyの結果をLambda ( Go ) でSlackに通知する

はじめに Slack通知を設定 アーキテクチャ 通知結果 CloudWatchの設定 Lambda関数 ServerlessFrameworkを利用したデプロイ まとめ はじめに AWSのセキュリティ対策のひとつにGuardDutyというサービスがあります。 aws.amazon.com GuardDuty はインテリジェン…

AWS アベイラビリティゾーン名とAZ-IDのマッピングを確認する

AWSの大障害がありアベイラビリティーゾーン名とAZ-IDのマッピングを確認した事があったので備忘録的に書きます。 ■ aws-cli docs.aws.amazon.com aws-cliを利用します。バージョンが1.15系だと ZoneId が取得できなかったので、アップデートしました。 $ aw…

Goの文法学習 ( 自分用Memoで適宜更新 )

Go

Map mapを作成 mapリテラルをつくる 値チェック key/valueを削除 key/valueの全取得と要素数の取得 error Slice (スライス) make()関数 append()関数 copy関数 構造体/JSON 構造体の初期化 構造体配列 ネスト構造体 ネスト構造の実用例 Marshalを使う Unmars…

S3バケットにアクセス制限を設定する

S3バケットに対してアクセス制限を実施したのでその備忘録です。 以下の接続元を除き(だけを許可)、それら以外はトラフィックを拒否する。という設定をします。 VPC内のリソース (aws:sourceVpce) VPCエンドポイントを指定 特定のGIP (aws:SourceIp) ■ バ…

CodeBuildの実行結果をLambda(Go)でSlackに通知する

目的 アーキテクチャについて 実装について Lambda関数とCloudWatchEventの作成 Lambda関数の実装 Slackの通知結果 デプロイ方法 まとめ 目的 AWS CodeBuildの実行結果をLambdaを使ってSlackに通知するようにしました。 前回のブログで、CodeBuildでMackerel…

Mackerel監視設定の管理をServerlessで自動化

目的 アーキテクチャについて 実装について Lambda ( Go ) APIGateway Mackerel LambdaのGoコード CodeBuild 機密情報の扱い Lambdaで作成した環境変数を利用 デプロイについて まとめ 目的 mackerelの監視設定を作成、削除、更新するときに mkrコマンドを利…

MackerelのCPU・Memoryアラート発生時にそれぞれの高負荷なプロセスをSlackに通知するツール ( 改修とAnsibleデプロイ )

修正・追加したこと 1. mackerelのapi-keyをsystemで環境変数から参照 3. Ansibleでツールを設定する tasks templates vars files まとめ 以前に以下の記事を作成した。この記事の内容からツールをアップデートした事について書きます。 yhidetoshi.hatenabl…

mackerel-client-go (OSS) にdelete user apiをコミットした

mackerel-client-goにuser delete userするapiが実装されていなかったので実装してからPull Requestを出した。 1営業日以内にレビューしていただき無事にマージされました!!(レビューしてくださった方に感謝です) mackerel-client-goや自作しているCLIツ…

mackerel-client-go (OSS) にコミットするためにやったことの備忘録

コミットするまでにやったことについて PRを出すまでの流れ CONTRIBUTION まとめ Mackerelを仕事とプライベートで利用しているのでちょっとした自分用のCLIツールが欲しくなりました。(mkrという公式のCLIは提供されています) CLIの実装はGo + mackerel-clie…

ore-mkrというMackerelのCLIツールを作った

Mackerelの運用を少し楽にするためにGoで自作運用ツールを作ってみた。ホストのステータスを変更したり、監視設定がどうなっているかの確認など、ちょっとした日々の運用作業をCLIでかつコマンドツールのPecoを組み合わせるとターミナルで楽に行えるのではと…

TerraformでAWSの環境構築 ( IAM-Role/Policy )

やったこと 実行環境 IAMロールを作成する Terraformのコード全体 追加 (IAMポリシーの作成) コード全体 まとめ やったこと Terraformを利用してAWS環境のIAMロールを作成する。 IAM-Role lambda-functionに付与するロール 信頼されたエンティティ(ID プロバ…

MackerelのCPU・Memoryアラート発生時にそれぞれの高負荷なプロセスをSlackに通知するツールを作った

やったこと ソースコード ツールについて Usage やったこと 以前に書いたブログの改良版。 yhidetoshi.hatenablog.com 前回は、CPUアラートが発生している場合にSlackに負荷の高いプロセスリストをSlackに投稿していた。今回は、メモリアラートが発生した場…

TerraformでAWSの環境構築 ( Lambda )

やったこと 実行環境 lambda-functionをつくる Terraformのコード全体 まとめ やったこと Terraformを利用してAWS環境のlambda-functionを作成する。 lambda-functionの設定 ラインタイム: go1.x ハンドラー: main 環境変数をセット Goのコードをアップロー…

TerraformでAWSの環境構築 ( S3 )

やったこと S3バケットを作成する バージョニングを設定 デフォルト暗号化 ライフサイクルを設定 ブロックパブリックアクセス バケットポリシーを設定 ( dataリソースを使う ) バケットポリシーを設定 ( JSONを使う ) Terraformのコード全体 まとめ やったこ…

Terraform ( v0.12.0 ) でAWSの環境構築 ( Redis )

やったこと yhidetoshi.hatenablog.com で書いたコードをTerraformのバージョンを0.11.14から0.12.0アップデートして書き直してみた。Redisクラスターを作成する説明については上記リンクのブログに記載しています。 ■ 構築する構成図 (workspace=prod) 変更…

Terraform ( v0.12.0 ) でSSMパラメータと連携してAurora ( MySQL ) を構築する

やったこと yhidetoshi.hatenablog.com で書いたコードをTerraformのバージョンを0.11.14から0.12.0アップデートして書き直してみた。 RDSクラスターを作成する説明については上記リンクのブログに記載しています。 ■ 構築する構成図 (workspace=prod) terra…

Terraform ( v0.12.0 ) でAWSの環境構築 ( VPC・NW )

やったこと 変更点 Terraformのコード全体 まとめ やったこと yhidetoshi.hatenablog.com で書いたコードをTerraformのバージョンを0.11.14から0.12.0アップデートして書き直してみた。 今回構築する環境は以下です。 ■ 構築する構成図 (workspace=prod) 変…

Terraform ( v0.11.14 ) でAWSの環境構築 (Redis)

やったこと Redisクラスタを構築するために必要な情報を取得する Envによってリソースを変更する コード全体 まとめ やったこと TerraformでAWSのElastiCache( redis ) を構築する vpc_id はssmパラメータから取得 subnet_id はTerraformの機能でフィルタ ( …

Terraform ( v0.11.14 ) でSSMパラメータと連携してAurora ( MySQL ) を構築する

やったこと TerraformのSSMパラメータについて vpc-id / subnet-id / db-passowd / securit-group-id を参照してサブネットIDを取得する Terraformのコード全体 まとめ やったこと yhidetoshi.hatenablog.com の以前に書いたブログ ( Terraformのコードの改…

TerraformのCI環境をGitHubとCodePipeline/CodeBuildで構築する

やったこと 環境 CodePipelineのフロー CodeBuildでの処理内容を定義する ssmパラメータでAPIの鍵情報を管理する tfstate-fileの保存先をS3に設定する やったこと Terraformのコーディングに集中するため、複数人で作業するためにTerraformの実行環境(CI)をA…

Goでスクレイピングするためにgoqueryを使い、Yahoo路線情報の遅延情報を取得してみる

やったこと goqueryについて Yahoo路線運行情報をスクレイピングする コードを読む Yahoo路線情報の遅延情報を取得する 参考 やったこと Goのプログラミング学習の一環としてスクレイピングするためにgoquery使ってみた。 goqueryについて GoDoc godoc.org G…

Google Cloudのcloud-functionでGoツールをcloud-schedulerとcloud-pub/subと連携して定期実行させる ( NatureRemo値の投稿させた場合の例 )

やったこと cloud-pub/subとcloud-schedulerを作成する ソースコード ( GitHub ) cloud-functionをにデプロイする まとめ やったこと 前回のブログでやったことを今回は、Lambda実行の部分をGoogle Cloudのcloud functionで実行させるようにした。 yhidetosh…

Go1.11から導入されたModulesを試す

Go

Goバージョン1.11からモジュール対応モードが導入された。そこで理解するために一度使ってみる。 $ mkdir go-mod-test $ cd go-mod-test $ cat hello.go package main import ( "fmt" "rsc.io/quote" ) func main() { fmt.Println(quote.Hello()) } $ export…

AWS Lambda ( Go )でNatureRemoのセンサー情報をMackerelで可視化・監視して、アラートをLINEに通知してみた

やったこと ソースコード ( GitHub ) NatureRemoについて まずはAPI ( curl ) でデバイスのセンサー情報を取得する Goでデバイスのセンサー情報を取得する Mackerelにカスタムメトリクスを投稿する AWS LambdaにGoコードをデプロイしてMackerelにデータを投…

AWS LambdaでGoツールを作成したときにタイムゾーンに嵌った

やったこと AWS Lambdaはap-northeast-1(東京リージョン)でLambdaを作成してもタイムゾーンはUTCだった。 Go( Lambda )で現在時刻を利用する場合に参照するために備忘録的に残します。 Lambdaのタイムゾーンを東京にする 環境変数にセットする KEY: TZ VALUE…

GoでnatureRemoのAPIレスポンス ( JSON ) をパースする

やったこと NatureRemoのAPIを実行する GoでJSON結果をパースする JSONをデコードする方法 ソースコード全体 ( GitHub ) 参考 やったこと GoでNatureRemoのAPIレスポンス結果をパースしたときの備忘録です。 natureRemoのAPIを叩き、レスポンス結果の気温、…

Go ( mackerel-client-go ) を利用してMackerelにカスタムメトリクスをPostする

やったこと mackerel-client-goについて Mackerelダッシュボードにサービス名を指定してサービスメトリックに投稿する mackerelにメトリクスをPostするコード 実行結果 MackerelダッシュボードにホストIDを指定してメトリクスを投稿する まとめ やったこと G…

MackerelCheckAutoRetirementFailツールを作った

やったこと 実装 GitHub ( ソースコード ) 実行方法 やったこと mackerelのauto-retirementに失敗し、ホストリストに存在するがメトリクスを取得できていないインスタンスを検出して通知させる 実装 ■ mackerel-client-goを利用 github.com 登録されて5分以…