当ブログについて

当ブログは、普段ネクタイを付けて仕事をしているシステムエンジニアの開発手記です。
ブログで取り扱う技術や開発環境等の前提事項、筆者についての情報を記載しています。

筆者とブログについて

地方SIerでシステムエンジニアをしています。
スーツにネクタイでシステム開発している企業に勤めています。(一応ナチュラルビズなのでネクタイは必須じゃないです。)
転職経験もなく、同じ会社で10年近く勤めています。

Webアプリケーションの開発が主な仕事です。
ひと昔前までは、「オンプレ × C#.net framework × SQL Server」でシステムを作っていました。
しかし、ここ数年で地方SIerにもクラウドの波がやってきて、「AWS × C#.NET6.0 × PostgreSQL + SPA(Vue.js)」でシステムを作ることも多くなっています。

それぞれの技術情報は国内外問わずたくさん見つけられますが「AWS × .NET」になった途端に少なくなります。
マイナーな構成ではないはずですが、知見を発信してくれるイケイケなエンジニアはpythonやgo言語、Rubyを扱っていることが多いようなので.NETの情報は少ないものと思われます。

そこで、自分の備忘録を兼ねて「AWS × .NET」を中心とした実験記録を残して行こうと思います。

記事に書かれていることを参考にいただく際は、AWSやMicrosoftの公式サイトの最新情報も参照してくださいね。
日本語が怪しいところはありますが、ほとんど正確な情報が載っているので!

取り扱う技術

言語やフレームワークのバージョンは各記事を参照してください。

  • AWS
  • .NET
  • C#
  • JavaScript
  • Vue.js
  • Vue cli

開発環境

  • Machine: Surface laptop2
  • OS: Windows 11
  • IDE: VS Code

なぜAWS + .NETなのか

「AWS + .NET で苦しんでいるならAzureにするか、開発言語を変えたらよいじゃない」という声が聞こえてきそうなので、少しだけ選定経緯を。

Azureがつらかった

私が初めて経験したクラウドサービスはAWSではなくAzureでした。
Microsoftの認定資格AZ-900 Azure Fundamentalsも取得して、業務でも使い始めていました。

AWSを利用し始めたのはAzureに遅れて2年後。
当時、新規部署の立ち上げ準備として東京に転勤して情報収集に勤しんでいました。

ご縁があってAWS Loft Tokyoでソリューションアーキテクトの方とお話をする中で、サーバレスアーキテクチャを教えていただきました。
API Gateway, Lambda, Cognito, S3, CloudFront, RDS等により驚くほど安く、スケールするシステムを稼働させられます。
また、サーバを持たないため運用負担も少ないというメリットもあります。

同じアーキテクチャをAzureでもできないか検討したのですが、Azure Functionsで辛い問題が発生して断念しました。
特に大きな問題だったのが従量課金プランではVNET統合できないという点です。
データベースへ接続するためにはVNET統合が必要なのですが、そうすると従量課金プランを利用できなくなるためコストを安く抑えることができません。
Cosmos DBを使えば解決しますが、NoSQLをチームメンバーに使わせるハードルがあり当時は断念しました。

また、新しいアーキテクチャにチャレンジするにあたり、AWSソリューションアーキテクトの支援が強力だったことも1つの要因です。
Well-Architectedフレームワークに沿った検討を進めることができました。
その後、AWSの認定資格AWS Solution Architect Associateを取得しました。

社内情勢

AWSの検討と合わせて開発言語の選択も行いましたが、こちらはすぐに決まりました。

ありがたいことに会社はお仕事をたくさんいただけているようで、組織間での人の取り合いも過熱している状態でした。
新規部署でメンバーを確保するためには社内の主要言語であるC#を選ばざるを得なかったのです。

「AWS + .NET」は確かに情報が少ないのですが、私を含めて一部の物好きなメンバーが自分で調べてそこを補っていく方針になりました。

まとめ

社内で開発メンバーを確保しつつ、低コストでシステムを稼働させるために「AWS + .NET」を採用しました。

以上