AWS

AWS ELBの504ステータスのGateway Timeoutと格闘した話(最終的にALBで直った)

AWS

ELBのメトリクスのステータスにはバックエンドEC2が返したステータス(HTTPCode_Backend_XXX)と、ELB自身のステータス(HTTPCode_ELB_5XX)があります。 ELB自身のステータスコードの中には504というエラーコードがあります。このエラーと格闘した話を書きます…

AMIから構築したEC2は最初EBSが遅い、プレウォーミングが必要

AWS

EC2をAMIから構築したところ、ディスク(EBS)が遅い。CloudWatchでもキュー長が増加してしまっていました。 問い合わせたところ、AMI からEC2インスタンスを作成した場合、各 EBSボリュームは スナップショットからリストアした際と同様、データは S3 がダウ…

AWS EC2のタグを関連するEBSとENIにコピーするスクリプト

AWS

結構前に一回実行用に作ったものだけど、最近使う機会出たのでここにもメモ。 #!/usr/bin/env ruby require 'aws-sdk' require 'pp' region = 'ap-northeast-1' cred = Aws::SharedCredentials.new Aws.use_bundled_cert! cli = Aws::EC2::Client.new(creden…

AWS ALB(Application Load Balancer)のアクセスログをFluentdにInputする

AWS

AWS ELBのログをFluentd(td-agent)で集めて集計していました。最近、いくつかALBを使うサービスが出てきました。 このALBですが、 たぶん ALB(Application Load Balancer) が正式名称だと思っているのですが、たまに Elastic Load Balancing Version 2 と書…

EC2とEIPで冗長構成のApache Load Balancerを構築する(Pacemaker)

ELBはオートスケールで可用性も高く、ミドルウェアの心配しないでいいので便利なのですが、IP固定できないなど課題があるのと、障害時の調査がブラックボックスすぎて大変なため、Pacemakerを利用して冗長化構成のLoadBalancerを構築してみました。 CDPで言…

Pacemakerでフェールオーバー時にAmazon SNSに通知するResource Agent書いてみた

Pacemaker/Corosyncでクラスタ構築していたのですが、フェイルオーバーしてしまった時には通知が欲しいものです。 Pacemakerをインストールすると、Failover時にメール通知するMailTo というResource Agentがデフォルトでインストールされます。 resource-ag…

GoogleドキュメントスプレッドシートにAWS EC2一覧を自動作成する

AWS

AWS Management Consoleはとても良く出来ていて、管理資料なんか無くても良いくらいです。 Windows使うことも無くなり、EXCEL開く回数も激減したのですが、それでもEXCELと一緒に社会人としての人生を生きてきているので、どうしてもあの表形式から離れられ…

タグをキーにしてEC2インスタンスのCSV形式一覧を抽出するワンライナー

AWS

Tipsだけど忘れないように。 抽出したい条件に合わせて --arg TKey "Stack" と --arg TValue "Production" を変えて実行します。 例えば以下のような条件の場合、 Key Value Stack Production こんな感じのワンライナーになります。 aws ec2 describe-instan…

AWS ELB配下のApache Http Server推奨設定のAWS公式情報

AWSの公式情報探していてググっても出ないと思っていたら英語で見つかりました。 めもめも。 Apacheの設定情報(※必ず英語に切り替えて読む) Use Apache as a Back-End Server for ELB 設定項目 値 Timeout 120 KeepAlive On KeepAliveTimeout 120 MaxKeepAli…

AWS ALB(Application Load Balancer)用のMuninプラグイン作ってみた

CloudWatchでも確認できるのですが、やはり集中管理できていると便利な場面も多くMunin用のプラグイン作りました。ELBからほぼ流用できるかと思いきや調整が必要でした。 yomon.hatenablog.com グラフとメトリクス洗い出し 関連ファイル一覧 設定ファイル プ…

AWS ELBのログをFluentd+Solr+Bananaのダッシュボードで可視化してみた

AWS ELB(最近Classic Load Balancersに名前変更になりましたね)のログをFluentd+Solr+Bananaで可視化してみました。 基本はこちらの記事の構成ですが、Solrだけバージョン上がってSolrの6.2を利用しています。 yomon.hatenablog.com Fluentdプラグイン Fluen…

AWS ELBログをFluentd+Elasticsearch+Kibanaでグラフ化する

AWS

構成 Elasticsearchインストール 稼働確認 Fluentdインストール Elasticsearchとの連携プラグイン AWS ELBとの連携プラグイン プラグイン設定 fluentd動作確認 Kibana導入 参考URL Elasticsearch API 一覧 利用したプラグイン 構成 ソフトウェア バージョン …

NagiosでAWS障害情報(AWS Service Health Dashboard)を監視する

AWSの障害情報はAWS Service Health Dashboardにて公開されています。この情報をNagiosに連携して監視する方法です。 Nagiosプラグイン RSSのURLを取得 監視設定例 監視画面イメージ Nagiosプラグイン rubyでPlugin作成します。こちらのスクリプトを改造して…

ELBをCloudwatch経由で自作Muninプラグインで監視モニタリングする

こちらの記事でRDSのMuininプラグイン作ったので流用してELBも作りました。RequestCount何かは5分間の合計になってしまい大ざっぱなグラフになってしまうのが少し微妙ですが。 yomon.hatenablog.com 前提 Rubyスクリプト Pluginインストール スクリプトイン…

AMIからEC2立ち上げしてタグ付けまでするbashスクリプト

AWS

題名の通りです。シンプルですが。 前提 JSON扱うので環境に応じてjqが実行できる環境が必要です。 https://stedolan.github.io/jq/download/ MacならHomebrewでインストールも可能です。 brew install jq スクリプト #EC2作成関連の変数 PRIVATE_IP=172.22.…

