CircleCIでSAMをデプロイする

概要 業務でSAMを使って、Lambdaの管理を行っていますが、CI/CDの設定ができておらず、手動でデプロイしています。 READMEに手順は書いていますが、「手順がかけているなら自動化だろう!」ということで、デプロイ設定を行っていきます。 準備 アプリケーシ…

Object-Oriented Conference #ooc_2020

概要 まさかの2週連続カンファレンス参戦。 前回の参加記録はこちら。 juve534.hatenablog.com 先週のPHPerKaigi2020に続いたカンファレンスは、Object-Oriented Conferenceになりました。 今まではPHPの名を冠するカンファレンスに参加していたので、PHPが…

PHPerKaigi2020に参加しました #phperkaigi

概要 juve534.hatenablog.com juve534.hatenablog.com 3年連続の参加です。 今回は滑り込みでCfPしましたが通らず、サポーターで参加しました。 1年目が一般、2年目がスピーカーだったので、サポーターで名札の色を全制覇しにいきました。 結果から言うとジ…

シェルでDBからデータを取得する

概要 普段はPHPを使って、DBからデータを取得しています。 通常はそれで問題ないですが、PHPだとサーバに入れる必要があります。 ちょっとしたデータを取る際に、いちいちサーバにPHPを入れるのが面倒だと感じました。 そこで、PHPを入れないでもDBからデー…

Cookpad Tech Kitchen #23 Live・動画配信の開発最新事情に行ってきた #cookpad_tech_kitchen

概要 金沢の同僚から勉強会の存在を教えてもらったので、 19卒のメンバーと一緒に行ってきました。 発表 Android cookpadLiveの開発改善 内容 Androidについての話がメインなので、あんまりついていけず…。 とりあえず、メモを箇条書きで。 VIPER→MVVMにアー…

Go言語を始めるときに色々入れる

概要 Go言語でなにか作る際に、色々準備をするのでメモを残します。 内容 go mod 最近のバージョンで、パッケージ管理が標準で装備されたようです。 ※前は dep とか使っていた 標準のものを使うので、プロジェクトを始める際は初期化をします。 go mod init …

pecoでGitのブランチを手軽にお掃除

概要 GitHub上ではプルリクエストを出したときに、ブランチを削除するようにしていたが、ローカルは毎回削除していなかった。 そうすると、ローカルにブランチが溜まってしまい、一々削除するのが面倒になっていた。 前回はpecoを使って、Gitリポジトリを移…

ghq + pecoでターミナルを快適化してみる

概要 Gitをターミナルで操作するようにしたが、リポジトリ間の移動がやや面倒くさい。 そんなときにこの構成を知ったので試していく。 ghqとは リポジトリ管理ツール。ghqにGitリポジトリを集約することで、便利なコマンド等を利用できるようにする。 pecoと…

EC2にポリシーをつけて、fluentdでログを飛ばす

概要 EC2のログをfluentdでCloudWatchに投げる - juve534のブログ 前回の実装時に、IAMでユーザを作って、設定ファイルに記載しました。 ただ、設定ファイルにユーザの情報が載ってしまうので、セキュリティが気になると思いました。 そこでロールを作成し、…

LaravelでResponderを使ってみる

概要 Laravel本でADRパターンというのが紹介されていました。 それの実装について、メリットがピンと来ていなかったのですが、下記のスライドで理解できました。 speakerdeck.com そこでLaravelでADRのResponderを使ってみようと思います。 実装 書いてみた…

EC2のログをfluentdでCloudWatchに投げる

概要 fluentd でEC2のログを CloudWatchLog に投げていきます。 導入 まずは公式サイトに沿って導入します。 $ curl -L https://toolbelt.treasuredata.com/sh/install-amazon2-td-agent3.sh | sh 次にCloudWatchに投げたいので、プラグインを導入します。 …

EC2のログをawslogsでCloudWatchに投げる

概要 EC2のログをGUI上から確認したいと思っていました。 ログを投げるやり方は、 fluentdでやったことがありましたが、単純に、CloudWatchに投げるなら、 awslogs というのがあるそうです。 そこで下記記事を参考に awslogs を試しています。 【簡単】EC2で…

CloudFormationで値を動的にする

概要 CloudFormation入門 - juve534のブログ でCloudFormationに入門したのでその続き。 今回は値を動的にする方法を学びました。 内容 前回作ったものは値が動的になっており、そのまま使い回しができない状態になっています。 AWSTemplateFormatVersion: '…

CloudFormation入門

概要 AWS用の構成管理ツール JSONやyamlで記載 スタックで管理 リソースの集合体(EC2, WAF) AWSで構成管理できる。 スタック単位で管理し、スタックにはリソースの集合体がぶら下がる。 そのため、スタックの構築や破棄でAWSのリソースを操作できる。 JSON…

TECH×GAME COLLEGEのDDD勉強会に参加しました

概要 Twitterで度々面白い話を投稿しているnさんが登壇されるということで参加してみました。 自分たちのチームでは、Repositoryパターンを取り入れているが、うまく使えていないので、そこの手がかりが得られたなと思いました。 TL;DR nさんはすごいぞ 内容…

LaravelでActionを切って躓いた話

