AWS

Typescriptを使用したサーバレスWebsocketチャットサーバーの構築

チャットサーバーの見積もり相談で、Websocket使った場合の実装を整理したので、メモっておきます。
Read more

インターン生の研修環境をTerraformとcloud9でサクッと作った話

所属会社にて、内定者向けのインターン(っていうのか?)を開催することになり、急遽環境構築をすることになりました。 内容も結構本格的で、ほぼ実案件のソースを使ってバグ改修とか機能追加とかさせたいね ということでした。まあソースとかは一応持ち帰りで作ってる案件のソースもあるし、バグについても過去のバグチケットを漁れば良いな と。 あとはただ一つ、インターン担当者の思いは…
Read more

Serverless,ECS(Fargate)自動デプロイ環境の構築

デプロイを自動化するのがMustになりつつありますが、なかなか完璧な自動デプロイ環境を作るのは難しいなーと感じています。 で、最近、所属会社の経営層へのプレゼンのネタとして、中途半端にデプロイ自動化しているプロジェクトを、全リソース自動デプロイ化したら面白いんじゃね?という点で色々検証してみましたので、それについての記事になります。
Read more

AWS Cloudwatch LogsのCLIビューワを作った

ブログ更新サボってる間に色々ネタがたまってしまったのでちょこちょこ放出していきます。 いくつか作ったツールなどありますので、しばらくはそのあたりの紹介だったり、最近開発リーダー(PLじゃないよ)周りの仕事でアプリ設計だったり新しめのFWを使ったりしてるのでその辺の知見等も書けたらと思います。 とりあえず今回は作ったツールのお話。
Read more

Lambdaのローカル開発環境とCI/CD構築(coverageも)

Lambdaをサクサク作りたい 最近実務でもプライベートでもLambdaを使う機会が多いのですが、毎回悩むのが開発環境とCI/CD。 ちょっとしたLambdaならブラウザコンソール上のエディタを使って作るとか、zipで固めるとかでいいんですけど、それなりに大きなLambda関数だとやっぱり ローカルで開発&単体テスト&結合テスト –> GitにPush –> 自動テスト&デプロイ(ついでにcoverage計測) てな流れを作りたい。
Read more

Lambciとimg2lambdaとserverlessでLambdaのデプロイフローを構築する

Lambdaのローカル環境 これまでLambdaを構築する際には、ソースコードを決め打ちで書いてzipで上げたり、コンソール上のエディタでポチポチ開発していたりしてました。 PythonとかNodejsとかなら、それでも簡単なAPIくらいなら作れるのですが、ちょっと複雑なことになったり、PHPみたいにCustom Runtimeを使いたい場合とかは、何度もデプロイし直してトライアンドエラーするのは効率が悪いです。 やっぱり、他のソースと同じようにローカルでガリガリ書いて、コマンドで自動デプロイができた方が良いので色々探したところ、Lambciとimg2lambda(あとserverless)を使ったフローが良さそうだったので紹介します。
Read more

AWS CodeDeployのHookスクリプトでソースを弄りたいとき

Hookスクリプトの実行場所 CodeDeployでソースをデプロイするときには、appspec.ymlでソースと実行するHookスクリプトを指定する。
Read more

【AWS】CodePipelineでEC2への最低限の自動デプロイ環境を整備する

CodePipelineを用いたEC2への自動デプロイ AWSには様々なデプロイ手法が存在する。CodeDeployを使用すればEC2,Lambda,Fargateに自動デプロイ(もちろん手動も)できる他、CodeBuildを利用すればS3へのアップロード、CloudFrontのキャッシュ削除(Invalidation)も勝手にやってくれたり。 CloudFormationを使用してLambdaにデプロイする方法についても今度詳しく記事を書きたいと思っているが、今回は前回の記事でも触れたEC2への自動deployについて紹介する。
Read more

【AWS】CodeBuildでPHP Unitを流すためのDockerfile

CodeBuildでユニットテストを流したい 半年前くらいにAWSのCodeBuildで「Gitから引っ張ってきたソースでPHPUnitを動かしたいんだけど」と言われたので作成したdockerfileを一部修正して紹介する。
Read more

【CORS対応】Lambdaで動くLaravelの静的ファイルをCloudFrontで配信する

静的ファイルをキャッシュしたい 前回の記事ではLambda上にLaravelを構築しました。 とりあえず動くは動くんですが、Lambda上で全てのファイルをいちいち読み込んでいるので、容量が大きいファイルをやりとりするサービスではパフォーマンス面で不安が残ります。 そのため、今回の記事では静的ファイル(publicフォルダ配下)をS3に配置し、Cloudfrontで高速に配信できるようにしたいと思います。また、キャッシュサーバから受信したCSS等から別サーバのリソースを読み込むことを考慮し、CORS設定も行っていきたいと思います。
Read more