FKeisuke

普段はサーバーサイドのエンジニアをしています。 試したことや技術的なことについて書き綴…

FKeisuke

普段はサーバーサイドのエンジニアをしています。 試したことや技術的なことについて書き綴りたいです。 拙い文かもしれないですが見聞きしたことを平易な文章でアウトプットしたいと思います。 https://twitter.com/FKeisuke2

最近の記事

Step Functionsの入力値チェックについて

悩みStep Functionsの入力値チェックのやり方について最近少し悩んでます というのも入力必須(だったはずの)項目が設定されなかった場合でもデフォルト値を使って処理を行いたいという要望を受け、できないこともないので対応を行いましたがやり方がダサく、他に方法がないかゆるく探している次第です。 今から説明する方法よりスマートなやり方をご存知の方がいましたら教えてください… 現状のやり方簡単に説明すると下記のような感じでChoicesを利用し、特定の項目が`"IsPres

    • Minio + DuckDB + dbt + Airflowでローカルにデータ基盤を立ててみる

      かなり久しぶりの投稿になりました ここ3年ちょっとほどデータ系の分野が楽しく、データエンジニアをやっています 何年データエンジニアとしてやっていくかはまだ未知数ですがしばらくはこちらの道でやっていきたいと思っています 今日はミニデータ基盤としてMinio + DuckDB + dbt + Airflowでかなり楽にローカルにデータ基盤を立てられるよという紹介をしたいと思います リポジトリこちらとなります (まだ足りていない部分が割とありますが…) 使用するツールのざっく

      • Enum(Python)の小ネタ

        PythonのEnumでCallableな値を持ちたいと思ったことありませんか?(強引) そして実装してみるととある問題に直面しませんか? つまりはこういうことです。 import enumimport sysfrom functools import partialfrom typing import List, Callableclass Color(enum.Enum): RED: Callable[[str], str] = lambda m: f"<fon

        • terraformのaws_cloudwatch_composite_alarm

          ここ一年terraformを利用してきた中で、最近AWS CloudWatch AlarmのComposite Alarmを作成する際にほんのちょっと試行錯誤する必要があったので、忘れないうちに書き殴ろうと思います。 Composite AlarmとはComposite Alarmとは簡単に説明すると、複数のアラームを組み合わせてひとつのアラームを作成するものとなります。 詳しくは下記を参照してください。 terraformでComposite Alarmを利用するための

        Step Functionsの入力値チェックについて

          Webシステムとは

          Webシステムの仕組みWebとはWorld Wide Web(www)を省略したもので、 インターネット上で提供されているハイパーテキストシステム (wikipedia引用)のことを指します。 これだけだとよくわからないので、「インターネット」と「ハイパーテキストシステム」という言葉に分解します。 まずインターネットとは世界中のコンピュータ同士が繋がってできたネットワークのことです。 世界中のコンピュータ同士が通信をするために、統一されたプロトコル(通信規約)が必要

          Webシステムとは

          ECS&ECR 第三回(動作確認まで)

          前回の記事でネットワーク周りの設定を行っていきました 本記事ではECSでコンテナを起動し、動作確認するまでの手順を書いていこうと思います 準備手順の確認を行っていきます VPCの作成↓サブネットの作成↓インターネットゲートウェイの作成↓ルートテーブルの作成↓ECSクラスタの作成↓ECSタスク定義の作成↓コンテナ起動で動作確認​ このルートテーブルの作成までは終わっているので 今回扱う内容はECSクラスタ作成、ECSタスク定義作成、動作確認となります 早速やっていき

          ECS&ECR 第三回(動作確認まで)

          ECS&ECR 第二回(VPC作成〜ルートテーブル作成まで)

          前回の記事でDockerイメージをECRにプッシュするところまで行いました 準備は整ったので記事を複数に分けてECSでコンテナを作成・起動してHello Worldするところまで行いたいと思います 本記事ではまず前提条件となるVPC〜ルートテーブル作成のネットワーク周りまでを行います 【前提1】ECS on EC2 / ECS on Fargate違いは?違いはECSのコンテナ起動モードがEC2かFargateかという部分となります じゃあそれによってどんな違いが生ま

          ECS&ECR 第二回(VPC作成〜ルートテーブル作成まで)

          ECS&ECR

          現在業務でECSを利用したマイクロサービスアーキテクチャで構築されたシステム開発を行っているため、忘れないようにメモしておきたいと思います。。。 ECSとはECSはAWSが提供するDockerコンテナ環境 Cluster(EC2)上で動くTask(コンテナ)があります Cluster上で複数のTaskを起動するようなことも可能です Cluster上でどのようにTaskを起動させるかを記述したルールをTask Definitionといいます 同じTaskを複数用意して

          私のプログラムの書き方

          前回記事を書いた時よりだいぶ時間が空いてしまいました 現在のプロジェクトが佳境に差し掛かってきたのでここ数ヶ月は忙しくしています 今回はよわよわエンジニアがどんな感じでコードを書いているかを書き殴ってみようと思います 説明に使用する言語はPythonで実装内容としてはよくある閏年判定にしたいと思います 仕様の確認まずは仕様の確認をします 閏年の判定なので必要な条件をググって以下に貼り付けておきます wikipedia大先生の閏年のページによると 西暦年が4で割り

          私のプログラムの書き方

          CentOS8に入門してみる(ネットワーク管理・トラブルシュート)

          前回までネットワークの設定系を主に見ていきましたが、今回からはネットワーク管理やトラブルシュートの解析で使うコマンド達を学習します どんな事象が発生していてどういうお手当てをすべきか迅速に判断できるように体系立てて覚えていきたいと思います pingコマンドネットワークの疎通確認に使用します 下記はgoogleへpingコマンドを利用して疎通確認を行う例です [vagrant@centuser ~]$ ping -c 5 10.0.2.15PING 10.0.2.15

          CentOS8に入門してみる(ネットワーク管理・トラブルシュート)

          CentOS8に入門してみる(ネットワーク3)

          前回はnmcliコマンドだけにフォーカスして基本的な使い方を見ていきました 今回はまたLinux(CentOS8)でのネットワーク関係に範囲を広げつつちょっとずつ学習していきます 見ていくのは今回もネットワークの設定関係です nmtuiコマンドnmtuiコマンドもnmcliコマンド同様、ネットワーク関係の設定を参照したり変更したりできるものですがこちらはよりグラフィカルに弄ることができるものとなっています 実はネットワーク学習を進めるにあたってVirtualBoxにN

          CentOS8に入門してみる(ネットワーク3)

          CentOS8に入門してみる(nmcli)

          今回もネットワークについての学習です CentOS8と銘打っておきながら暫くは基礎的なLinuxなどの学習になりそうです 今回はNetworkManagerで実際にネットワークインターフェースに対してIPアドレスを設定したりすることをしていきたいと思います nmcliコマンドnmcliはNetworkManagerをCLIで操作することが可能なコマンドとなっています 参照するだけであれば管理者権限は必要ありません まずはステータス確認を行うコマンドを見ていきます

          CentOS8に入門してみる(nmcli)

          VirtualBox + Vagrant(NICの追加方法)

          最近CentOS、もといLinuxやネットワークの学習を進めています VirtualBoxの仮想マシンにNICを新しく追加してnmcliやnmtuiコマンドを使用してネットワークの知識を深めたいと思っていましたが、やり方が分からない部分があったので調べて分かった手順などをメモしておきたいと思います Macを使用していて、VirtualBoxやVagrantなど含めた細かいバージョンは以下の環境で行っています % sw_versProductName: Mac OS XP

          VirtualBox + Vagrant(NICの追加方法)

          Python、強すぎる

          最近業務ツールの作成でPythonを触っています この言語割と強すぎませんか?と思うこの頃です (強いっていうか便利ですね) 普段はJavaを主に使って開発することが多いのですが、開発の主体じゃない補助的な役割のツール類製造に関しては特にこれというのを決めて言語を選んでいませんでした 時にはshellやpowershellで書いてみたり、時にはJavaで書いてしまったり・・・ ただどれも痒いところに手が届かないというか色々な部分で独特だったりとかするのでちょっと使い

          Python、強すぎる

          CentOS8に入門してみる(ネットワーク2)

          前回は主にIPアドレス周りの知識を再整理する作業を行いました 今回から何回かかけてネットワークの設定を実際に弄りながら学習していきたいと思います ネットワークインターフェースネットワークとの接点をネットワークインターフェースと言います IPアドレスはホストに紐づているわけではなく、ネットワークインターフェース≒NIC(ネットワークインターフェースカード)に紐づいています ※AWSだとNICと同等の役割を担うものとしてENI(Elastic Network Interf

          CentOS8に入門してみる(ネットワーク2)

          CentOS8に入門してみる(ネットワーク1)

          ネットワークを再学習します AWSやるにしても何をやるにしてもネットワークの基礎知識が必要なので復習を兼ねて基礎からやっていきたいと思います まずはIPアドレス周りからスタート IPアドレスとサブネットマスクの概要インターネットやLANはTCP/IPというプロトコルが普及しています TCP/IPはインターネットの住所に相当する部分をIPアドレスで表します IPアドレスは32bitの2進数で表しますが、分かりやすいように8bit区切りにして各パートを10進数で表します

          CentOS8に入門してみる(ネットワーク1)