AWS Copilot で nginx を使ったサイドカーパターンを試す

AWS

前回からの続きで Express の前段に nginx を配置する構成を Copilot のサイドカーパターンを使って構築する方法を紹介します。 サイドカーパターンとは コンテナのデザインパターンの 1 つで、メインとなるコンテナを拡張・補完する目的で別のコンテナを配…

AWS Copilot で ECS(Fargate) に Express(Node.js) をデプロイする

AWS

AWS Copilot を使って ECS(Fargate) に Express(Node.js)をデプロイする方法を紹介します。 前提 AWS CLI, Copilot CLI がインストール・設定済みで ローカルでの動作確認には Docker Desktop for Mac を使っています。 AWS CLI $ aws --version aws-cli/2.2…

Monthly LINE API Update 2021-01

2021 年 1 月の LINE API 関連まとめです。 ナローキャストメッセージで利用できるオーディエンスタイプが追加 developers.line.biz LINE 広告、LINE ポイント AD で作成されたオーディエンスが Messaging API で利用可能になりました 事前に Messaging API …

Google Cloud Speech-to-Text 向けに.wav の音声をステレオからモノラルに変換する

Google Cloud Speech-to-Text (以下、Speech-to-Text)で音声(.wav)から文字起こしをした時にMust use single channel (mono) audio, but WAV header indicates 2 channels.エラーが発生したので対策についてまとめました。 前提 1 人が喋っている動画の文字…

Monthly LINE API Update 2020-12

2020年 12 月の LINE API 関連のまとめです。 シェアターゲットピッカーの UI 改善 developers.line.biz シェアターゲットピッカー = LIFF から起動して LINE の友だちにメッセージを送信する機能です デフォルトでトークのセクションが開き最近やり取りした…

ドングリ FM の 2020 年 をデータとともに振り返る

この記事は「ドングリ FM リスナーの Advent Calendar 2020」の 14 日目の記事です。 adventar.org ドングリ FMとは 「つまらなくておもしろい、いつも聴いてるのに内容は覚えていない」 で有名な narumi さんとなつめぐさんの 2 人が話すポッドキャスト番組…

Monthly LINE API Update 2020-11

先日開催された LINE DEV DAY 2020 のセッションで 約 60 万アカウントのチャットボットが作成されLINE 上で動いていていると発表されていました。 logmi.jp 多くの開発者に使われている LINE API の情報は LINE Developers や LINE Developers Community に…

Serverless の TypeScript テンプレートを使って Lambda 関数をデプロイする

Lambda をはじめサーバーレスアプリケーションの管理ができる Serverless Framework で TypeScript を使ってデプロイして動作確認まで試してみました。 TypeScript テンプレートを使うと関数を TypeScript で書けるのはもちろん、 YAML で書いていた構成設定…

Nginx のアクセスログを Embulk で PostgreSQL に入れて分析する

モチベーション SQL でアクセスログを集計可能にして「今週のアクセス数ランキング」的なページを作成するため AWS であればマネージドサービスを使って CloudWatch -> Kinesis -> RDS でも実現可能であるが、汎用的に使える Embulk (or Fluentd) を触ってみ…

ローカル環境でも快適に LIFF の開発ができる liff-sdk-local を作りました