RDS監視をMunin標準のMySQLプラグイン(mysql_)を修正して実装する

以下の記事でRDSをCloudWatch経由でMunin監視する方法について書きましたが、標準Pluginのmysql2(mysql_)で監視する方法について書きます。 yomon.hatenablog.com 標準プラグインの修正 設定ファイルに接続設定追加 プラグインインストール(シンボリックリ…

RDSをCloudwatch経由で自作Muninプラグインで監視モニタリングする

RDSのmuninでのモニタリングを実装しました。以下のURLを参考にしました。 tech.itandi.co.jp 変更点は以下の通り。 aws-sdkをVersion 2に変更 変数を設定ファイルに外出し ちなみに、標準プラグインを利用したい場合は以下の記事に書きました。 yomon.haten…

AWS EC2からOVA/VMDK方式でExportしてVMware ESXiで立ち上げる手順

EC2上にアップロードしたインスタンスをVMWare ESXiにダウンロードして利用します。 EC2 CLIのインストール Export先のS3バケット作成 Export実行(EC2 Instance -> S3) S3からOVAをローカルにダウンロード OVAをVMXに変換 OvfToolの準備 OVAをVMXに変換 簡易…

インスタンスに紐付かないEBS一覧をSlackに通知

Tipsです利用していないEBSの費用を節約するために、インスタンスに紐付いていないEBSの一覧を取得して、Slackに飛ばします。スクリプトはrubyで書いてます。 EBS一覧の取得 Slackに飛ばす EBS一覧の取得 まずはEBSの一覧取得から。 必要なGemをインストール…

Route53を内部DNSに使う手順と基本的な挙動の整理

AWSのAmazon Route53で内部DNS(Private Hosted Zone for Amazon VPC)を使い始めたので、挙動を整理してみました。 Route53の内部DNS設定 設定前の確認 DHCPでDNS設定配信 ドメイン名 ドメインネームサーバー EC2でDHCP設定取得 Route53の内部DNS設定 Route53…

EXCELでAWSタグ管理する CSV形式アップロード・ダウンロード用Rubyスクリプト

EXCELを使ってAWSのタグを管理するツールです。と言ってもCSVでExport/Importするだけですが。 事前準備1 AWS SDK for Rubyインストール 事前準備2 アクセスキーの準備 Windowsの場合 Linux/Macの場合 使い方 ソースコード get-awstags-to-csv.rb set-awstag…

Windows環境のでAWS SDK for Rubyを使う時のSSL_connectエラーの対応

Linux上でAWS SDK for Rubyを使って開発したRubyスクリプトをWindowsで動かそうとしたところ、SSL_connectのエラーが出てハマったので、対応メモです。 例えばこんな感じのスクリプトを実行します。 require 'aws-sdk-core' cred = Aws::SharedCredentials.n…

PowerShellからAWSタグを登録・設定する

AWS

PowerShellを使ってAWSのタグを登録したい場合はハッシュテーブルで渡すとシンプルです。こんな感じです。 PS>New-EC2Tag -Resource i-xxxxxxxx -Region ap-northeast-1 -Tag @{Key="MyTag";Value="MyValue"} 複数のタグを登録したい場合はこのような感じ。 …

12桁のAWSアカウントIDをPowerShellで取得する

取得するためのCmdletが見つからなかったので、やり方を模索してみました。 メタデータのIAM情報から取得してみる。(正規表現) PS>(Invoke-WebRequest "http://169.254.169.254/latest/meta-data/iam/info").Content -match "arn:.*:.*:.*:[0-9]{12}:.*" |…

AWS Tools for PowerShellで別アカウントの処理を実行する(Cross Account)

EC2からAWS Tools for PowerShellを利用する際に、クロスアカウントアクセスロールを利用して別のAWSアカウントの操作をする方法を書いていきます。具体的には、 アカウントAのAWSの情報を、 アカウントBのEC2上で実行するPowerShellから、 AWS Tools for Po…

Proxy経由でAWS Tools for PowerShellを利用する時にひっかかった点

プロキシは正しく設定されていて、EC2にも正しいロールが設定されている。にも関わらず以下のようなメッセージでAWSのコマンドレットが失敗してしまう。認証がうまくいっていないようです。 No credentials specified or obtained from persisted/shell defa…

スマホを機種変してAWSのMFAログオンできなくなった時の対応

AWS

先日、iPhoneを機種変したのですがGoogle Authenticatorの設定を移行し損ねたまま、古いiPhoneを初期化してしまいました。AWSのMFAにもこのデバイスを利用していたので、AWSにルートアカウントでログオンできなくなってしまいました。 対応 MFAデバイスの認…

AWS 認定ソリューションアーキテクト プロフェッショナルに合格したので対策と勉強方を公開

AWS 認定ソリューションアーキテクト – プロフェッショナル(Certified AWS Solution Architect Professional)に合格してきました。勉強方法などの試験対策について書いていきたいと思います。 勉強時間 勉強方法 サンプル問題 模擬試験受験 模擬試験分析 本…

AWSにOpenAMを使ってSAMLでSSOしてみた

AWSマネジメントコンソールへのSAML SSOを試してみたかったので、手元にあったOpenAMとSSOをIdPとして利用してSSOしてみました。 目次 目次 SAMLメタデータ取得 AWSのメタデータ取得URL OpenAMのメタデータ取得URL SAMLメタデータインポート AWSにOpenAMのメ…

【対策・勉強方法】AWS 認定ソリューションアーキテクト アソシエイトに合格してきました

AWS 認定ソリューションアーキテクト – アソシエイト(Certified AWS Solution Architect Associate)に合格してきました。勉強方法などの試験対策について書いていきたいと思います。 動機 AWSに関連するプロジェクトへの参画が決まったので、復習を兼ねて認…