あるプロダクトの監視にはNewRelicを使っているが、手作業で作られたNewRelicのアラートが大量に放置されていた。 そのため、どのアラートが作成されているのかがわからない、不要なものもわからない、レビューがやりにくいといった問題があった。
そこでTerraformerを使ってそれらを取り込みコード化することができたので、方法を記載する。
続きを読むあるプロダクトの監視にはNewRelicを使っているが、手作業で作られたNewRelicのアラートが大量に放置されていた。 そのため、どのアラートが作成されているのかがわからない、不要なものもわからない、レビューがやりにくいといった問題があった。
そこでTerraformerを使ってそれらを取り込みコード化することができたので、方法を記載する。
続きを読むメール認証の仕組みと、SESでのTerraformを使った設定方法について紹介します。
続きを読むCircleCIでcheckoutしたらいきなりこんなエラーが出てきた。
error cloning repository: unknown error: ERROR: You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client or a different key type.続きを読む
「何もしてないのに壊れました」というふざけたチーム名で会社の同期(kypくん、shikiさん)とisucon11の予選に参戦しました。 使用言語はGo、結果は42525点、93位/約600チームで予選敗退でした。
Post \"https://cognito-idp.ap-northeast-1.amazonaws.com/\": x509: certificate signed by unknown authority"
プログラムからAWSのリソース(今回はcognito)にアクセスしようとしたときにこのようなエラーになった。 利用していたDockerfileは次の通り。Golangのアプリケーションをマルチステージビルドして、実行イメージとしてはDebian slimを利用した。
FROM golang:1.16 AS builder WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY app ./app COPY main.go ./ RUN go build -ldflags="-w -s" -o myapp FROM debian:10-slim COPY --from=builder /src/myapp . EXPOSE 8080 CMD [ "./myapp" ]
なんとなくAWSのロールやポリシー周りのミスかと思いきやそうではなく、証明書にまつわるエラーだった。AWS SDKはAPIリクエストを投げるときにTLSを利用するが、debian-slimにはルート証明書が含まれていないため、この通信が失敗していた。
ca-certificateパッケージをインストールする。 Dockerfileはこうなる。
FROM golang:1.16 AS builder WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY app ./app COPY main.go ./ RUN go build -ldflags="-w -s" -o myapp FROM debian:10-slim RUN apt update && apt install -y ca-certificates # 追記 COPY --from=builder /src/myapp . EXPOSE 8080 CMD [ "./myapp" ]