ばーろぐわにる

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

「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…

jqの小ネタ

この記事は? 業務でよく使う jq のTIPS記事。随時更新 -r オプションでraw文字列取得 出力結果から任意のキーを抜き出して再利用したいとき、普通にjq使うとダブルクォートも含めて格納されてしまう。そこで -r オプションを利用すればraw stringsとして格…

EC2のNameタグにプレフィックスがついてるインスタンスだけ操作させたい

やりたいこと Nameタグに任意のプレフィックスが付与されているインスタンスのみを対象に起動・停止・再起動ができるIAMポリシーを作りたい。たとえば"dev-*"みたいな感じ。操作できる環境を定義するのに利用できる。まあベストなのは"Env"みたいなタグを作…

SSH接続元のid_rsa.pubのせいで公開鍵認証が失敗してた

ssh

概要 SSHの公開鍵認証を使ってパスワード無しでログインしようとしたとき、公開鍵も暗号鍵も正しく配置してかつ権限も間違ってないのにログインできなくてハマったのでメモ。知ってる人は当たり前じゃん?って内容なのかもしれませんが色々調べたのでメモ。 …

S3にPutObjectするときの権限で注意したいこと

概要 S3にバケット指定で書き込み権限(PutObject)を付与する場合、JSONで編集してたらちょっと引っかかってしまったのでそのメモ。超絶小ネタ。 失敗した権限 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "A…

Terraformのtfvarsを使ってAPIキーを読み込む

概要 TerraformでAWSリソースをいじる場合、EC2インスタンス上で実行するならIAMロールで問題ないが、ローカルから実行するとAPIキーの設定が必要になる。tfファイルをGitHubで管理するとき、APIキーが書かれているとそのままPushするわけにはいかないのでち…

LmabdaからS3のファイルを読み込む

やりたいこと LambdaでS3によってデフォルト暗号化されたファイルを読み込みたい。LambdaでS3上のデータを取得してガチャガチャするのに必要な処理。 テスト用S3バケット作成 まずはS3バケットの作成。今回はアップロードするファイルが機密性の高いものと想…

Lambdaで明日の予定をLINEで通知する

やりたいこと 嫁さんとGoogleカレンダーの予定を共有しているのだが、カレンダーをチェックすることを忘れてて何回かトラブルが起きた。 例えば飲み会、弁当不要みたいな予定を確認し忘れて、1日4食になったり。次の日遊びに行く予定を完全に忘れてたり(主…

AWSのパラメータストアを使ってシークレットキーを参照する

やりたいこと EC2やECSでシークレットキーを利用してAPIを叩く必要がある場合、ソースコードにべた書きは気持ち悪いしどうしようということがあると思います。 AWSのサービスであればもちろんIAMロールを利用するのですが、外部サービスの場合はどうしてもシ…

discordbotを使ってtwitterに投稿する

目的 所属しているゲームコミュニティの宣伝用ツイッターアカウントへdiscordbotのコマンドを使って投稿したい 環境 $ python --version Python 3.6.6 $ pip list Package Version ------------- ------- aiohttp 1.0.5 async-timeout 3.0.0 chardet 3.0.4 d…

fishでリダイレクトによる上書きを禁止する

背景 もともとはfishではなくzshを使っていました。キーバインドやghq/pecoなどを利用していろんなカスタマイズをしていました。ある日、.zshrcにexportを追加しようとシェルからリダイレクトで追記をしました。したつもりになっていました。コンソールを再…

tmuxでクリップボードにコピーする(tmux 2.6以降)

概要 tmuxでコピーした内容をクリップボードにコピーする方法について 何百番煎じかはわからないが、使ってるバージョンだと上手く動かないことがあったので書く 環境 macOS 10.13.6 tmux 2.7 設定 tmux-MacOSX-pasteboard使ってなんとかしようとしてたけど…

Git使ってみる

Gitとは バージョン管理ツール。Git≠GitHub。 インストール AWSのUbuntu 16.04.3 LTSだと不要。最初から入ってる。 設定 メールアドレス、名前を設定しておく。GitHub使うだけなら不要かも。 git config --global user.name "My Name" git config --global u…

pipが壊れた?

なにをしたか simplejsonをインストールしようとしたところ、pipのバージョンが古いといわれたのでpipを以下コマンドでアップデートしようとしてみた。するとこんなエラーが。 pip install --user --upgrade pip ubuntu@ip-172-31-0-101:~$ pip Traceback (m…

virtualenv使ってみた

virtualenvとは 独立したPythonの実行環境を構築できるツール。 なにがいい? 1つのサーバに複数のアプリケーションが存在している場合に使える。たとえばアプリケーションAはライブラリhoge 2.1が必要だが、アプリケーションBはライブラリhoge 3.4が必要み…