ばーろぐわにる

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

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が必要み…

【PART6】Python勉強メモ

クラス変数 クラスオブジェクトが持つ変数。たとえばAppleクラスのオブジェクトap01が持っているap01.colorはインスタンス変数。Apple.colorがクラス変数。 特殊メソッド objectクラスが持つメソッド。これをオーバーライドすることで、たとえばクラス間で四…

【PART5】Python勉強メモ

オブジェクト指向の4大要素 カプセル化 クラスに変数、メソッドを定義することで複数の要素をまとめて保持したオブジェクトを作成することができる プライベート変数、プライベートメソッドを定義することで、クラス・オブジェクトの外から参照・実行するこ…

【PART4】Python勉強メモ

オブジェクト指向プログラミング クラス 複数の要素を持ったオブジェクトを表現する定義するしくみ。 たとえば、"タイトル", "作者", "ジャンル"という要素を持ったbookというクラスを定義できる。 インスタンス 定義したクラスで作成したオブジェクト=イン…

【PART1】Ansible勉強

なにこれ? これを読みながらAWSで実際にコードを実行してみた記録。 1章 イントロダクション 省略 2章 Playbook: 初めてみよう memo AWSのubuntuをansibleで管理するとき、デフォルトでは"python-apt"がインストールされてないので接続できない。 https://g…

Ansibleインストール、テスト

環境 ubuntu@ip-172-31-0-101:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS" ubuntu@ip-172-31-0-101:~$ uname -a Linux ip-172-31-0-101 4.4.0-1054-aws #63-Ubuntu…

【PART3】Python勉強メモ

モジュール 自分で作成したモジュールをimportしてみる ubuntu@ip-172-31-0-101:~$ cat my_module.py def helloworld(): print("hello world") >>> import my_module >>> my_module.helloworld() hello world モジュールファイル自身にテストコードを書いた…

【PART2】Python勉強メモ

タプル >>> my_tuple = ("hoge", "fuga") >>> print(my_tuple) ('hoge', 'fuga') 代入するオブジェクトが1つの場合はhoge = ([object],)のように最後に,をつけること。 これがないと算術演算子()と認識されてしまう。 >>> my_tuple.append("foo") Traceback …

【PART1】Python勉強メモ

これは何の記事? この本を元にPythonを勉強していく。この記事は後から振り返る用の備忘録。 pop リストの最後尾を削除してくれる。hoge.pop()で使う >>> lists = [0,1,2,3,4] >>> print(lists) [0, 1, 2, 3, 4] >>> print(lists) [0, 1, 2, 3, 4] >>> list…

Pythonでスクレイピング

はじめに コードブロック内で">"が">"に化けてるかもなので注意。今後直しますごめんなさい。 やりたいこと Pythonを使ってここから最初の名言のみを抜き出す。いわゆるスクレイピング。ほぼほぼ後述する参考リンクの真似になるがPython練習ということで…

pythonコマンドのデフォルトバージョンを変更する

やりたいこと pythonコマンドのデフォルトはpython2.X。これをpython3.Xに変更する やりかた bashrcにaliasを追加 echo "alias python=python3" >> ~/.bashrc source ~/.bashrc 実行結果 ubuntu@ip-172-31-0-101:~$ python --version Python 3.5.2

UbuntuにMySQL 8.0をインストールするまで

環境 AWSで最新のUbuntu AMIから作成 ubuntu@ip-172-31-0-228:~$ uname -a Linux ip-172-31-0-228 4.4.0-1052-aws #61-Ubuntu SMP Mon Feb 12 23:05:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux ubuntu@ip-172-31-0-228:~$ lsb_release -a No LSB modules a…

AWS CLI使ってそれっぽいVPC/サブネット/NATゲートウェイを作る

やりたいこと AWS CLIを使ってVPC/サブネット/NATゲートウェイを作成し、よくありそうなネットワークを作成する Cloud Formation使ったほうがいい気がするけど勉強ということで 構成 Ubuntuインスタンス作成 無料枠のt2.microでインスタンス作成 IAMロール作…

discordbotでアナウンスページの更新を通知する

やりたいこと ここでゲームに関するアナウンスページが更新されたとき、discordのテキストチャンネルで更新内容を告知したい 準備 discordbot自体の準備はここを参照 今回はRubyで使えるスクレイピングライブラリである'Nokogiri'を使う gem install nokogir…

RHELにPostgreSQLをインストールする

概要 Red Hat Enterprise Linux 7.4にインターネット経由でパッケージを落とさず、ローカル端末からパッケージをアップロードしてPostgreSQLを構築してみたメモ パッケージ取得 "https://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/" ここから以下パッケ…

RubyであるサイトにPOSTして結果を出力する

やりたいこと ここからPlayStation Network IDごとの成績、順位をまとめて取得したい。 通常だとスコア、アシスト、スティールなどの項目を個別に取得しなければならない。めんどくさい。 最初はCapybara/Phantomjsでスクレイピングしてみようと思ったけど、…

AWSのEC2とPollyを使ってDiscordのテキスト読み上げBOTを作る

Discordでマイクなしの聞き専の方向けに、テキストチャットをボイスチャンネルで読み上げてくれるBotの作り方。今回は登録して1年間は色んなサービスが無料で使えるAWSを利用。EC2(仮想サーバ)とPolly(音声読み上げサービス)を使って構築。 EC2インスタンス…