概要 LaravelでControllerではなく、Actionというクラスを定義して、実装しようとして躓いた話をまとめます。 やりたかったこと postsってルーティングにアクセスしたら、 App\Http\Controllers\Posts\IndexAction が呼ばれる 起きたこと postAutoDumpで下記…

Guzzleを使ってAPIのテストを書く

概要 DBの単体テストは、PHPUnitを使うことで手軽に行うことができていました。 しかし、APIのテストはやり方がわかっておらず、テストコードの作成を行えていませんでした。 今回Guzzleを使って、モックを差せることがわかったので、実践したやり方をまとめ…

Laravelのtinkerを使えるとちょっと幸せになれる

概要 Laravelのtinkerでちょっと幸せになれたので、ここに残しておこうと思います。 tinker 説明 php aritisan tinker のことで、Laravelを対話的に動かすことができるコマンドです。 Eloquentはもちろんのこと、自分で作成した独自クラスの読み込みも可能で…

Laravel5.5のmigrationで、外部キー制約を貼ろうとして躓いた話

概要 業務でLaravel5.5を使っているので、家で学習がてらLaravelを触っていました。 そこで、外部キー制約を貼ったテーブルを作成しようとして躓いたので、忘れないように残しておきます。 やろうとしたこと ブログ投稿を管理するpostsテーブルと、そのブロ…

PHPerKaigi2019に参加&LT登壇しました #phperkaigi2019

概要 juve534.hatenablog.com 前回初めてのカンファレンスとなり、最高の体験をすることができたPHPerKaigiが今年も開催されました。 しかも、今回は初めて登壇する方用に、ルーキーズLT という枠が設けられました。 「これはCfPするしかない!」ということ…

グリー開発本部 Meetup #3 モニタリングに参加してきました #GDMeetup

概要 そーだいさんのPHPerのためのWebサービスのモニタリングの話を聴いて以来、モニタリングに注力していました。 今回は「入門監視」という素晴らしい本と、それに伴うイベントがあるということで参加してきました。 トークメモ 実践 自動復旧 / self heal…

PHPカンファレンス仙台2019に参加してきました #phpconsen

概要 今回も例によって、行くかどうか迷ってましたが、PHPの現場を聞いて参戦を決めました。 先に結論から言うと、とても面白いイベントでした!! セッションについて 今回が初開催らしいのですが、東京や関西に負けないボリュームでした。 また東京と比べ…

最近の近況〜ISUCONとコミュニテイとPHPカンファレンス仙台の話〜

概要 ブログを開設して、カンファレンスの感想を書くだけなのも味気ないので、近況報告でもしていこうと思います。 ISUCONの話 社内の数人とISUCONに出てみようという話になりました。 早速、こちらの本を参考に勉強を勧めています。 環境はこちらのREADMEを…

PHPカンファレンス東京2018の感想 #phpcon2018

概要 元々は予定が入っていて行けなかったが、予定がなくなってしまったので、急遽参戦を決めました。 PHPerkaigi2018でカンファレンスに目覚めて、今回で3カンファレンス目になります。 今回も参考になる話が目白押しでした。 聞いてきたセッション 自分が…

刺激を受けにPHPカンファレンス関西2018に参加

概要 PHPerKaigi2018の感想 - juve534のブログでカンファレンスの楽しさを覚え、今回は関西に参戦です。 PHPカンファレンスとしては、今回が初めての参加でしたが、とても楽しめたのでつらつらと感想を書いていきます。 良かったこと セッションの内容が充実…

CakePHPのモデルでメモリを消費した話

概要 CakePHP1系のアプリケーションでメモリリミットが起きていました。 原因を調査したところ、Primarykeyに検索をかけるだけの単純なクエリ実行で、メモリを多めに消費していることがわかりました。 原因 CakePHP1系のキャッシングが原因でした。 queryメ…

2回目にvagrantを立ち上げたらディスクエラーが発生した件

概要 swooleを触ってみようとytakeさんのvagrant boxを立ち上げた。 一回目は特に問題なく立ち上がったのだが、再度立ち上げたところディスク共有のところでエラーが…。 Vagrant was unable to mount VirtualBox shared folders. This is usually because th…

PHPUnitでdataProviderが動作せずに時間を食った話

概要 PHPUnitを使って、PHPのテストコードを書いていたところ、dataProviderが動かなくて、数時間悩みました。 備忘録として、情報を残しておきます。 なにがあった? 下記のようなテストコードを書いて、PHPUnitを実行したところ、 rgumentCountError: Too …

CakePHP2系でComponentの単体テストを行って躓いた話

概要 CakePHP2系のアプリケーションに、新規でComponentを作成した。 そのComponentに対して、単体テストを行うとしたところ躓いたので残しておく。 内容 Componentに対して単体テストを作成し、公式ドキュメントを参考にsetUpに下記を記述。 public functio…

PHPerKaigi2018の感想

概要 PHPerKaigi2018に参加してきました。 初めて参加したカンファレンスですが、率直に言って最高だったので感想を記載していきます。 行く前の自分 カンファレンス行ったことなくて怖い しょぼい質問したらマサカリが飛んで来るんじゃないか 知り合い居な…