バッチ処理基盤をEC2からECSへと移行させるにあたって考えたこと、Terraformでの構築方法をメモしておきます。本稿で単にECSと書いた場合は全てECS Fargateを指しています。
続きを読むCircleCIのcheckoutステップで失敗する
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.続きを読む
isucon11予選に参戦してきました
「何もしてないのに壊れました」というふざけたチーム名で会社の同期(kypくん、shikiさん)とisucon11の予選に参戦しました。 使用言語はGo、結果は42525点、93位/約600チームで予選敗退でした。
- 前日までにやったこと
- 当日
- -20分
- 0分
- +30分
- +2時間
- +4時間
- +6時間
- +7時間
- +8.5時間
- 競技を終えて
- 追記
Post: "https://cognito-idp.ap-northeast-1.amazonaws.com/": x509: certificate signed by unknown authority" となるエラー
概要
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" ]
Software Design誌に約半年間連載を書いていました
Twitterなどで散々言っていましたが、今年の1月〜7月号までの7回、技術評論社さんのSoftware Designに連載記事を寄稿していました。自分の中では今年上半期のビッグイベントだったので振り返ってみます。
続きを読む