less is more

心のフルスタックエンジニア👨‍💻バイブスでコードを書いています🤘

2020-05-01から1ヶ月間の記事一覧

GoでAWS APIをモックする

開発中のCLIツールのテストで、AWS API の呼び出しをモックする仕組みを試行錯誤したのでメモ。 github.com ツールでは aws-sdk-go を用いてAPIを呼び出している。 例として、CloudFormation の ListStacks API をモックする。 サービスクライアントを差し替…

Redashにつながらなくなった時の調査メモ

Redashが落ちてたのでその時の調査と対応の記録。 前提 EC2で運用 冗長化はしていない 公式のAMIを使用(つまりdocker-composeで動かすスタイル) 事象 ブラウザでRedashの固定IPアドレスを叩くと画面が真っ白。 原因のあたりをつける 真っ白な画面は返って…

CloudFormationでECSのBlue/Greenデプロイができるようになったので試す

概要 これまで CodeDeploy と連携させて実現していた ECS の Blue/Green デプロイが CloudFormation にインテグレートされて、Externalなデプロイメントコントローラーとして使用できるようになりました。これによって、一連のデプロイパイプラインをテンプ…

cobraでGoのCLIツールを作る

概要 この記事で作ったCLIツールの裏側の話です。 bluepixel.hatenablog.com OSSとしてバイナリの配布も始めました。 github.com GoでCLIツールを作る手段 いくつか候補が見つかったんですが、何分 Go に入門したばかりなのでPros/Consが判断できず。 とりあ…

Amazon Linuxの最新のAMI IDを正しく取得する

言わずと知れたAWS製のLinuxマシンイメージですが、 結構頻繁にアップデートされるので、最新のIDを追う必要があります。 特にIaCが当たり前のいまでは、CloudFormationでもTerraformでもAMI IDをあらかじめ変数化しておくことが多いと思いますが、ついつい…

ap-northeast-1a は概念

AWS

アベイラビリティゾーンについて学ぶ 東京リージョンap-northeast-1 では4つの利用可能なAZ(アベイラビリティゾーン)が提供されている。 ap-northeast-1a ap-northeast-1b ap-northeast-1c ap-northeast-1d これらは実体として1つずつの独立したデータセンタ…

aws-sdk-goを触ってみた所感

普段はcli, Ruby, Node.jsなどでAWSと戯れていますが、今回初めてaws-sdk-goを使ってみたので所感をしたためておきます。 ▼題材はこれです。 bluepixel.hatenablog.com Rubyで書いた40行ほどのスクリプトをGo実装で焼き直してみました。 rezept/main.go at m…

SQSのイベントをトリガーに起動するLambdaの仕組みを完全に理解する🧘‍♀️

先日S3のイベント駆動でLambdaをトリガーする記事を書きましたが、今回はSQSのイベントをトリガーにします。 bluepixel.hatenablog.com LambdaのイベントソースにSQSが指定できるようになったのは意外にだいぶ遅めで、2018年4月です。FIFOキューはさらにその…

CloudFormationで使われていないExportを洗い出す

CloudFormationにおいてスタック間で値を受け渡したいときに、参照される側で出力値をエクスポートして、参照する側でFn::ImportValueで読み込む方法があります。 docs.aws.amazon.com エクスポートされている値は各スタック詳細の出力や[エクスポート]から…

S3のイベント通知を完全に理解する🧘‍♀️

概要 今回はS3のイベント通知に関して掘り下げます。 よくあるユースケースとしては、S3に画像が置かれたのをトリガーにLambdaを起動してサムネイル画像を作成するとかでしょうか。 アーキテクチャはこんな感じ。 ターゲット イベントの送信先として指定でき…