2019/12/18(水)今年のアウトプットを振り返る

この記事は「LAPRAS Fans Advent Calendar 2019」18日目になります。

まずは、今年のアウトプットを振り返ります。

LT登壇

  • 2019/12/17(火) #しがないラジオmeetup 4
  • 2019/08/02(金) 吉祥寺.pm19

社外では2回、また社内イベントで3回、LTしました。

挫折したアウトプット

技術書典7(委託でしたが)に向けて、技術同人誌を書こうとして、全然書き進めることができず、なおざりになっています。

決して諦めたわけではなく、せめて来年夏くらいまでには書ききりたいと思っています。

もくもく会主催

ご縁がありまして、もくもく会「たまもく」を主催し始めました。

転職時期はお休みしてしまったのですが、おかげさまで一緒に運営していただける方も名乗りを上げてくださいまして、11月から新体制を敷いています。

これは本当にご縁のあった皆さんに支えられてやらせていただいてる感が強いです。詳しくは、明日別のアドベントカレンダーで書こうと思っています。

振り返ると

今年は転職があったり、採用の勉強会に顔を出すようになったり、インプットが多めだったにもかかわらず、それをうまく咀嚼してアウトプットできていなかったなあと反省しています。

一方で、採用勉強会に参加すると、人事界隈の皆さんは自社へのご報告は書かれているようですが、反面あまり公開はなさっていない感触を受けています。多少なりともアウトプット慣れしている身としては、この辺でプレゼンスを発揮できるのではないかと考えています。

そもそもの話

LAPRAS Fanを自認するきっかけも、現職のCTOからLAPRASでオファーをいただいて、選考を受けた結果ですし、また入社後にエンジニア採用に関わることになって、LAPRAS SCOUTのUI/UXに感銘を受けたというのもあります。

また、LAPRAS社さん自体もホラクラシー組織を実践していらっしゃったり、先進的な会社でいらっしゃって、うらやましい反面、なかなか真似できるレベルの話じゃないなぁと指をくわえて見ています。

今後のこと

現在、エンジニア採用に関わらせていただいていて、実務レベルではぼちぼち回せるようになったかという実感は得ていますが、そこからPDCAを回して改善していく、というフェーズはこれからになっており、CTOからもはよせぇとツッコミを受けています。

まずは社員のインタビュー記事を上げようと準備中です。これによって自社の風土、文化が明文化できるかなと考えています。

PDCAは回転速度が物を言うと思っています。これからどんどんスピードを上げていくことに慣れねばと気を引き締めて行きたいです。

2019/12/02(月)AWS Lambda 用php7.4.zipをつくる

はてブ数

PHP7.4がリリースされましたね。

