My Note

自己理解のためのブログ

AWS

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

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

Go製のツール ( MackerelCPUAlertTool ) をAnsibleでEC2インスタンスにデプロイする

目的 Goで作成したインフラツールをAnsibleを使ってサーバにデプロイしたときの方法をまとめる。 今回デプロイするGoツールは以前に作成した以下のブログのものを利用する。 yhidetoshi.hatenablog.com 実行方法 systemdでservice/timerを作成してmackerel-a…

AWSの正規ユーザIDを確認する方法

やったこと 正規ユーザーIDとは 確認 実行コマンド 実行結果 まとめ やったこと AWS S3の正規ユーザIDを確認する方法を記載します。 正規ユーザーIDとは 正規ユーザーIDとは 正規ユーザー ID は、79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd…

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

やったこと Terraformを利用してAWS環境を構築する。 今回は、VPCとNW周り(Subnet / RouteTable / NATGW / S3エンドポイント)をENVを3つの場合に分けて作成する。 Envはworkspaceを利用する。今回構築する環境は以下。 ■ 構築する構成図 (workspace=prod) te…

GoでAWSのAMIとSnapshotとLaunchConfigを自動削除するツールを作った

目的 削除ツールの作りと実行条件 GitHub ( ソースコード ) ターミナルで実行した結果 SSMパラメータのAMI-ID (削除しないAMI) Lambdaへのデプロイ手順 Lambdaに必要な設定 Lambdaでの環境変数値をセット Slack通知 GitHubにリリースする まとめ 目的 AWSでP…

GoでAWSのBilling情報をグラフ化するmackerel-pluginを作った

明けましておめでとうございます。2019年最初の記事です。 Mackerelの公式サイト 開発環境と実行環境 今回作ったmackerel-plugin-awsbillingのソースコードは以下 EC2のUbuntuサーバに設定 mackerel-agentを設定 Mackerelダッシュボードのグラフを確認 まと…

AWS LambdaでClamAVのスキャン結果をSlackに通知する

環境 CloudWatch Logsのログデータ Lambdaの設定 CloudWatch Logsのフィルタ Lambdaのソースコード ( slack_post.py ) Slackへの通知結果 まとめ 環境 AWS Lambda ランタイム: Python3.6 連携: CloudwatchLogs (Filter有) 環境変数: SLACK_WEBHOOK_URL webho…

Serverless Framework GoでLambda-Functionをデプロイする

Macにnpmをインストールする MacにServerlessFrameworkをインストールする デプロイしたLambdaの一部抜粋 実行結果 まとめ Macにnpmをインストールする $ brew install nodebrew $ mkdir -p ~/.nodebrew/src $ nodebrew install-binary latest $ nodebrew li…

AWSのCode3兄弟とAnsible+PackerでAMI作成までを自動化する

AWSのCI/CDサービス(CodePipeline/Deploy/Build)と構成管理ツールのAnsible + Packerを利用してEC2インスタンスのイメージを自動構築する。 コードはGitで管理するが今回はバージョニングを有効にしたS3に保存し、そのイベントをフックにインスタンスのイメ…

Route53の管理にRoadworkerを使う

Roadworkerとは セットアップ Roadworkerを使う まとめ 参考 Roadworkerとは rubyで作成されたRoute53をコマンドラインで管理することができるツール。 Route53のGitHub セットアップ IAMロールで権限を付与 or IAMキーを実行環境にセットする Roadworkerを…

AnsibleでSSMパラメータを管理する

AnsibleでSSMパラメータを管理する ssmパラメータに登録(Valueが平文の場合) ssmパラメータに登録(Valueを暗号化する場合) SecurityGroup-IDとSubnet-IDとIAMロールARNを動的にssmパラメータに登録する AnsibleでSSMパラメータを管理する ssmパラメータに登…

SecurityGroupの管理にPiculetを使う

Piculetとは セットアップ piculetを使う まとめ Piculetとは rubyで作成されたSecurityGroupをコマンドラインで管理することができるツール。 PiculetのGitHub セットアップ IAMロールで権限を付与 or IAMキーを実行環境にセットする piculetを使う 現在のS…

ore-awsというおれおれAWS-CLIツールをGoで作った

目的 活用したもの ツールを使うための準備 使い方(コマンドオプション) EC2 RDS ELB S3 Route53 Cloudwatch IAM おわりに 目的 AWSアカウント複数管理していると、個別にwebコンソールにログインするのが大変でwebコンソールでぽちぽちするのが手間だったり…

JavaScriptを勉強しながら独自のaws-cliツールを作ってみた

背景 AWS LambdaやGCPのCloud Functionでjavascriptにふれる機会が増えてきた javascriptを書いたことがほとんどなかったので、学習しながらaws-cliを作ってみようというのがきっかけ 開発環境 Mac node.js: v10.6.0 was-cliを実行できる環境が必要 自分用の…

Pythonを勉強しながらaws-cliツールを作ってみた

準備 コマンド コマンド help1 コマンド help2 EC2 AutoScaling RDS Route53 S3 参考 準備 localでaws-cliを実行できるようにする python 3系をインストール $ git clone https://github.com/yhidetoshi/python-awscli-tool $ pip install prettytable click…

運用ツールとしてGo言語を使ってAWSの起動設定とAMI数を返すツールを作った

背景 課題 実行環境 main.go 実行結果 背景 AWS環境でインフラCIとして、CodePipeline + CodeBuild + CodeDeployを使っている CodeDeployでBlue/Greenデプロイをしていると起動設定がどんどん増えていく CodeBuildでPackerを動かしており、AMIがどんどん増え…