なになれ

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

2021-01-01から1年間の記事一覧

2021年で学んだ技術

2021年を何を学んだかで振り返ります。仕事としてはインフラ、データエンジニアリング領域に関わりました。 ポジションとしてはチームリード的な立場でソフトスキル的な面も向上できた1年でした。 AWS 2021年はAWS Well-Architectedフレームワークに則り、会…

GitHub Actionsを使ったECSのデプロイメントパイプライン構築

AWS Advent Calendar 2021 カレンダー2の6日目の記事です。 ここでは、GitHub Actionsを使ったECSのデプロイメントパイプラインを構築する方法を紹介します。 ECSのデプロイにおいて、GitHub Actionsを使う理由は以下のとおりです。 環境構築、コンテナイメ…

AWSにおけるSQLを使ったデータ基盤の監視

本投稿では、AWSを前提にして、SQLを使ってデータ基盤の監視を行う方法について紹介します。 以下のBigQueryを使用した事例をかなり参考にさせてもらっています。 tech-blog.monotaro.com データ基盤を運用していると、データ処理後に生成されるデータの中身…

分かりにくいAmazon Athenaでのデータ型の変更方法をまとめる

背景 Amazon Athenaにおいて、既存テーブルのカラムのデータ型を変更する場合、単純に変更できないことがあります。 本内容では、Athenaにおけるデータ型の変更方法について説明します。 また、データの形式としてParquetでデータを扱っていることを前提とし…

AWS Lambdaのコンテナイメージサポートを前提としたローカルでの環境構築・テストを考えた

データエンジニアリングの文脈で、AWS Lambdaを使ってデータ処理を実装することが最近多くなってきました。 Lambdaでは、コンテナイメージサポートを利用することで、ローカルでのテストがやりやすくなっています。 これを踏まえて、Lambdaのローカルでの環…

ISUCON11予選に参加した

8月21日(土)に開催されたISUCON11予選に参加しました。ISUCONへの参加はISUCON9の参加以来、2年ぶりになります。 isucon.net 今回は会社の同僚と3人チームで参加しました。私以外の他2名はISUCON初参加というメンバー構成でした。 結果は予選敗退という形で…

Udemyにコースを公開して講師デビューした

Udemyにコースを公開して講師デビューしました。この投稿はそのコースの宣伝記事です。 どんなコースでどんな思いで作成したのかを紹介します。 コース内容 Kubernetes、Amazon EKSを手を動かして学ぶハンズオンのコンテンツになります。 www.udemy.com Kube…

AWS ChatbotによるLambda関数を用いたAWSへの操作を試した

AWS Chatbotを使うと、CloudWatchアラームからの通知をSlackにPostしたり、Slack上でAWS CLIライクな操作を実施できます。 今回は、AWS Chatbotを使い、Slack上でLambda関数を介して、CodeBuildを実行する仕組みを作ってみました。 その内容を紹介します。 …

execだけではないECS Execの機能を試した

ECSに対するdocker exec的な機能であるECS Execを試しました。 ECS Fargateでは、ECS Exec登場以前まではexecができずにトラブルシューティングがやりづらい状態だったかと思います。 ECS Execはこの問題が解消される有用な機能です。 また、ECS Execは、単…

AWS Lambdaのコンテナイメージサポートを使用したCI/CD環境の構築

AWS

現在では、AWS Lambdaの実行環境にコンテナイメージが利用できます。 aws.amazon.com これにより、ECSやEKSといったコンテナ系のサービスだけでなく、Lambdaでもコンテナネイティブな開発環境を作ることができます。 自分の環境では、ECSやEKSとLambdaを併用…

AWS Load Balancer Controllerの省力Getting Started

ALB Ingress ControllerからAWS Load Balancer Controllerに変わってから、Getting Startedしてなかったので、試してみました。 公式ドキュメントのExamplesを試すでも良かったのですが、手数が多そうだったので、自分なりに手順を作りました。 kubernetes-s…

Kubernetesのマルチクラスタ管理に役立ちそうなCluster API Provider AWSを試した

Kubecon EU 2021のセッションで知ったCluster API Provider AWSを軽く試したので、その内容を紹介します。 Cluster API Provider AWSを使って、EKSでKubernetes Clusterを作成しました。 ちなみにセッションはこれです。 kccnceu2021.sched.com youtu.be な…

いつも分からなくなるNode.jsのStream APIの使い方を理解する

この投稿は個人のメモ的な要素が強いです。 AWSを使っていると、S3にJSONファイルを配置する処理をたびたび行います。 その際にJSONからJSON Lines形式に変換すると、S3からデータを処理するときに都合が良いので、そのような処理もついでに行います。 Node.…

Redashでよく使う便利機能と気をつけないといけないこと

最近はRedashを使って、データを可視化することが多いので、その知見を紹介します。 Redashでよく使う便利機能と気をつけないといけないことについてです。 なお、Redashのバージョンは9.0.0-betaを使用しています。 よく使う便利機能 クエリパラメータ クエ…

Terraformとecspressoを使用してRedashをECS上で動かす例を紹介する

本記事では、AWS環境でRedashを動かす場合に、ECSを使う例を紹介します。 できるだけ、手間をかけずにセットアップしたいため、Terraformとecspressoを使用します。 これらのツールを使われていない方でもRedashをECSで動かす参考になると思います。 公式に…

AWSでTerraformの実行を自動化する方法

AWSでTerraformの実行を自動化する環境を作成しました。 github.com AWS内で閉じた形で、Terraformを使い、自動的にAWSリソースを作成する前提です。 Terraformを実行する環境はCodeBuildで用意しました。 その実現方法を紹介します。 環境作成 ディレクトリ…

Athenaでパーティションを楽に作成する方法

以前にAthenaの記事を投稿した時にパーティションの作り方として、Lambda関数からAthenaのクエリを実行する方法を紹介しました。 hi1280.hatenablog.com このやり方よりも簡単にパーティションを作成する方法を今回は紹介します。 内容としては、パーティシ…

おうちKubernetesクラスタでtype: LoadBalancerを試す

type: LoadBalancerは、ロードバランサーを表すKubernetesリソースです。 パブリッククラウドでのKubernetes環境であればLoadBalancerリソースを作成すると、各パブリッククラウドが提供するロードバランサーが作られて、Kubernetes環境でロードバランサーを…

ARM用コンテナイメージを楽に用意する方法(OSS限定)

ラズベリーパイでKubernetesクラスタを構築した場合、ラズベリーパイはCPUがARMアーキテクチャなので、各種プログラムの起動には、ARM用コンテナイメージが必要になります。 Argo CDなどで有名なArgo Projectのツールでは、ARM用のコンテナイメージがないこ…

AWS環境におけるモノレポでのDockerイメージのビルド方法

調べた限り、モノレポでDockerイメージをいい感じにビルドする方法が見つからなかったので実装してみました。 AWS環境が前提で、CodeBuildを使ってDockerイメージをビルドする想定です。 GitHub Actionsを使えばもっとスマートに実装できるかもしれませんが…