なになれ

IT系のことを記録していきます

2020年で学んだ技術

2020年を何を学んだかで振り返ります。 仕事としてはインフラエンジニア的なポジションで、AWSを前提としてインフラづくりや運用に関わりました。
内容的には、前年から引き続きで、Kubernetesをベースにしたアプリケーションインフラの保守・運用をしました。
また、2020年からの新しいこととして、データ基盤の構築を行いました。

データ基盤

データ基盤については、以下の記事にまとめています。
hi1280.hatenablog.com

AWSには、GlueやAthena、Redshiftといったデータ活用に関わる多くのサービスがあります。
このデータ基盤構築の経験を通してそれらのサービスの使いどころ、メリット、デメリットを実装を通して整理できたのが良い経験になりました。

データ蓄積では、一部のデータソースからの取り込みにFirehoseを利用しました。
Firehoseには、Lambdaによるデータの前処理実行やデータ分析に適したParquetなどのデータ形式の変換ができます。
このような機能を実際に検証できて、Firehoseの理解が深まりました。

今まではなんとなくで使っていたS3について、データ基盤としてS3を活用することになり、改めて理解が深まりました。 hi1280.hatenablog.com

Redash

ECSでRedashの構築を行いました。この経験からRedashの構成、使い方について理解が深まりました。
ECSの理解も足りていなかったので、ECSの勉強にもなりました。

Kubernetes

KubernetesAPIを使ったKubernetesを拡張する方法を学びました。

この学びの集大成として、KubernetesネイティブなOSSであるArgo RolloutsにPRをマージしてもらうことができました。 hi1280.hatenablog.com

Kubernetesのコードリーディングを行ったり、自分でKubernetes環境を作ってみたりすることで、Kubernetesをより深く理解することに取り組みました。

Kubernetesにおいては、CPU Limitの指定によっては意図しないスロットリングが発生することを学びました。

Kubernetesマニフェストの生成ツールであるKustomizeについて学びました。

EKS

EKSに関しては、学んだことを書籍化しました。 techbookfest.org

この1年の間では、Terraformで作られるリソースとEKSで作られるリソースをどう管理するかについて悩みました。
個人的な結論としてTerraformでなるべく管理するのが良いと思ったので、その考えを実際に実現するためにはという観点が書籍に込められていたりします。

また、本番環境におけるEKSクラスタのアップデートについても、この1年で経験しました。

AWS

Athenaを活用して、アプリケーションのパフォーマンスを可視化するアプリケーションログ分析の仕組みを作りました。

AWSのコスト削減方法を学びました。

EC2インスタンスへのSSH接続をSession Manager化できることを知り、対応しました。

システム監視運用

Opsgenieを使ってオンコール対応を仕組み化しました。
OpsgenieはCloudWatch メトリクスやSentryに対応していてオンコール担当を決めて通知してくれるインシデント管理のサービスです。

Terraform

以下のことを経験して、Terraformを使うのが苦にならないくらいにTerraformが手に馴染むようになりました。

  • 定期的にTerraformを実行して、tfnotifyでplan結果を確認する仕組みを作った
  • stateを分割して、Terraformのリファクタリング&パフォーマンス向上を行った
  • Terraformリソースの重複部分をモジュール化して使いまわせるように対応した

まとめ

来年も引き続きAWS、コンテナ技術、Kubernetes、データエンジニアリング周りを学習できればと思います。