ばーろぐわにる

SIerからWEB系?インフラエンジニアにジョブチェンジした見習いの備忘録。投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。

bashで変数の中で変数を使う

今回も既出の情報シリーズをお送りいたします やりたいこと 例えば ${hoge_${fuga}} とか ${hoge_$(echo ${fuga})} みたいなことがやりたいと思ってもそのままやろうとすると怒られる。 $ echo ${hoge_${fuga}} bash: ${hoge_${fuga}}: bad substitution $ e…

RubyのHashで値が一致するキーを探す

Hash#keyを使う docs.ruby-lang.org => {:a=>"value1", :b=>"value2", :c=>"value2"} irb(main):019:0> h.key('value1') => :a irb(main):020:0> h.key('value2') => :b irb(main):021:0> h.key('value3') => nil 一致する値がない場合は nil 、複数一致する…

メールヘッダーのRFCを読んだメモ

なにこれ RFC5322を読んだメモ この辺を使って読みました。フィールド定義のところしか読めてないですが Mouse Dictionary - Chrome Web Store Google Translate - Chrome Web Store RFC日本語訳一覧 イントロダクション RFC5322はRFC2822の更新版 メールヘ…

「入門 監視」を読んだ

なにこれ こちらを読んだのでそのメモです。 www.oreilly.co.jp メモ 1章 監視のアンチパターン ツールで監視を決めるな。やりたいことに合わせてツールを選び、組み合わせ、必要であれば作る 監視はスキル。全員が一定水準を満たすべき 誰かに責任を押し付…

Linuxコンテナのタイムゾーンを変更する