そうなったら、当然AWS Lambdaで使いたいじゃないですか(短絡的思考

早速、やってみました。

クラメソさんの以下の記事が参考になりました。

https://dev.classmethod.jp/cloud/aws/create-lambda-custom-runtime-php72/

7.3 のPHPイメージを作成する環境は、以下にあります。

https://github.com/stackery/php-lambda-layer

まずは、cloneします。

$ git clone https://github.com/stackery/php-lambda-layer.git

残念ながら 2019/12/2時点ではPHP7.4には対応していませんが、一部有用ですので活用していきます。

Makefileを見ますと、どんな感じでイメージを作成しているかが分かります。

php73.zip:
	docker run --rm -e http_proxy=${http_proxy} -v $(ROOT_DIR):/opt/layer lambci/lambda:build-provided /opt/layer/build-php-remi.sh 3

当方の環境がWindowsであるのと、プロキシとかは不要であることから、直接Dockerコマンドをたたくことにします。

> docker.exe --rm -v C:\path\to\php-lambda-layer:/opt/layer lambci/lambda:build-provided /opt/layer/build-php-remi.sh 4

。。。失敗しました。

cp: cannot stat ‘/usr/lib64/libonig.so.5’: No such file or directory

鬼車がPHP本体にバンドルされなくなったアレですね。

build-php-remi.sh を修正します。

yum install -y httpd
yum install -y postgresql-devel
yum install -y libargon2-devel

# 以下を追加
yum install -y oniguruma5

先ほどのdockerコマンドをやり直します。今度は成功しました。 php74.zip が作成されています。

これをどうごにょごにょするのかは、調べ途中。。。

2019/11/24(日)AWS IAMこねくりまわし

はてブ数

昨日の投稿のつづき。

やっぱりAWSを触るからには、AWS CLIですべてを操作したいじゃないですか。

昨日の段階ではルートアカウントで操作したったらええやん思ってましたが、AWSに「ルートアカウントのアクセスキーを消せ!」と怒られたので、ひとまずIAMだけこねくりまわせるだけのグループ・ユーザを作成します。

グループ、ユーザの作成

新規グループを作成します。

01_create-group.png

グループ名を入力します。

02_create-group-name.png

IAMFullAccessポリシーを割り当てます。

03_create-group-attach-policy.png

確認して、グループ作成します。

04_create-group-velify.png

新規ユーザを作成します。

05_create-user.png

ユーザ名を入力します。

06_create-user-name.png

ユーザにグループを割り当てます。

07_create-user-add-group.png

確認して、ユーザを作成します。

08_create-user-verify.png

アクセスキーを取得します。

09_create-user-get-key.png

これで、AWS CLIからIAMを更新する準備が整いました。

で、今日は時間切れ。

2019/11/23(土)#たまもく 2019/11/23 成果

はてブ数

たまもくも少し間をあけましたが、再開してトータル第6回を数えています。

やるからにはちゃんと成果を記録に残さねば、と思いまして、作業記録を残します。

今回は、来月のアドベントカレンダーのネタであるところの、「AWS LambdaでPHPでスクレイピングする環境を整える」件の調査を進めました。

AWS Lambda に Serverless CLI をつかってデプロイする

インストールとかは、以下の手順。sudoとかは適宜つけてください。

$ pip install awscli aws-sam-cli
$ npm i -g serverless

まずはawsにログインします。アクセスキー、シークレットの入手は次の節でまとめます。

$ aws configure
AWS Access Key ID [None]: XXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]:

テンプレを使ってプロジェクトを作ります。

$ sls create -t aws-provided -p aws-php-selenium-docker

まずは、テンプレそのまんまをデプロイしてみます。

$ sls deploy

権限が足りないエラー発生、権限追加、を何度か繰り返して、ようやくデプロイできました。

呼び出してみます。

$ sls invoke -f hello
{
    "body": {
        "input": {},
        "msg": "Wecome to serverless!"
    }
}

JSONが返ってきました。

AWS IAM で適切な権限のユーザをつくる

これ、だいぶ試行錯誤しました。正解かどうかも若干あやしいところ。ひとまず、やったことを残します。誰かツッコんでください。(切実)

  1. ルートアカウントでログイン
  2. IAM でグループを作成する
  3. IAM でユーザを作成し、グループに割り当てる
  4. アクセスキー、シークレットを取得する

IAMの画面です。

グループを作成します。

01_create-group.png

グループに適当に名前をつけます。

02_create-group-name.png

適当にポリシーをアタッチします。

03_create-group-attach-policy.png

確認画面で、作成ボタンで作成します。

04_create-group-verify.png

次に、ユーザを作成します。

05_create-user.png

適当にユーザ名を作成します。

06_create-user-name.png

ユーザを先ほど作成したグループに加えます。

07_create-user-add-group.png

こうしてできたユーザの認証情報から、アクセスキーの生成を行います。

08_create-user-get-access-key.png
09_create-user-show-access-key.png

あとから思ったんですけど

これ、awscli から全部できるんじゃね?と思って、調べてみたらできるっぽいです。

ルートアカウントのセキュリティ資格情報を開きます。

10_root-user-authentication.png

「アクセスキー (アクセスキー ID とシークレットアクセスキー)」から、新しいアクセスキーを作成します。

11_root-user-create-key.png

これを、aws configure で入力してルートアカウント権限になります。あとは、コマンドをバシバシと打つ。

・・・はずなんですけど、今日は時間切れ。