2023年9月5週目振り返り

今週やったこと

Amazon MWAAの環境構築に必要なAWSリソースの調査

MWAA(Managed Workflows for Apache Airflow)の環境を立ち上げる予定があり、そのために必要になるリソースを調べていました。

API実装・テスト

けっこう仕様が複雑でレスポンスに含むデータが多いAPIの実装を進めました。
コードの変更が多くならないように、DB構成の変更やテストデータの修正、DBアクセスするrepository層のメソッドの実装などは分けてプルリクエストを作成してマージされましたので、今はUseCase層の実装をしています。

個人的にいろいろ生産性を上げるための取り組みを試していて、今回はUseCase層はTDDの要素を多めに取り入れてみています。

たとえばAPIが返すレスポンスがこんな感じの場合

{
    "key1": {
        "value1": 1
    },
    "key2": {
        "obj1": [
            {
                "key3": "value"
            },
            {
                "key4": "value"
            }
        ],
        "stringvalue": "test"
    }
}

key2は構造がややこしいのでまずはkey1だけ期待値を用意してテストを書いて、テストが成功するようにプロダクトコードも実装していく、みたいな感じで問題を一番小さく分割して解決していく方法を試しています。
今のところ良い感じです。

現場の端末でGitHub Copilot使えるように設定した

GitHub Copilotは6月ごろ個人端末で試して以降しばらく使っていなかったのですが、会社のオーガニゼーション全体でCopilotを有効にしていただいたので最近から会社端末で使い始めました。
使ってみた手応えとしては、かなり生産性を上げれそうでかなり気に入ってます。

6月ごろ使ってた時はエディタのコード補完が動いてほしいタイミングでGitHub Copilotの提案の方が先に出てきたことにちょっと使いづらさを感じたりしていたのですが、そのあたりの設定はどうにでも調整できそうだし、慣れれば特に気にならないと思えてきました。

最近は業務で忙しくてAIを活用するための情報を調べることにあまり時間を使えていませんでしたが、またいろいろ調べてみたいと思います。

今週学んだこと

MWAAの環境で必要なAWSリソース

docs.aws.amazon.com

ドキュメントを読む限り、以下のリソースが必要になりそう・

  • VPC
  • サブネット
    • プライベートとパブリックが二つずつ
    • セキュリティグループ
  • S3バケット
    • DAGファイルやrequirements.txtを置くため
  • 以下にアクセスするためのIAMロール
    • S3
    • CloudWatch
    • SQS
    • KMS

自分で作る必要があるリソースとMWAA環境を立ち上げた際にまとめて作られるリソース(IAMとか)があると思われるのでもう少し調べる。

また、使用料金の概算を予測するためCost Explorerなども使えるか調べたい。

docs.aws.amazon.com

面白かった記事など

logmi.jp

バッチで使えるAWSのサービスが比較されていて勉強になりました。