koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

AWS

ECS Fargate + ecspresso + GitHub Actions 運用構成例

先日の記事でECS Fargate*1をアゲたので、どういう使い方の実感でアゲたのか軽くメモしておく記事。 AWS Containersのカレンダー | Advent Calendar 2023 - Qiitaにも登録しておいた。 手軽に箇条書きです。 ホスティング対象・条件など IaC デリバリ まとめ…

AWS App Runner 振り返り 2023~決別・ECSを使うぞ~

AWS

AWS Containers Advent Calendar 2023の4日目です。 qiita.com AWS App RunnerはAWSで手軽にコンテナを動かせるサービスで、2021年にGAしてから緩やかに使用しつつ所感を書いてきた。 AWS App Runner はおもちゃなのでそれ以上の用途には使ってはならない - …

ElastiCache Serverlessは作って放置してるだけで課金される雰囲気があるので気をつけろ

ElastiCache Serverlessを試していてこれはなんかイマイチだなと思ったので記事にした次第。 既に試している人はVPCエンドポイントに見覚えのないリソースが作られていないかを眺めておいた方が良いかと思う。 ElastiCache ServerlessをAWSマネジメントコン…

S3 + CloudFront での静的Webサイト配信への気持ち

AWS

AWSで静的なWebサイトを配信したいと考えたらS3 + CloudFrontの組み合わせが向いているのだろう。 ただ、ちょっと思うところはあるのでその気持ちを書く記事。 S3の静的Webサイトホスティング機能 CloudFrontのデフォルトルートオブジェクト S3とCloudFront…

AWS Amplify での Next.js SSR 所感

AWS

従量課金かつお手軽にフロントエンドをSSRするのがそれなりの関心事であることもあり、AWS AmplifyのAmplify Hostingの表層に触れたのでメモしておく。 動機 AWSコンソールでポチポチ構成できるのは大層良い AWSが弱いところはことごとく弱いのはイマイチ 状…

GraphQLのSubscriptionを試していてWebSocketが必ずしも要るとは限らないなぁと思うなど

最近GraphQLのSubscriptionを試している。 GraphQLはクエリ言語で、そのスキーマをどう実装するかは自由なわけだけれど、Subscriptionのようなサーバからクライアントへの通知の実装は「WebSocketでしょ! だからWebSocket使えないと厳しいよね」のような感…

破棄し忘れたクラウドリソースに半年間金を払い続ける方法

AWS

79,478 私の嫌いな数です。 さて、個人にとって79,478円はなかなか大きい金額だと思います。 一体どうやったらこのような金額を支払うことができるのでしょうか? AWSを例にとって解説します。 この記事ははてなエンジニア Advent Calendar 2022の28日目です…

AWS DMSでRDS for MySQLのデータベース複製を手抜きできるか?

AWS

AWS Database Migration Service(以下DMS)はAWSのなんかいい感じにデータベースのデータを移行できるサービス。 仕事でもプライベートでもデータベースを扱っていると、あるデータベースを別の場所に複製したい場面がある。RDS for MySQLから、別のRDS for…

lambdynamo-counter

lambdynamo-counter とは? AWSのLambda関数とDynamoDBで構成されたアクセスカウンタです。 github.com ここしばらく息抜きに20世紀風のホームページを作っている。 https://7474.github.io/homepage/ ホームページにはアクセスカウンタが必須なのだけれど、…

AWS App Runner 振り返り 2022

AWS

典型的なWebアプリケーションをホスティングするにあたっては何も考えなくても良しなにやってくれるPaaS が好みで、AWS App Runnerはリリースされた前後から多少注目していた。 所感のまとめ記事を書いてからは積極的触れてはこなかったのだけれど、半年も経…

クラウドやWebサービスのプレビューとかGAとかについての散文

Web界隈ではある機能がプレビュー中だとか、GAされたとかあったりする。 プレビューは「未完成だけれど使ってみてね」状態で提供されること。別の言葉だとベータ版とか。 GAはGeneral Availabilityの略で「一般に提供されるようになった」のような意味らしい…

LaravelのFilesystem S3アダプタ管理下のオブジェクトをバケット間コピー

Laravelには色んな種類のファイルシステムを操作する便利機能が用意されていて当然その対象にはS3も含まれている。 laravel.com ちょっとS3バケット間でファイルをコピーしたいと思った。 こんなメソッドシグネチャで考える。

Next.jsキャッシュ戦略はこんな感じで行こうと思う

AWS

Next.js セカンドインプレッション - koudenpaのブログで、書いた通りNext.jsとはしっかり付き合いはじめて日が浅いのだけれど、横目で眺めていた時期と主体的に触って感じたことからどういう構成をとるのかの考えが固まってきたので書いておく。 暫くたって…

Laravel を AWS App Runner で動かしてみる

