Tagbangers Blog

AWS

Terraform の RDS のブルー/グリーンデプロイを試してみました

TLDR Terraform でやるとブルー/グリーンデプロイのためのインスタンスの作成や古いインスタンスの削除までやってくれます! 背景 RDS の更新でダウンタイムを最初限にしたかったので、ブルー/グリーンデプロイを検討しました。 ただし、AWS のコンソールでポチポチする作業は怖いので Terraform でできないのかなって調べたらまさか対応してくれます! https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance#blue_green_update blue_green...

ローカルマシンから環境を汚さず RDS に接続する

Conclusion SSM を用いて RDS へのポートフォワーディングを行い、Docker 経由でコマンドを叩く Motivation AWS RDS はマネージドなリレーショナルデータベースサービスです Amazon RDS(マネージドリレーショナルデータベース)| AWS 一般的にリソースはプライベートサブネット上に作成するためローカルマシンから直接クライアントコマンドを用いて接続することはできません そこで多くの場合は RDS へアクセスできる IAM ロールを持つ踏み台 EC2 サーバを立ててセッションマネージャ等で RDS に接続します ただし「データのダンプもしくはリストアを行...

Cost Anomaly Detection で検知した異常コストを Slack へ通知するよう設定してみた

Cost Anomaly Detection は、いくつか簡単な設定をするだけで異常なコストが発生していないか監視することができ、任意のしきい値でアラート通知を受け取ることができる機能のようです。 今回は Cost Anomaly Detection を使用し、コストモニターが異常を検出したときにAmazon SNS によって指定した Slack チャンネルへ通知するように設定したところまでを紹介します。 運用した結果については別途ご紹介したいと思っています。 設定してみた 全体の流れは以下の通りです。 Slack API を作成 Lambda 関数を作成 SNS トピックを作成 コストモニタ...

AWS Elasticsearch ServiceのCustom Packageの導入方法と通常版 Elasticsearchとの違い

この記事について AWS ManagedのElasticsearchでCustom PackageやUser Dictionaryが使用したかったので、試してみると通常のElasticsearchとの差異があったので気になり何が実行可能でなにが実行かのうでないのかをはっきさせたく検証を行いました。 ターゲット層はDocker等でElasticsearchを使用していてAWS ManagedのElasticsearchにMigrationしたいかたやまたあたらしくElasticsearchを使う方にも有益な情報だと思います。 Elasticsearchの準備 Elasticsearchを作成する...

CloudWatch Logs のロググループ名を awscli で取得する

今回は小ネタです。 Elastic Beanstalk の検証作業をする中で、不要な Log groups が大量にできてしまったため、整理していました。 cli で消したくなったので、aws logs delete-log-group で削除しようとしたのですが、--log-group-name を指定するためにロググループ名を特定する必要があります。 logs のオプションを確認するも、ロググループ名の一覧の確認がなさそうだったので?  (あればそっと教えていただきたいです...) describe-log-groups と jq を使用して確認しました。 コマンド less に渡してざっ...

EKS クラスターのバージョンアップに失敗した(1.15 → 1.17)

はじめに Kubernetes はおよそ 3 か月ごとにリリースされており、各マイナーバージョンは最初にリリースされてから約 9 か月間サポートされます。 また、現在(2020/08/13) Amazon EKS で新しいクラスターで利用する際には以下のバージョンで作成できます。 1.17.6 1.16.8 1.15.11 AWSとしても、クラスターをタイムリーに更新することをお勧めしているのでバージョンアップしようと思います。 Kubernetes 1.16 にアップグレードにするための前提条件 を確認し特に問題なさそうなので、1.15 → 1.17 でバージョンアップします。(といっても飛...

Amazon Aurora MySQL でのフェイルオーバーを利用したインスタンスの切り替え

こんにちは!山﨑です! Amazon Aurora MySQL を利用されている場合に、自発的にフェイルオーバーを行う事で、 RDSに接続できない時間を抑えつつインスタンスの切り替えをする方法を試したのでメモです! まずは、インスタンスではなくクラスター側の DB 識別子 を選択し、「アクション」→「リーダーの追加」 追加する リードレプリカの仕様を入力していきます。 リードレプリカが作成されたら、プライマリに設定されているインスタンスを選択し、 「アクション」→「フェイルオーバー」を選択すると、「ステータス」欄が「Failing-over」という青字表記になります。 今回は、体感で 20 秒...

awsp を使って awscli で使用する profile を手軽に切り替える

今日はコマンドラインでの作業効率をあげるための便利ツール、awsp の紹介です。 タグバンではこの頃、AWSのログイン方法を、AWS Single Sign-On に統一しました。 ログイン先としては、AWS Organizations で管理しているお客さんのアカウントや各社員に配布している検証用(sandbox)アカウントです。 管理者目線では、認証の有効期限の設定や、ユーザーの権限の制御を一元管理できて便利です。 一方で利用者目線としては SSO で認証後に、以下のような方法で複数のアカウントを切り替えて作業する際には手間に感じることもありました。 作業シェルごとに使用するアカウントの環...

Elasticsearch Service へのリクエストがタイムアウトする問題を特定する

概要 この記事では、Elasticsearch Service を使用している Webアプリケーションにて発生した、Elasticsearch へのリクエストを完了できずタイムアウトする問題の原因を特定するために、CloudWatch Logs へスローログをパブリッシュするよう設定したことを紹介します。 問題 Web アプリケーションにて、データ照会画面や検索機能など、Elasticsearch Service へリクエストが発生する機能において、HTTP 502: Bad Gateway が発生しました。 Web アプリケーションログには、Elasticsearch への POST、または...

AWS Cloud9 が使えるものなのか試したい

なぜ Cloud IDE を使いたいのか。 コロナによる自粛のため、タグバンガーズでもリモートワークを行っています。 リモートワークでの問題の一つにコミュニケーションの取りづらさがあります。 隣にいるのとはやはり違いますよね。。 そこじゃなくて”ここ”みたいなことを画面越しにやるのは結構面倒です。 共同編集が出来る Cloud IDE であればその問題も多少軽減されるのでは? ということで触ってみて使えるのかどうか見てみましょう。 AWS Cloud9 Cloud9 は東京リージョンにも対応しています。 2019年4月には対応していたので1年以上前ですね。 Getting Started があ...