ちゃんるいすのブログ

オタクエンジニアの雑記

AWS

Pulumi を使えば Infrastructure as Code の本来の目的が果たせると思う

IaC は DevOps の中で重要な立ち位置に居て、インフラ専門部隊だけではなく、バックエンドの開発者も柔軟に構成が変更できるためには 今までの Terraform や Ansible では敷居が高かった(ツール独自のループの書き方とか色々)。だけど Pulumi や aws cdk …

まだ S3 + CloudFront で消耗してるの?Cloudflare + Backblaze の方が安いよ

Web サービスを提供してたり、アセットの配布で S3 + CloudFront を使ってる人は多いと思います。 が、この度 Backblaze が S3 Compatible API をリリースしたので Cloudflare と組み合わせればマイグレーションのコストを少なく(AWS SDK も使えるし、AWS C…

AWS EC2 m6g, c6g, r6g は本当に速くなったのか

m系だけで比較 UnixBenchAMI m6g.large: amzn2-ami-hvm-2.0.20200406.0-arm64-gp2 m5.large: amzn2-ami-hvm-2.0.20200406.0-x86_64-gp2 # yum update -y # yum groupinstall '@Development Tools' # wget https://github.com/kdlucas/byte-unixbench/archive…

Private Link + ECR を試す

概要 検証環境 Fargate ECR S3 VPC エンドポイントの作成 ECR へのエンドポイント S3 へのエンドポイント CWL へのエンドポイント ECR エンドポイントの SG 動作確認 確認 概要 従来は ECR からコンテナイメージを取得するために、IGW、NATGW を使用していた…

ECS と distroless イメージの組み合わせは悲しい

最近見るプロジェクトが増えました。ECS コンテナのヘルスチェックにいつもどおり何かを書く CMD,curl,localhostしかし、永遠に UNKNOWN になる。使ってるイメージを持ってきてローカルで確認してみる。 $ luis@ubuntu ~ $ docker run --name test -it --rm …

AWS DMS を使ってプライベートクラウドの巨大な MySQL を Aurora MySQL へ移行してみた

今までプライベートクラウドで動いてたサービスが、データセンターの閉鎖に伴いどこかに移設しないといけない物語に AWS DMS を使ったので覚書として書いておく。 DB は 1.5TB の 45 億レコードとそれなりに大きいけどメンテ時間は動作確認を除いて 30 分ぐ…

Go で Elasticache の Auto Discovery に対応する

PHP や、.NET の memcached クライアントは、AWS 公式で Auto Discovery に対応したライブラリを出してるけど Go にはない。 ので Go で書いてみた。configuration endpoint を叩いて、ノードのエンドポイントを取得するまで。↑ のように configuration endp…

Lambda@EdgeをCircleCI(Apex+シェルスクリプト)でデプロイする

Lambda@Edge のデプロイについて serverless framework や Apex では Lambda@Edge のデプロイが可能です。 しかし、serverless framework では記述内容も機能も多すぎるため1ファンクションだけ Lambda@Edge を使いたい場合には少し重すぎるため Apex + シ…

EC2の自動停止・起動を超柔軟に超簡単に実現する「AWS Instance Scheduler」

AWS Instance Scheduler aws.amazon.comAWS の中の人が作っていて 元は EC2 Scheduler という名前だったのが、AWS Instance Scheduler に変わった。テンプレートが用意されているので、CloudFormation で実行すれば構築が終わるという素晴らしい仕組み。 ア…

Fargate + gRPC で B/G とカナリアリリースを実現する

構成 課題① こんな構成のとき、API のタスクだけを更新する際に Blue/Green とカナリアリリースを実現するときにどうするのが良いか迷ったのでまとめておきます。 gRPC なので、Front -> Internal ALB -> API では、Internal ALB API は HTTP/1.1 になるため…

AWS-SDK-Goを使って、ユーザーが投稿したファイルをS3から削除してみる

はじめに S3でユーザーが投稿した画像を管理している場合、ユーザーがアプリを退会した際にユーザーに関する情報、S3からもユーザーのファイルを削除する必要性があります。 S3上のプレフィックスは userID/ となっており、全体のキーはbucket/userID/fileNa…

Lambda+S3+EC2を使用してできるだけ安くリアルタイムwebPエンコードをやってみる

S3にアップロードされる jpg画像をリアルタイムで webP にエンコードしたかったので 色々やってみた。 要件 S3 バケットには毎月1000万枚の2.2MB程度の jpg画像がアップロードされると仮定 これをアプリが引っ張る前にできるだけで速く webP にエンコードす…

S3をCloudFrontから配信&LambdaとWAFを組み合わせて利便性とセキュリティを確保してみる

この記事は、AWS Lambda Advent Calendar 2017 の5日目となります。 今回は S3 にある画像ファイルを CloudFront から配信をしつつ、 CloudFront のアクセスログを Lambda で解析を行って、WAF の IPリストへ追加を行って、セキュリティの担保を行ってみよう…

RDS for MySQL でSELECT結果をCSVに吐き出す

機会があって調べていると一筋縄ではいかなかったので覚書。 2ヶ月ぶりの記事ですが普通に生きています。 INTO OUTFILE は使えない RDS for MySQL(Aurora) v5.6.10 では INTO OUTFILEを実行するとエラーで使えない ERROR 1045 (28000): Access denied for u…

Vultr.com $5 VPS と AWS EC2 t2.micro どっちがオススメか

初めて精神安定剤みたいのを買いました。 今後外出するときは使用してみたいと思います。 背景 会社のHPなどサービスを提供する際に停止してもそこまでクリティカルでないものを 如何に安く運用するかと考えたときにVPSかEC2かで悩んだので色んな観点からま…

作ったAMIからインスタンスを作成するとSSHのパラメーターが変わる

背景 Auto Scaling Group の起動設定の元となるAMIを作成する際に SSHのPasswordAuthentication yesとしてAMIを作成をすると 復元するときにPasswordAuthentication noに戻ってしまう問題 原因 cloud-initが原因 (変更前) ssh_pwauth: 0 (変更後) ssh_pwauth…

Ansibleのs3モジュールを使ってディレクトリごとアップロードする

梅雨の季節がやって参りました。 Ansibleのs3モジュールを使ってディレクトリごとアップロードする方法を覚え書きとして。 認証情報を環境変数に入れておく Ansibleで使うAWSの認証情報はPlaybookに書き込むか 環境変数を使うかで選べます。 万が一のことを…

Amazon CloudFront CDN を使用して Wordpress を使ってみる

CDN をどれ使おうかと色々試してみる中で勉強がてらAmazon CloudFrontのCDNとWordpressを組み合わせて使ってみることにした。 CDNの種類 [table id=19 /] CloudFront CDN Amazon AWSのCDN、従量課金制で別ドメイン型である。 リクエスト数だけで見ると料金は…

Amazon Web Services(AWS)から6,000円引き落としされた話

ファンクラブイベントのチケット代入金が明日までなので今日決済しようと思ったら 口座に4,000円しかなかったんです。