概要
最近実務や勉強を通して身につけた事の振り返りです。
日々学ぶ事が多く頭の中を整理するためのアウトプット記事です。
内容が皆様の少しでも役に立てたら嬉しく思います。
トピック
- プロジェクトテンプレート作成
- auth0の認証まわりとNoSQLのMongoDB
- AWS環境の構築 SAA試験勉強
プロジェクトテンプレート作成
弊社では経験の浅いエンジニアでも案件にスムーズに取り掛かれるように
要件定義から開発まで一通りの流れをノウハウとして纏めたドキュメントを作成しています。
その中で課題として上がっていたのが、新規プロジェクトを始める際に毎回1から環境構築をしていて開発に入る前に時間を取られてしまう問題がありました。その手間を省くためにある程度構築が済んでいる雛形のリポジトリ を作成し、コピーする事でスムーズに開発に入れるような状態を作る事ができました。
内容としては、Dockerfile(compose)にwebサーバー、アプリケーションサーバー、DBサーバコンテナを構築する記述を行い、docker-compose upとするだけで開発環境が整う様になりました。
Laravelもあらかじめ入れておき初期設定を済ませておく事で毎回行っている設定(日本語化の設定など)をしなくても良くなりました。
また、makefileでエイリアスを作る事で、make up とするだけで環境構築ようの一連のコマンドが自動で走りるようにしました。つまり、リポジトリ をクローンしたら、make upするだけで環境構築が出来てしまうのです。
またLinterやprecommitやフォーマッターやGitHub Actionsの設定を行う事で、コミット時に自動でlinterが走り、コードを整形してリポジトリにpush時にテストが自動で実行される様な設定にしました。
ここまでの作業を毎回行うのは手間ですよねーかなり短縮されたのではと思います。
auth0の認証まわり
最近、JWTを使って認証するAPIを作成しましたが、今度はauth0を使ったM2M認証を行う必要がありました。
認証フロー図は以下より引用
Laravel用auth0のSDKを用いて認証が必要なAPIを作成しました。
ヘッダーのAuthorizationにトークンを詰めて認証する方式ですね。
NoSQLのMongoDB
今回初めてRDBではなくてキーバリュー型のMongoDBを使用しました。
LaravelではMongo用のライブラリをインストールしMoloquentを使う事でEloquentと同じ書き方でDB操作が出来ます。
導入に結構詰まりましたが無事解決しました。
Mongo Expressを導入するとGUIでデータ確認できるので便利です。
AWS環境の構築 SAA試験勉強
最近は実務でインフラを担当する事が多く、Udemyで学習して実際にインフラを構築したり、資格取得に向けて勉強したりしてます。
最近作った環境は下記の感じです。(かなりざっくりでちょっとボカシ、冗長化はコストの関係で後ほど)
マネジメントコンソールでポチポチ作ったので今度はTerraformやPackerでIacで作りたいです。
ハマった点(添付記事で解決)
privateサブネットのEC2にSSHできない。。。
ベーシック認証(Lamda)
ALBに証明書2つ設定してホストによるルーティング
AWS資格試験
通勤時間等にAWS SAAの勉強をしてました。
Udemyのコースで内容を勉強して、Koiwaの問題集で試験対策しました。
見事合格できました!!
今回は以上になります。最後まで読んでいただきありがとうございました。