【ITニュース解説】Building My Cloud Resume Challenge! From AZ-900 to Serverless Architecture
2026年09月28日に「Dev.to」が公開したITニュース「Building My Cloud Resume Challenge! From AZ-900 to Serverless Architecture」について初心者にもわかりやすく解説しています。
ITニュース概要
AZ-900取得後、実践経験を積むためAzure Cloud Resume Challengeに挑戦。AIを活用し、セキュアで自動化されたサーバレスWebサイトを構築した。データベース、API、IaC、CI/CDなど多岐にわたるクラウド技術を習得し、そのスキルを実証する。
ITニュース解説
システムエンジニアを目指す皆さんへ。クラウド技術が現代のITを支える重要な柱であることはご存じだろう。クラウドエンジニアという職種が注目を集める中で、理論の学習だけでは乗り越えられない壁がある。それが「実践経験」だ。今回紹介するプロジェクトは、まさにこの実践経験を積み、理論と現実のギャップを埋めるために取り組まれた「クラウドレジュメチャレンジ」の記録である。
このプロジェクトの目的は、マイクロソフトAzureのクラウドサービスを活用し、単なるWebサイトの公開に留まらず、高度にセキュリティが確保され、かつ完全に自動化された「サーバーレスバックエンド」をゼロから構築することだった。サーバーレスアーキテクチャとは、開発者がサーバーの管理を意識することなく、必要な時だけ処理が実行され、利用した分だけ料金が発生する、効率的でスケーラブルな仕組みを指す。この挑戦を通じて、設計からデプロイ、セキュリティまで、クラウドの全工程を経験することが目指された。
プロジェクトは、まず基礎固めから始まった。最初に「Microsoft Azure Fundamentals (AZ-900)」という認定資格の取得に励んだ。これは、Azureクラウドサービスの基本的な概念やサービス体系を理解するための、いわば入門編である。資格取得で得た知識は、その後の実践的な作業の土台となった。
次に、Webサイトの見た目の作成に取りかかった。一般的なテンプレートを使うのではなく、独自の個性的なデザインを追求した。深みのあるネイビーのAzureカラーパレットを基調とし、非対称なエッジを取り入れた、カスタムのHTMLとCSSを記述した。さらに、ピクセルアート風の「jdm」というSVG形式のファビコン(ブラウザのタブに表示されるアイコン)や、LinkedInなどのSNSでリンクが共有された際にきれいに表示されるためのOpen Graphタグも追加し、細部にわたるこだわりを見せた。
フロントエンド、つまりユーザーが直接目にするWebサイト部分は、「Azure Blob Storage」というAzureのストレージサービスの一種でホストされた。これは静的なファイルを効率的に保存・配信するのに適している。サイトを公開するにあたり、独自ドメインを設定し、ユーザーが安全にアクセスできるよう「HTTPS」という暗号化通信を強制した。これにはCloudflareという外部サービスが利用され、Webサイトのセキュリティとアクセス性が向上した。
サイトに動的な機能を追加するため、軽量なJavaScriptコードが書かれた。このスクリプトは、Webページが読み込まれるたびにバックエンドにアクセスし、リアルタイムの訪問者数を取得して表示する役割を担った。これにより、ただ情報を表示するだけでなく、ユーザーの行動に応じたインタラクティブな要素が加わった。
いよいよサーバーレスバックエンドの構築である。訪問者数を記録するために、「Azure Cosmos DB」というデータベースサービスが採用された。これは、高い可用性とスケーラビリティを持つデータベースで、ここではTable APIという形式で利用された。このデータベースにアクセスし、訪問者数の取得や更新を行うための「API」が、「Azure Functions」を使って構築された。Azure Functionsは、イベント駆動型のサーバーレスコンピューティングサービスであり、開発者はサーバーを管理することなく、コードを実行できる。ここではPython言語のv2プログラミングモデルが用いられた。
コードをクラウドにデプロイする前に、その動作を保証するために「テスト」が重要となる。Pythonコードに対しては「pytest」というフレームワークが使われ、自動化された「ユニットテスト」が書かれた。ユニットテストとは、プログラムの個々の部品(関数やメソッドなど)が正しく動作するかを確認するテストである。これにより、実際のデータベースに接続せずとも、コードの信頼性が検証された。
プロのエンジニアにとって必須のスキルである「Infrastructure as Code (IaC)」も導入された。これは、サーバーやネットワークなどのインフラ設定をコードとして記述し、自動で構築・管理する手法である。このプロジェクトでは「Azure Bicep」というツールが使われ、データベース、ストレージアカウント、ファンクションアプリといったAzureのリソースを自動的に作成するテンプレートが書かれた。この過程で、Bicepがデータベースの接続文字列を誤った形式で生成しようとする課題に直面したが、テンプレートのコードを修正することで、実行時の問題を未然に防いだ。
プロジェクトの全てのコードは「GitHub」というバージョン管理システムで管理された。これにより、コードの変更履歴が残り、複数人での開発や過去のバージョンへの復元が容易になる。個人のレジュメデータやカスタムデザインが含まれるため、知的財産保護のため、プロジェクトのリポジトリは「All Rights Reserved」というライセンス設定に変更された。
そして、開発ワークフローの最終段階として、「継続的インテグレーション・継続的デプロイメント (CI/CD)」が設定された。「GitHub Actions」という機能が利用され、コードをGitHubにプッシュするたびに、自動的にテストが実行され、問題がなければAzureにデプロイされる仕組みが構築された。これにより、手動でのデプロイ作業が不要になり、開発効率と信頼性が大幅に向上した。CI/CDの導入時にも課題が発生し、バックエンドのデプロイ時に「503エラー」が発生した。これは、Bicepテンプレート内に設定されていたWEBSITE_RUN_FROM_PACKAGE=1という読み取り専用設定が、GitHubのビルドプロセスと競合していたことが原因だった。この設定をコードから削除することで、デプロイパイプラインは正常に機能するようになった。
最後に、この一連の挑戦とその学びを記録するため、ブログ記事としてまとめる作業が行われた。この過程では、「Agentic Workflow」という現代的な開発手法も採用された。これは、AIコーディングツールをまるでペアプログラマーのように活用し、テンプレートの骨格作成やテストコードの生成、スタイリングの補助などをAIに任せることで、開発者はより高レベルなエンジニアリング作業(例えば、自動化のオーケストレーションやクラウドでのデバッグ)に集中できたというものだ。
このAzureクラウドレジュメチャレンジは、理論的な知識と実践的なスキルを結びつける貴重な機会となった。このプロジェクトを通じて、クラウドインフラストラクチャの設計、テスト、デプロイ、そしてセキュリティ確保といった、クラウドエンジニアに求められる一連の能力を実際に証明する環境を構築することができたのである。