背景 Rspecでテストを行う際にテストデータが大量に必要だったので、create_listを使ってデータ作成していましたが、create_listを使うよりbuild_listしたものをbulk_importした方が高速化できると教えてもらいました。 bulk_importはActiverecord-Importと…
前提 Railsでcreated_atを含む文字列をJSONに変換したものを受け取った後、そのJSON文字列からcreated_atを取り出し、DBにデータを取りに行くような実装がされていたとします。 その際、想定通りのデータがDBから取得できずに困ったので、その調査&原因をま…
基本的なElasticsearchのコマンドは、たくさんまとまった記事があると思うので特に困らないと思いますが、プラスαとしてElasticsearchクラスタを運用していく上で知っていると便利かもと感じたコマンドや使い方を備忘録としてまとめてみました。 定期的に追…
create_listは、複数のインスタンスを作成するときに便利なメソッドですが、作成されるインスタンスのテストデータは同じになってしまいます。 create_list(:article, 3, title: 'test', description: 'test') createメソッドで愚直に1つずつインスタンスを…
1つ目 あるテーブルに新しくカラムを追加し、既存のカラムデータを新規カラムにコピーする ModelName.update_all(new_column = old_column) 2つ目 テーブルサイズが大きい場合、レコードを分割して処理を実行することも可能 ModelName.in_batches(of: 10000)…
何が起きたのか PostgreSQLが立ち上がらなくなってしまったので、再度インストールし直した後rails db:prepareを実行したところ、以下のようなエラーが発生した。 rails aborted! LoadError: dlopen(/Users/xxx/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/g…
作ったもの Google CalendarをCLIで扱えるnpmを公開しました。機能はシンプルですが、ターミナル上でGoogle Calendarのイベントを表示、登録、編集、削除することができます。 www.npmjs.com 作成動機 最近Javascriptを勉強していたこともあり、外部APIを使…
どんなエラー? 遭遇したエラーは以下の通り。 タスク定義の検証に失敗したので、CodePipelineのアクションに記述されている"TaskDefinitionTemplateArtifact"のタスク定義を見直してほしいとのこと。 別のデプロイパイプラインも同じ構成となっているのに関…
これは、「フィヨルドブートキャンプ Part 2 Advent Calendar 2021」2日目の記事です。 adventar.org part1もあるので、こちらもどうぞ! adventar.org はじめに 何かしらのプログラミング言語を使ってコマンドを実装する場合、付属するオプションを自前で解…
aws-cliを使ってEC2インスタンスに接続するの面倒くさいので、簡単に接続できるようにMakefileを書きました。 タグで特定のenvironmentの稼働中インスタンスの名前とインスタンスIDをpecoに渡して、選択したインスタンスIDをHOSTに入れてます。 ssm-ec2: ech…
やっとTerraformのアップグレードに手をつけました。 そのときにつまったときのメモを残しておきます。 リソースに存在しない属性がサポートされていない aws_codedeploy_appリソースに存在しない属性がサポートされていないというエラーが0.13にアップグレ…
概要 AWS WAFv2を実際に使って検証したので、その際につまずいたところや考慮したほうがいいところなどまとめます。 今回はレートベースのルールを使ってリクエストの発生元の IP アドレスが同一のものからリクエストが閾値以上になったらブロックする設定に…
こんにちは。 久しぶりにブログ書きます。 aws-vaultコマンド便利ですよね。 色々触っていたらエラー吐くようになったので調査したときのログです。 今回のエラー 雑な意訳:ネストに気をつけてね。$AWS_VAULTを強制的にアンセットして。 なにこれ? aws-vau…
概要 ALBのヘルスチェックにハマったので、そのときに見直すところのメモ。 構成 ALB ECS Nignxコンテナ Railsコンテナ 確認 ヘルスチェックのエンドポイントが間違っていないか ALBのターゲットグループに設定するヘルスチェックのエンドポイントが間違って…
Firelensとは 去年ECSのログ出力先をカスタマイズできる「Firelens」機能がリリースされました。 それまでは、ECSコンテナのログはCloudwatchLogsか自前でFluendコンテナを立ててログ取集する仕組みを作るみたいなやり方だったと思います。 CloudwatchLogsは…
概要 今までECSのコンテナインスタンスの中に入ってDockerコンテナのデバッグするためには、踏み台サーバー経由して対象のインスタンスにsshする必要がありましたが、ECSエージェントのアップデートによりsshなし踏み台なしでコンテナインスタンスの中に入る…
概要 awsのコマンドラインツールはaws-cliがありますが、ecsに特化したecs-cliを使えば、ローカルからクラスタやタスクの作成や簡単なモニタリングをすることが可能です。 そのecs-cliの導入とちょっと使ってみたときのメモです。 導入 macOSの場合 ecs-cli…
AWS勉強ログ。 Route53 ドメイン管理機能 Route53で新規のドメイン取得や更新ができる 権威DNS機能 ドメインとIPアドレスを変換するシステム ドメインを取得するとき 取得したいドメインを入力し、「チェック」する 入力したドメインが使えるかどうか確認で…
AWS勉強ログ。今回は、CloudFrontです。 CloudFrontとは HTMLファイルやCSS、画像や動画などの静的コンテンツをキャッシュして、オリジンサーバーの代わりに配信するCDN(Contents Delivery Network)サービス AWSは世界中にエッジロケーションが120あり、利…
ECSのタスクロールとタスク実行ロールは何が違うのかのメモ タスクロール AWSの開発者ガイドには以下のように書かれている。 Amazon ECS タスク用の IAM ロールを使用すると、タスクのコンテナで使用できる IAM ロールを指定できます。 上記の文言からだと分…
ECSのtask定義のメモリとCPUをチューニングするときのメモ メモリ制限 メモリは「ハード制限」と「ソフト制限」があり、2つの値を設定するとき必ず「ハード制限>ソフト制限」である必要がある。 「ソフト制限」は、コンテナに予約するメモリ量(MiB) 「ハ…
概要 クラメソさんの記事を読んでaws ecr get-loginがv1では非推奨、v2では使えなくなっていることを知ったので、自分の環境どうだったか確認をかねて新しいコマンドecr get-login-passwordを使ってみました。 dev.classmethod.jp 自分の環境 自分のawsコマ…
概要 Ansible-playbookの1つのタスクで複数のユーザーを作成したり、色んなパッケージをインストールしたいときに役立つのがループ処理です。その代表的なパラメータがwith_itemsではありますが、このパラメータもうまく使わないとwith_itemsに羅列するパラ…
概要 デバッグするために、ECRにあげているDokcerイメージをローカルにプルしてビルドするまでのメモ。 環境 mac10.14.6 aws-vaultコマンドをインストールしている 手順 AWS ECRにログインする 下記コマンドを実行するとDokcerにログインするためのアクセス…
概要 今日の午後くらいから今まで動作に問題なかったcodebuildの失敗が連続していた。 原因を調査してみると、fedoraproject.orgの名前解決ができなくなっていた。fedraprojectのDNSサーバーが死んでる模様。同じような現象に遭遇している人もちらほらいるみ…
最近、IAMをどのように管理するのがベストなのか悩んでいたので「AWS IAMのマニアックな話」を読みました。全部で126ページの薄い本ではありますが、内容はIAMについて分かりやすく丁寧に書かれているし、チュートリアルもあるので手を動かしながら理解を深…
Amazon Linux2を使ってEC2インスタンスを立てていたのですが、突然yumが使えなくなり戸惑ったのでその対処法について書きます。 エラー内容 遭遇したエラーは下記。 yum updateしようとすると、HTTPエラーが発生しアクセス許可されていないと言われてしまい…
はじめに terraformに入門したので、環境構築及び基本操作をまとめました。 環境 CentOS7.6 Terraform0.12.13 aws-cli1.16.278 aws-vault4.7.1 手順 1. linuxbrewのインストール brewコマンドがないとaws-vaultをインストールできないので、事前に入れておき…
何をしていたのか 自分のLinux環境にaws-vaultを導入しようと思い、まずはlinuxbrewを公式HPを見てインストールしていたら失敗した。 実行していたコマンドは下記。 sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/instal…
概要 Rubyの勉強をかねて、今までシェルスクリプトでZabbixのアラート通知をしていたものをRubyで書き換えてみました。 設定方法とつまずいたところをまとめたいと思います。 環境 CentOS7.6 zabbix4.0 Ruby2.4 設定方法 slackのWebhook URLを取得する 通知…