AWS
クロスアカウントを使うことがあったのと、そろそろv2をちゃんと使わないとなということでaws-sdk-go-v2を使ってassume roleする方法を調べました。EC2のDescribeInstancesを呼んでインスタンスリストを出すだけのサンプルを実装しています。コード全体はこ…
Aurora MySQLでReaderへの反映が遅延した場合の挙動をテストするために遅延発生方法を調べたのでメモ。Aurora 2.10.3 (MySQL5.7互換)で行いました。 Fault Injection Fault InjectionのReplica Failureを使うことで任意の時間レプリケーションを遅延させるこ…
最近はECS周りにecspressoを使うようになり、その流れで煩雑だったECS ScheduledTaskの管理もecscheduleを使い始めました。そして見事にオペミスをやらかしたので、冬休みの課題がてら防止策を実装してプルリク出してマージされました。 github.com 背景 先…
先日、稼働中のauroraにRDS MySQLからデータをレプリケーションして切り替える*1ことでデータベースを統合するタスクを進めていました。しかし、レプリケーションを開始すると、Slave_IO_Running: No,Slave_SQL_Running: Yesの状態で止まってしまい、レプリ…
本格的にterraformを使い始めて*1、速攻でやらかしたのでメモ。terraform planで差分を確認していましたが、見事に見逃して認識できてない差分を適用してしまいました。 terraform planで差分が見れるのですが、+ -の行だけを見ていて、->で表示されている同…
前回コマンドベースで書いたこの記事の変更を行いやすくするrnsdコマンドを作りました。 reiki4040.hatenablog.com rnsd github.com 単純にリスト表示とTTL変更を行うだけのコマンドです。AWSコマンドではTTLの変更でJSON指定したり面倒なので、シンプルに変…
ECSのServiceを作成する際に、Service Discoveryを追加することができます。これはServiceのアクセス先をELBを使わずにDNSのSRVレコードで知る仕組みです。AWSコンソールで作ると強制的にTTL300秒で作成され、Service作成後にTTLを変更しようとすると、AWSコ…
前回は、自分のミスでハマった話でしたが、その後、別の仕様にハマったのでそのメモです。以下あたりを参考に、CloudWatchLogsのログをAthenaで解析する流れを検証していました。 CloudWatchLogs -(Subscription Filter)->Firehose -(delivery stream)-> S3 …
ECSコンテナのログをCloudWatch Logsに出力しており、そこからS3に保存しようとした時に、Kinesis Firehoseを使って行える例があったので試してみました。その時にしょうもないミスではまったのでメモです。 この例をもとに試していましたが、Firehose --(de…
2020/02/05までに、RDS系の証明書を2015から2019に更新するようにアナウンスが出ています。*1 そんな中、RDSの証明書更新してから、Lambda(node.js)から接続できなくなったと相談を受けました。確実にクライアント側の証明書を更新してないからと思いました…
t3インスタンスのCPU creditを使い切ってしまうことがあり、そういやt2より良くなったようなと思って、再度調べてみたら驚きの仕様が! ※2020/02/20 少し文章の構成を直しました。 インスタンスタイプ、サイズごとのCPU creditの回復量と蓄積可能量 https://…
マイクロサービス開発向けに、moguraというツールを開発しています。Twitterではちょいちょいリリースを呟いて、細かいバージョンアップを行っています。一旦落ち着いたので、moguraが何を解決するためのツールで、何をしてくれるのか紹介します。 背景と課…
gRPCで作った複数のサービスを、同じECS Cluster上で動かし、他のサービスを呼び出している時に、通信できなくなったことがあったので、その原因のメモです。 直接的な原因は、「NLBは、接続元と接続先が同一のIPへの通信ができない」という仕様に意図せず該…
前回に引き続きcontainer health checkの対応をプルリクしました。 github.com 設定追加するだけだし、簡単だーと思ってましたが、何箇所か指摘頂いたので、備忘録。 簡単かなーと思ってましたが、危うく変な挙動を仕込むところでした。 設定値はオプション…
ECSを本格利用し始め、デプロイの管理にhakoを使うことにしました。最近ECSに機能追加があり、hako未対応のものを使いたくなったこともあり、hakoに追加してみることにしました。 作った機能 いくつか機能を追加して、プルリク投げてマージされたもの、プル…
以前、三編に分けて、SlackへPostするWebAPIを、API Gateway+Lambda+node.jsで作りました。 AWS API Gateway+LambdaでSlackにメッセージをPOSTする(前編) - 年中アイス AWS API Gateway+LambdaでSlackにメッセージをPOSTする(中編) - 年中アイス AWS API Gat…
以前のエントリで、Lambda Node.js 4.3を使ってSlackにPostしていました。 reiki4040.hatenablog.com 普段Javascriptは書かないので、Goで書いてApexでデプロイする版を試しました。 ApexはLambdaのコードを管理(?)、デプロイするツールで、PythonやNode.js…
AWS TokyoリージョンにもCodeBuild等のCodeシリーズ(?)一式揃い、使ってみようということで、まずはCodeBuildを試してみました。 公式にGoのサンプルはあるんですが、他のライブラリ使ってないhello worldなので、CodeBuildの説明だけという感じでした。vend…
前編、中編にて、AWS API Gateway + Lambdaを使って、post-slack WebAPIを作り、テスト実行まで行いました。後編では、API keyの設定と実際に使えるようにデプロイをしていきます。 Slack Webhook URLは、それを知っていれば誰でも使うことができます。せっ…
前回、Slack Incoming Webhookの作成と、それを使うLambdaを作成したので、続いてAWS API GatewayとLambdaを繋いでいきます。書いていたら思ったより長くなったので、API Gatewayのテスト実行までを中編にして、後編で、API keyの設定とデプロイを行います。…
Slackはincoming webhooksがあり、POSTするだけで、簡単にメッセージを送ることができます。 スクリプトで直接Incoming Webhook使ってもいいんですが、これ自体は別に認証も何もないので、誰かが知ってしまうと、好き放題投稿できます。そんな時に入れ替えた…
Roadworkerとは Route53の設定を、DSLで管理するruby製のツールです。ドメイン設定をコード化できるので、gitで管理することができます。 winebarrel/roadworker · GitHub Route53 private DNSとは 2014年の11月ごろから使えるようになった機能です。 特定の…
golangで書き直した新しいrnzoo version 0.2.0をリリースしました。(ssh呼び出しが有るので、rnsshはshell) Release version 0.2.0 · reiki4040/rnzoo · GitHub今回のバージョンの目的は、導入のハードルを下げるために、boto(Python)からgolangにしたことで…
AWSから、個人で使っているアカウントに、先月の料金$18ぐらいです。とメールが来たので、インスタンス止めてたはずだけどなーと思ってみてみたら、見事にt2.microが1台と、なぜかElasticIPが停止しているインスタンスについている状態でした。(ElasticIPは…
---- 2014/10/19 追記 ec2sshは、rnsshに名称変更して、homebrewでのインストールにも対応しました。 rnzooがhomebrewで入れられるようになりました。 - 年中アイス rnzoo 0.2.0をリリースしました。 - 年中アイス ----前回のエントリでec2listを作りました…
2014/9/7追記 そのままec2sshも作って、導入の手間を考えてリポジトリもreiki4040/rnzoo · GitHubに移動しました。rnzoo/ec2sshを作った。 - 年中アイス rnzoo/ec2sshを作った。 - 年中アイス ---以下元エントリ ec2のインスタンス情報を表示するec2listとい…
以下が完了していること前提になっています。 awscliのインストール(確認環境は、aws-cli/1.4.2 Python/2.7.5 Darwin/13.3.0です) AccessKeyのセットアップ VPCの作成(例として、10.0.0.0/16を用います) 手順としては、以下になります。 SecurityGroup(以下S…
ちょっとはまったのでメモ。 Route53には、エンドポイントをチェックして、フェイルオーバーしたり、DNSの振り分けを止めたりする機能がついています。これを有効に使うには、何が成功で、何が失敗になる(する)のかをコントロールすることが重要です。 AWS…