こんにちは、マイクです!今日は2024年8月26日、月曜日ですね。今日も「zenncast」にお付き合いいただきありがとうございます。今日はZennでトレンドの記事をいくつか紹介していきますよ!

さて、前回紹介した記事についてですが、実は今回そのお話はしません。さっそく今日の内容に移りましょう!

今日紹介する記事は全部で5本です!それでは、最初の記事からいってみましょう!

1つ目の記事は「AWS 代表的なクラウドデザインパターン紹介」です。この内容では、AWSのサービスを活用して高可用性とスケール性を持つシステムを構築するためのクラウドデザインパターンが紹介されています。

まず、EC2インスタンスによる動的コンテンツの配信についてです。ユーザーのリクエストに応じて生成される動的コンテンツには、Amazon EC2やELB、Route 53、Auto Scalingが使われます。例えば、Next.jsのSSRを使った動的ページ生成がその代表例ですね。

次に、S3による静的コンテンツの配信について紹介されています。静的コンテンツは、Amazon S3でホスティングし、CloudFrontを使ってキャッシュし、高速に配信します。Next.jsのSPAがその典型なんです。

さらに、動的・静的コンテンツの混在についても触れられています。Eコマースサイトなどでは、動的コンテンツはEC2で生成し、静的コンテンツはS3からCloudFront経由で配信するというパターンが多いです。

そして、サーバレスアーキテクチャの利用についても言及されています。AWS LambdaとAPI Gatewayを使用することで、サーバ管理を意識せずに動的Webサービスを構築できるメリットがありますよ。

最後に、RDSを利用した冗長構成についての話もあります。Amazon RDSのマルチAZ配置やリードレプリカを使うことで、システムの信頼性と可用性を高めることができます。全体として、AWSを利用したクラウドアーキテクチャの設計にはコスト、複雑性、冗長性、スケーラビリティのバランスが重要だということが強調されています。

。.

2つ目の記事は「プログラミング言語AWKのここがLOVE」です。このAWKという言語は1977年にAT&Tベル研究所で開発された汎用プログラミング言語です。特に1行1レコードのテキストファイルを効率的に処理するのが得意なんです。

著者は、現代のプログラミング言語が多く存在する中でも、AWKを使うことに愛着を持っているそうです。例えば、タブ区切りのテキストファイルから特定のフィールドを抽出する方法が示されています。AWKの利点は、シンプルな文法で短いコードが書けることですね。

他のスクリプト言語と比較すると、AWKのワンライナーは打鍵数が少なく、特定の条件での行処理が容易にできるのが魅力です。著者は複雑な処理には他の言語を使うことが多いですが、1行1レコードのデータ処理にはAWKを選ぶ理由をしっかり述べています。

また、AWKで作られた3Dシューティングゲーム「awk-raycaster」にも言及されていて、AWKの可能性が広がります。そして、2024年に「プログラミング言語AWK 第二版」が出版されることも紹介されており、興味がある方は試してみる価値がありますね。

。.

3つ目の記事は「Snowflake × dbt で構築する ELT アーキテクチャ」です。こちらでは、Snowflakeを活用したデータ基盤への移行とELTアーキテクチャの実装が紹介されています。

移行後のデータ基盤は、複数のAWSアカウントを持つプロダクト環境を想定しているそうです。AuroraデータベースからSnowflakeにデータを取り込み、dbtを用いてモデリングを行います。

データの取り込みは、AWS環境からSnowflake環境へ行われ、EventBridge、Step Functions、Glue、Lambdaを連携させて増分データをS3にエクスポートし、その後SnowflakeにIngressします。Glueジョブでは、ソースDBからデータをParquet形式でS3に書き出した後、SNSでメッセージを送信する仕組みです。

Transformの部分では、dbtを使用してStaging層からターゲットスキーマへのデータ変換を行います。増分更新を実現するために、dbtのincrementalモデルが用いられ、最新のレコードのみを抽出するロジックが実装されています。

このELTアーキテクチャは非常に強力なツールであり、今後の運用に向けた検証も期待されます。著者は先人たちの知見に感謝しつつ、今後の取り組みについての意欲を示しています。

。.

4つ目の記事は「技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL」です。ここでは、著者が過去2年間にわたり行った技術選定の経験を振り返り、成功と失敗を共有しています。

著者はシード期のSaaSスタートアップに入社し、技術選定を主導してきました。現在使用している技術にはTypeScript、React、Hono、PostgreSQL、Terraformなどがあり、過去に使用したJavaやMySQLについては否定的な見解を示しています。

特にNest.jsについては、複雑で学習コストが高いと批判し、Honoへの移行を決めました。また、GraphQLもスキーマ設計の難しさからtRPCに置き換え、開発のシンプルさを重視しています。

著者はシンプルでありながら機能的なツールの選定が重要で、不要な複雑さを避けるべきだと強調しています。技術選定においては、エコシステムの安定性や将来性を考慮し、新しい技術の適切な採用が求められると結論づけています。

。.

5つ目の記事は「Ebitengine Weekly #20 - ぷちConf #3 開催直前!」です。EbitengineはGo言語を使った2Dゲーム開発のためのシンプルなライブラリで、習得が容易なのでモバイルやNintendo Switchへの移植も可能です。

次回のぷちConfが来週金曜日に開催されるということで、LT発表の枠が残っているそうです。参加希望者はぜひ申し込んでみてくださいね。そして、Ebitengineの開発者への質問やお便りも募集中です。

新機能として、Ebitengineにカスタム頂点属性が追加され、フラグメントシェーダーで使える4つのfloat32が利用可能になります。この新機能で複雑なエフェクトやシェーダーが実装しやすくなりますよ。

他の記事では、Go言語での物理演算や、Chipmunk2DのPure Go移植についても紹介されています。Ebitengineでのゲーム開発に役立つ情報が盛りだくさんですので、ぜひチェックしてみてくださいね。

さて、今日は5本の興味深い記事をお届けしました。AWSのクラウドデザインパターンから始まり、AWKの魅力、SnowflakeのELTアーキテクチャ、技術選定の振り返り、そしてEbitengineの最新情報まで、盛りだくさんでしたね。

次回もお楽しみに!詳しい内容はショーノートに書いてありますので、ぜひそちらもご覧ください。また、番組の感想もお待ちしています。それでは、さようなら!

Related episodes

内容の近いエピソードを推薦しています