2023年8月2週目振り返り

Airflowでのバッチ処理やNuxt3でのテストを書いてて、7月時点で全然分からなかったことが今は理解できてきていることが実感できて充実した一週間でした。

今取り組んでいることを将来的にも自分のスキルセットとして伸ばしていけるように、タスクをこなすだけじゃなくて再現性を意識した学習の仕方を考えていきたいです。

今週やったこと

クローリング実行用のEC2を構築

Djangoのカスタムコマンドを使ってクローリングを行うにあたり、ChromeをDockerコンテナ内に入れているのですが、M1 MacだとDockerでChromeが動作しないということがわかってきました。

blog.savanna.io

私はM1 Macを使っていたので、ローカル端末から作業ができなくなり困りました。
解決策として、EC2内で同じようにDockerコンテナを立ち上げてそこからDjangoコマンドを実行できるようにしました。
EC2を構築する際、Dockerイメージのビルドがものすごく時間かかる現象が発生してい ましたが、EC2のスペックをt2microにしていたことでメモリが少なすぎるのが原因だったようでした。
メモリ8GiBのスペックにするとすぐにビルド完了して、EC2のDockerコンテナからDjangoコマンドが実行できるようになりました。

Draw.ioでAWS構成図を書き始めた.

引き継ぎ案件で、既存のAWS環境の構成図がなかったので新たに作成しました。
まだ少しリソース書いただけで正確な情報をまとめるのはこれからですが、この機会に構成図も綺麗に書けるよう取り組みます。
とりあえずDraw.ioが使いやすいので採用していますが、もっと楽に綺麗に構成図を作れるツールがあればその都度検討していきます。

今週学んだこと

SVGについて.

Draw.ioの構成図の拡張子でsvgというのがあって、これまでなんとなくしか知らなかったので調べてみました。

www.sedesign.co.jp

SVG( Scalable Vector Graphics )とは、大きさを自由に変えられる画像形式のことです。 PNGJPEG、GIFなどSVG以外の画像ファイルはピクセル(画素)の集まりとして表現されるため、拡大するとギザギザが目立つなど、画質が劣化してしまいます。

それに対して、SVGの画像ファイルは画像を座標と数式で表現するため、どんなサイズでも画質が劣化せず、美しい表現が可能です。

SVGを使うと表示サイズを気にしないで良くなりそうです。

こちらの記事にあるSVGで差分を確認できる方法も便利そうです。 dev.classmethod.jp

課題と対応策

課題1: Proxyサーバーについて理解が浅い.

クローリングの案件でRustで構築したProxyサーバーが動いているのですが、Proxyサーバーは業務の中でアクセス制限がかかっているサーバーにアクセスする用途で使ったことはあるものの、運用などは初めてするのでまだ分からないことだらけです。

対応策1:

Rustの構文として分からない部分と、Proxyサーバーの挙動として分からない部分を切り分けて一つずつ学習していきたいと思います。 低レイヤーの知識が必要になりそうな気もするのでこの辺りも学ぶことはたくさんありそうです。

面白かった記事など.

dev.classmethod.jp

GitHubのプルリクが多くなってきた時ように、Slackへの通知設定を整えてみたいです。