App RunnerなどのHTTPリクエストをベースにしたコンテナランナーでLaravelのようなフルスタックのWebアプリケーションフレームワークを動作させる構成の例は意外に見つからない。 そもそもLaravelの公式には本番運用のノウハウはあまり提供されていない(For…

AWS App Runner はおもちゃなのでそれ以上の用途には使ってはならない

おもちゃとして遊ぶにしても別のコンテナランナーにした方がよい。というのが現状の結論だ。 絶対にやめたほうがいい。 コンテナ運用したいがAWSしか使えないならECS Fargateを選ぶのが良いし、AWS縛りが無く平易にコンテナ運用したいならGoogle CloudのClou…

terraform import でS3バケットをインポートした時の備忘

AWS

Terraformにある既存のリソースのインポート機能を試してみたかった。ちょうど完全に手で(AWSコンソールで)管理しているS3バケット群に新しいバケットを追加したくなったので、ちょうどいいからTerraform Cloudともども試してみた。 この手のIaC管理に既存…

Amazon EFSへのリソース配置をAWS CLI + 踏み台サーバでやってみる

先にAWS Lambdaの関数実行時にEFSをマウントしてみた。その時にはファイルの出力先として使ってみたのだけれど、入力ファイルの配置先としても使えると思う。Lambdaは何かと容量制限があるが、EFSなら容量制限とは無縁だ。Lambda + EFSの記事でも機械学習結…

AWS Lambda上のChromeでHTMLをレンダリングしてS3やEFSに保存した

Twitterのタイムラインを動画にしたいと思ったのでしてみた - koudenpaのブログ からの流れでHTMLをレンダリングして画像を取得することをいくらか試している。 先には.NET Framework、Windowsのローカルマシンで試したので、次はクラウドでと考えてAzure Fu…

画像がえっちかコンピュータに合議制で判断してもらう

昨今画像が性的だとか話題になっています。どの辺りから性的なのか、えっちなのかは見る人の主観によるところが大きいです。 これに対して、昨今では無限のクラウドの力で画像が性的かは簡単に判定することができます。 それが正しいかは不明ですがブレない…

Redashの初期設定が変わっていて???状態だった話

追記:変わっていたのではなく、参照するAMIがカスタマイズされているものなだけだった。 https://redash.io/help/open-source/setup の手順を見て、 https://docs.bitnami.com/aws/faq/get-started/find-credentials/ のAMIを動かしている。アホか? 理由が…

AWS CDKでMackerelのAmazon EventBridge通知チャンネルのイベントバスとルールを作る

最近に MackerelのEventBridge通知チャンネル がリリースされたことで以下の目論見が完遂した。 koudenpa.hatenablog.com どうせなら近々にMackerelの通知チャンネルに追加される予定のAmazon EventBridgeを起点にしようと考えた。すると、必然的にクラウド…

Greengrassなクリリンが太陽拳するまでを支える技術

koudenpa.hatenablog.com は以下のような構成をした。 たまに作図すると楽しい。 何かしらの手段で太陽拳指示トピックにメッセージを発行する。 Core上で動作する関数は太陽拳指示トピックへのメッセージに応じてGPIOコネクタの操作メッセージを発行する。GP…

AWS IoT Greengrass備忘2020初春

CDKでのGreengrass管理をしてみた際の備忘。

Greengrassなクリリンが太陽拳するまで

AWS IoT GreengrassのGPIOコネクターの先にクリリンを繋いでインターネットから太陽拳出来るようになった。多分世界で一つのソリューションだろう。

Mackerelでクラウドインテグレーションしているリソースが消えた時にそのホストのステータスを変える

こんな感じで消したリソースをPoweroffすることでメトリクスがちょっと見やすくなりました。

Mackerel のAWS/Azureインテグレーションされているリソースが存在しているか知りたい

と思い、このようなコンポーネントを作り始めた。 github.com MackerelのAPIを叩いてクラウド統合されているホストを取得して、統合先のクラウドリソースが実際に存在しているか? 確認したい。存在していなかったらホストのステータスを変えたい。といった…

AWS IoT 1-Click 対応ボタンをどうするか考える

先日、遂にSORACOMのAWS IoT 1-Click 対応ボタンの販売受付が開始された。 soracom.jp ので、さっそく注文した。 届くまでには少し間があるそうなので、その間にどう使うのかを少し考えておきたいと思う。

ConoHaのオブジェクトストレージからAmazon S3に移行した

ConoHaのオブジェクトストレージからAmazon S3に移行した際にやったことと気になったこと。

Metrin と mkr コマンドでCloudWatchのメトリックをMackerelのサービスメトリックとして投げる

RDS Aurora にはインスタンス毎の情報のほかに、クラスタ毎に割り当てられているストレージボリュームに関する情報がある。 これは、現在のMackerelのAWSインテグレーションでは収集されない。 (2017/10/13現在、多分) が、収集しておきたい情報なのでサー…

CloudFrontではあるドメインを複数のディストリビューションに指定できない理由

AWS

先日AWSのCloudFrontを使うにあたって、以下のエラーに遭遇した。 Resolve Cloudfront Error "CNAMEAlreadyExists" 状況的には、あるドメインへのアクセスをDNSの設定変更で複数のCloudFrontディストリビューションに振り分けたい、といったものだった。 こ…