cloudfrontでコンテンツ配信をする際、Terraformであれば次のようにlogging_config
を指定することでアクセスログを残すことができる。
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に連載記事を寄稿していました。自分の中では今年上半期のビッグイベントだったので振り返ってみます。
続きを読む【Terraform】CIでinitした時にdoesn't match any of the checksums previously recorded in the dependency lock fileとなる
codebuildでterraform init
をした時に下記のようなエラーが出力されて落ちた
Initializing provider plugins... - Reusing previous version of hashicorp/aws from the dependency lock file - Installing hashicorp/aws v3.42.0... Error: Failed to install provider Error while installing hashicorp/aws v3.42.0: the current package for registry.terraform.io/hashicorp/aws 3.42.0 doesn't match any of the checksums previously recorded in the dependency lock file続きを読む
【Elasticsearch】時間経過でインデックスを削除・設定変更
ログデータにはある種の鮮度のようなものがあります。一般的に1年前のログと2日前のログだと、おそらく後者の方が取り出される頻度も重要度も大きいため、より早く、確実に取得したいと考えるでしょう。
そのため、これらのデータを同様のストレージに同様の構成で格納しておくのはコスト面であまり良いとは言えません。1年前のログに対して3日前のログと同様の取得速度と信頼性を求めない場合、より安価なストレージに移動させる、あるいはレプリカ数を減らすなどといった変更を行うことで、インフラのコストを削減することが可能になります。
Elasticsearchにはこのように自動的にインデックスのライフサイクルを管理し、設定を変更する機能が備わっています。
本稿ではAWS Elasticsearch Service(AES)について述べます。AESで利用できるインデックスライフサイクル管理機能にはISMという名前がついています。
続きを読むシェル色付け対応早見表
ターミナルに文字を出力する際に
$ echo -e "\033[<パラメータ>m <表示する文字> \033[0m"
とすることでパラメータに応じた文字色、背景色をつけることができる。パラメータは;
で区切ることで複数種類指定することが可能。
CircleCIでyarn installした時に出る"EPERM: operation not permitted, copyfile ~"みたいなエラー
CircleCIでnodeアプリケーションのイメージをビルドしている時にエラーが出てfailした時の対処法メモ
続きを読む