最初にしていた勘違い コンテナのタイムゾーンってホストOSのタイムゾーンが自動的に同期されるよね ↓ されませんでした Linuxってどこでタイムゾーンを設定してるの? 色々調べたところ、以下の優先順位で設定されます。 環境変数 TZ /etc/localtime (/usr/…

Dockerfileで引数を元にベースイメージを指定する

目的 docker buildの引数でDockerfileのベースイメージ(FROM部分)を指定する ベースイメージが環境毎に違う場合(AWSアカウントが別れてて、ECRが別々とか)、1つのDockerfileで違うリポジトリを指定したいときとかに便利 やりかた Dockerfile ARG BASE_IMAGE …

aws-sdk-goでpaginate

なにこれ aws-sdk-goでpaginateするサンプル paginateとは一度のリクエストで全ての結果を出力できない際、NextTokenを引数にしてリクエストすることでページ割して全ての結果を取得することだと思ってる boto3であればPaginatorsというのを使うと上記の処理…

DatadogのダッシュボードをTerraformでちょっとだけ簡単に作る方法

目的 Datadogのダッシュボードをシステム毎にいっぱい作らなければいけないけど、いちいちポチポチやるのはとてもめんどくさい。かと言ってゼロからTerraformで作るのは大変そうという人向けのちょっとだけ簡単になる作り方です。 作り方 API Key, Applicati…

ECSサービスのオートスケーリングを停止する

なにこれ AWSコンソールからECSサービスを設定する中にオートスケーリングの項目があります。こいつを停止・再開してみるのが本記事の目的です。オートスケーリングなんて普段止めることは中々ないと思いますが、デプロイの際に古いバージョンのコンテナを一…

terraform-aws-providerでECS Capacity Providerが削除できるようになったので検証してみた

最近全然ブログを書いていなかったのでリハビリブログです。 ECS Capacity Provider(CP)は必要なタスク数に応じて自動的にEC2 Auto Scaling Group(ASG)のスケールイン・アウトを行ってくれるので便利でしたが、一度作成すると削除できないというちょっと扱い…

最近読んだ本と感想のまとめ

冒頭 このエントリは Sansan Advent Calendar 2019 第18日目の記事です。 adventar.org ブログを書こう書こうと思いつつ、ついついアメリカ大陸に跨る国道の再建に旅立ってしまう日々を送っておりました。今回は最近読んで面白かった本の紹介エントリです。…

nginxにnginx-auth-ldapを導入したカスタムパッケージを作成する

目的 nginxでnginx-auth-ldapが導入された状態のカスタムパッケージを作成する 一番最後にDockerfileとしてまとめています ビルド用コンテナ準備&起動 docker pull ubuntu:latest docker run -it --rm ubuntu:latest /bin/bash パッケージビルドする準備 ngi…

EC2インスタンスをELBから登録解除して再起動するツール作った

なにこれ EC2インスタンスをCLB/TargetGroupから登録解除、インスタンスを再起動してもう一度CLB/TargetGroupに登録するツール github.com 使い方はGitHubの方をご参照ください 仕組み 引数のインスタンスIDに紐づくCLB, TargetGroupを探してDeregisterする …

awscliからタグ付きでインスタンス起動する

ドキュメントに書いてある通りだけど何度か使いそうなのでメモ docs.aws.amazon.com aws ec2 run-instances \ --image-id ami-XXXXXXXXX \ --instance-type XX.XXXX \ --security-group-ids sg-XXXXXXXX \ --iam-instance-profile 'Arn=arn:aws:iam::XXXXXXX…

「Linuxのしくみ」をもっと早く読んでおけばよかったと後悔した

きっかけ Linuxエンジニアとしての基礎力のなさを見抜かれ、これ読んでみるといいよとおすすめされたのがきっかけ。 gihyo.jp 大変お恥ずかしい話だが、自分はエンジニア7年目にして初めてLinuxについての本を読んだ。それまではなにか上手くいかないことが…

Lambda@Edge関数削除しようとしたらエラー出た

エラー 関数の削除時にエラーが発生しました: Lambda was unable to delete arn:aws:lambda:us-east-1:you_account_id:function:cloudfront-redirect-rootobjects-test:1 because it is a replicated function. Please see our documentation for Deleting L…

Python使ってMySQLに接続する

MySQLの準備 コンテナイメージ取得 docker pull mysql コンテナ起動 docker hubの説明をもとに起動。ローカルでプログラムを実行するつもりなので -p でローカルポートを指定しておく docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pas…

CloudWatch Logs InsightsでAurora(MySQL)のログイン失敗を調べる

fields @timestamp, @message | sort @timestamp desc | filter @message like /FAILED_CONNECT/ | limit 20 aws.amazon.com

Basic認証で利用するAuthorizationヘッダーについて

ユーザID, パスワードをbase64エンコードした形式で突っ込む。故にユーザ, パスワードが同じであれば値は変わらない(=平文)。 ちなみに Authorization ヘッダーは OAuth 2.0 など他の認証方式にも使われるhttpの標準仕様 https://tools.ietf.org/html/rfc723…

docker-composeのvolumesでホストパスを使うときはホストOSに注意

問題 ローカルのmacでdocker-composeした結果と、CodeBuildでdocker-composeした結果が異なってなんでだろうってなった CodeBuildの方でそんなファイルねーよってエラーが出てた 原因 docker-compose の volumes はホストOSのファイルシステムを利用してファ…

ALB作成時にパラメータを自動設定するLambda関数つくった

なにこれ CLBからALBの移行をしてて、結構な数のALBが作成されたのだけどアクセスログやConnection Drainingのタイムアウトを1台づつ設定するのはめんどくさい。そこでALBとTargetGroupが作成されたときCloudWatch Eventsで発火して、Lambda関数で自動設定で…

Nuxt.jsをインストールしてつかってみる

Nuxt.jsとは Nuxt.js は Vue アプリケーションを作成するフレームワークです。ユニバーサルアプリケーション、静的に生成されるアプリケーション、シングルページアプリケーションの中から作成するアプリケーションを選ぶことができます。 本文ママ 何が嬉し…

EC2のユーザーデータでEFSをマウントする

やりたいこと タイトルの通り なぜやる? スポットインスタンス(SpotFleet)で開発環境を作成したとき、起動都度マウントするのはめんどくさいのでユーザデータで自動化したい。 セキュリティグループ設定 EC2, EFSの両方が所属するセキュリティグループを作…

Discord読み上げBOTを作り直した

概要 少し前に作ったDiscordのテキスト読み上げBOTを作り直す機会があったのでまとめてみた。読み上げBOT自体はすでに前例があり、あんまり新規性のない内容ですがご容赦くださいませ。 この記事は Sansan Advent Calendar 2018 - Adventar の24日目の記事で…

IntelliJ UEをインストールしてからやったこと

なにこれ IntelliJ UEをゲットしたのでインストール・設定したときの備忘録 今後随時更新する。はず。 インストール・セットアップ メールで送られてきたリンクからIntelliJをダウンロードして起動 最初のセットアップ画面でコマンドラインからIntelliJを起…

ECRにPushしたイメージをFargateで実行する

やりたいこと ECRにアップロードしたコンテナイメージをFargateで実行する ECRとは プライベートのコンテナリポジトリ デフォルトでは作成したAWSアカウントからのアクセスのみ許可。リソースポリシーを変更することで他アカウントからのPush/Pullの許可も可…

VPCエンドポイントを使ってみる

VPCエンドポイントとは 通常、S3やDynamoDB, API Gatewayなどのサービスはインターネットを経由してアクセスする。しかしVPCエンドポイントを利用すれば、インターネット上に出ることなくこれらのサービスにアクセスすることができる。これを使うと以下のよ…

EC2で怪しい通信を検知したとき

概要 Guard Dutyなどの脅威検出サービスでEC2が怪しい通信をしてるのを検知したときにやるべき行動をまとめてみた。 状態を保全する 調査やテストを行うなかでプロセス終了、ファイル作成削除などを実施する場合が出てくる。フォレンジック(今回は証拠保全…

Terraform使ってECS/Fargateでコンテナを稼働する

やりたいこと コンテナの勉強がてらみんなのアイドルTerraformを使ってECS/Fargateでコンテナが稼働するところまでを試してみる。今回はDockerHubのコンテナイメージをそのまま利用するためECRは使わない。 今回利用するAWSサービス ECSとは AWSのコンテナ管…

git mergeで複数ブランチの変更を適用する

git

やりたいこと 複数のブランチの設定を適用した状態でテストを実施したい。目的が異なるため複数ブランチで修正を実施していたが、両方共適用しないと上手くアプリが動かないという状態に陥った。 やりかた git clone git@github.com:hoge/fuga.git -b dev1 c…