なぜ作ったのか LIFF(LINE Front-end Framework) は SSL 対応した URL を元に LIFF URL(line://app/xxx)を生成することで使えるようになります。 その仕様で動作確認のしずらさを感じることがよくあり、どうしたらもっと開発効率があがるかなと考えていまし…

Sequelize PostgreSQL での SSL 接続設定(と主要オプションの紹介)

Heroku でホスティングしている PostgreSQL に Sequelize から接続しようとしたときに SSL 必須のエラーが出てた. エラーは解決はしたもののドキュメントに詳しい説明がなく 調査したときに関連する Sequelize のコードを読んだでわかったことをまとめた. ま…

Amazon ECS で Mautic を動かす

OSS の MAツールである Mutic を動かすことがあり 公式が用意している Docker イメージを使ってローカルマシンでは簡単にセットアップできた. その後サーバーに載せる際に Amazon ECS を使ってセットアップした後 Mautic コンテナに接続するところまでの手順…

LINE Messaging API の replyToken は何秒で無効になるのか検証

モチベーション LINE Messaging API の公式ドキュメントでは replyTokenの失効期限は一定期間と記載されており明確な数値がなく 正確に検証したいと思ったため. 応答できるイベントには応答トークンが発行されます。 応答トークンは一定の期間が経過すると無…

Lambda から最新の AWS SDK を使って Aurora のデータベースクラスタの停止、開始を実行できるようにする

Lambda から Aurora のデータベースクラスタを止めるためにRDS.stopDBCluster を呼んだのですが stopDBCluster is not defined になったので Lambda Layers を使って解決してみました。 Amazon Aurora がデータベースクラスタの停止、開始へのサポートを開始…

GameWith Engineer Meetup #1 に参加した

8/21に GameWith Engineer Meetup #1 に参加してきた. 内容は インフラ基盤 レガシーコードとの向き合い方 ブロックチェーンゲーム開発 の3本立て. インフラの事例は各社サービスによって特徴があり解決方法に発見があるし, 7月は Solidity を勉強してハッカ…

Slack Slash Command を外部から叩ける slack-cmd を作った

www.npmjs.com github.com 使い方 $ npm install -g slack-cmd 特定チャンネルのトピックを更新する. $ slack-cmd -w xxx -c topic -t "this channel is for developer" -C xxxxx -T xxxx-xxxxxxxxx-xxxx GtiHub の更新情報が Slack に流れるようにする. ※ G…

Ethereum dApps をローカル環境で動かす

dApps 開発者ギルド勉強会 #1 に参加して ローカル環境で dApps をデプロイして動かすことろまでができたので記録を残しておく. 環境構築と Truffle を使って Ganache のローカルチェーンにデプロイするところまでは オオキマキさん (@ookimaki_JP) のブログ…

活用のブロックチェーン〜Trust と KyberNetwork で見る Web3.0 の可能性〜 に参加した

cryptocrazies.connpass.com 参加の目的 8 月に参加するハッカソンに向けて Solidity 強化月間と銘打っており Web3.0 を支えるスマートコントラクト等の技術を理解した後に どのような世界が作れるのか具体的にイメージして 他の方々がどのように考えている…

Mac に Homebrew で任意のバージョンの PostgreSQL をインストールする

数年前にやったときはソースから入れて苦戦した記憶があるので, 最新の簡単な方法をメモ. Homebrew Formulae からインストールしたいバージョンを選択 formulae.brew.sh brew でインストール $ brew update && brew install postgresql@9.5 現行版(10.4)の場…

GitHub で fork 元リポジトリの Pull Request をローカルで確認する方法

目的 fork したリポジトリで開発中に, fork 元リポジトリに誰かが PR を出してくれて そのコードをローカルで確認したい. 手順 fork したリポジトリを clone $ git clone git://github.com/forked_rep fork 元リポジトリをリモートに追加 $ git remote add u…

Etheremon Meetup #2 に参加した

ブロックチェーンゲーム Etheremon のミートアップに参加したメモと感想をまとめておこうと思う. connpass.com オープニング 主催: Blockman 暗号通貨なkimさん: https://twitter.com/kimnao3333 の挨拶 ゲストによるトーク ダプマさん: https://twitter.com…

AWS WorkMail を使って SMTP でメール送信する時の注意点

背景 独自ドメインの割り当て, メールアドレス認証などが設定済の WorkMail を AWS サービス以外のメールクライントからもメールの送信に使いたいと思った. 設定 安定のクラスメソッドさんの記事を元にやっていけばほぼ問題ない. dev.classmethod.jp 注意点 …

Wercker を Steps の作成から公開までを解説する

背景と概要 Wercker を使っていて, デプロイプロセスにちょっとしたスクリプトを入れたくなって調査した記録. 公式にもあるが, 微妙に古い&ハマりどころもあるので解説していく. devcenter.wercker.com Wercker 上では Steps も Application と同様に扱う(よ…

マッハ新書「xOpsと組織設計」を読んで『xOpsエンジニア』という新しいキャリアについて考えた #マッハ書評

マッハ新書とは 12時間以内に書いて出版する電子出版レーベル その名も「マッハ新書」タグ #マッハ新書執筆者募集w— GOROman Go (@GOROman) 2018年4月29日 執筆からたった12時間後には電子書籍として出版してしまう、いま最も尖ったインディーズ出版(自力出…

『Super Guitar Disney』という最高のギターインストゥルメンタルアルバム

まずこちらの動画を見ていただきたい。 www.youtube.com Super Guitar Disney とは ギタリストのレジェンド達が集結し、 ディズニーの名曲を奏でる初の豪華ギター・インストゥルメンタル・コンピレーション作品が遂に完成! 超絶ギタープレイでディズニーの…

「VP of Engineering Meetup by CA #3」に参加した

CTO, VP of Engineering (以下 VPoE )が集まる会ということで "#1 "から気になっており, 他社の同じようなロールの方々が 日々何を考え, どう取り組んでいるかを知りたくて参加した. cyberagent.connpass.com 内容 イベントの趣旨説明 VP of Engineering (VP…

Firefox 爆速化プロジェクトの1つ Tab Warming を試してみた

10年ほど前は熱心な Firefox ユーザーで タブとプラグインが便利なのと IE のブラウザシェアを奪っていくのが楽しみでよく使っていた. Chrome が登場して(プラグライン入れまくりの) Firefox と比較して サクサク動く Chrome は圧倒的な速さでシェアを奪って…

Application Load Balancer のアクセスログはベストエフォート

背景 クライアントからのリクエストと ALB のアクセスログが微妙にあっていないなと感じて 「Application Load Balancer(以下, ALB) -> EC2 でリクエストを処理しているアプリケーションがあり, (AWS 基盤の何らかの問題で) ALB に到達していないリクエスト…

AWS ElastiCache のエラーから Redis の永続化について調べた

きっかけ AWS ElastiCache で Redis のクラスタを作成したときに, 以下の警告文がイベントに出力されていて気になった. This cache cluster does not support persistence (ex: 'appendonly'). Please use a different instance type to enable persistence.…

wercker で redis service を使用する方法

背景 CI でのテスト実行時に Redis が動作する環境を用意したい. Redis は AWS ElastiCache で動作している. ElastiCache はデフォルトでは許可された AWS 内のセキュリティグループからのみアクセス可能で, public アクセス可能にするには NAT インスタンス…