【ITニュース解説】Log014_CloudFlare_Zoho.mail_ec2.md

2025年09月04日に「Dev.to」が公開したITニュース「Log014_CloudFlare_Zoho.mail_ec2.md」について初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

ITニュース概要

ウェブサイトを保護するため、Cloudflareでドメインを取得しSSLを設定。Zoho Mailでメール環境を構築した。AWS EC2にElastic IPを割り当て、Certbotでサーバー側にもSSL証明書を導入。これにより、サイトの安定稼働とHTTPS化を実現した。

出典: Log014_CloudFlare_Zoho.mail_ec2.md | Dev.to公開日:

ITニュース解説

今回のニュース記事は、自身のウェブサイトをより安全に、そして信頼性のあるものにするための一連の作業について記録したものだ。具体的には、ウェブサイトにSSL(Secure Sockets Layer)証明書を導入してHTTPS化し、ドメイン専用のメールアドレスを設定し、サーバーの安定稼働を実現するという目標が掲げられている。システムエンジニアを目指す初心者にとって、実際のウェブサービスがどのように構築され、運用されているかを理解する上で非常に参考になる内容だ。

まず、ウェブサイトを安全に運用するために必要な要素として、記事ではいくつかの課題が挙げられている。一つは「ドメイン専用のメールアドレス」を用意すること。ウェブサイトの所有者として、@自分のドメイン名という形式のメールアドレスを持つことは、プロフェッショナルな印象を与え、信頼性を高める上で不可欠だ。次に、「ウェブサイトとメールのためのDNSレコード」の設定が必要となる。DNS(Domain Name System)は、インターネット上の住所録のようなもので、ドメイン名(例: example.com)とサーバーのIPアドレスを結びつけたり、メールの宛先を指示したりする重要な役割を担う。これが正しく設定されていないと、ウェブサイトが表示されなかったり、メールが届かなかったりする。三つ目は、「AWSインスタンスのための静的IPアドレス」の確保。AWS EC2のようなクラウドサーバーは、通常再起動するとIPアドレスが変わってしまう場合がある。これでは、せっかくドメインとIPアドレスを紐付けても、再起動のたびに設定し直さなければならず、非常に不便だ。そこで、固定されたIPアドレスが必要になる。そして最後に、「サーバーに直接インストールするSSL証明書」の導入だ。SSL証明書は、ウェブサイトと訪問者のブラウザ間の通信を暗号化し、情報の盗聴や改ざんを防ぐためのものだ。これがあることで、ウェブサイトのアドレスが「http://」ではなく「https://」となり、ブラウザのアドレスバーに鍵マークが表示されるようになる。

これらの課題を解決するために、記事ではCloudflare、Zoho Mail、AWS EC2といったツールを組み合わせた具体的な手順が紹介されている。

最初に、ウェブサイトの入り口となる「ドメインとSSLの設定」だ。記事の筆者はCloudflareでドメインを取得し、Cloudflareが提供する無料のSSLサービスを有効にした。CloudflareはCDN(Contents Delivery Network)サービスを提供する企業であり、ウェブサイトの高速化やセキュリティ強化に貢献する。Cloudflareの無料プランには「Universal SSL」という機能が含まれており、これを使うことで、ウェブサイトへのアクセス経路の一部を暗号化できる。具体的には、ユーザーのブラウザからCloudflareのサーバーまでの通信が暗号化される。ただし、Cloudflareのサーバーから自身のAWS EC2サーバーまでの通信は、別途サーバー側にSSL証明書を導入しないと暗号化されない場合があるため、完全なセキュリティを確保するには両方が必要となる点を理解することが重要だ。

次に、「Zoho Mailを使ったメール設定」だ。ドメイン専用のメールアドレスを取得するために、筆者はZoho Mailの無料プランを利用した。Zoho Mailのようなサービスは、メールサーバーの構築や管理の手間を省き、手軽にプロフェッショナルなメール環境を構築できるメリットがある。Zoho Mailを利用するためには、ドメインがZohoのサービスを利用することをDNSに許可する必要がある。これは、DNSレコードの一種である「MXレコード」を設定することで実現する。MXレコード(Mail Exchanger Record)は、特定のドメイン宛てのメールをどのメールサーバーが受け取るかを指定するものだ。記事では「mx.zoho.eu」といったZohoのメールサーバーのアドレスを登録し、さらに「優先度レベル(10→20→30)」を設定している。この優先度レベルは、複数のメールサーバーがある場合に、どのサーバーから順にメールを配送するかを示すもので、冗長性(一つのサーバーがダウンしても別のサーバーで対応できる仕組み)を確保するために用いられる。

そして、「DNSレコードの総合的な設定」も重要な要素だ。記事では、ウェブサイトの「www」サブドメインをメインドメインの別名(CNAME)として設定し、ドメインがAWSの固定IPアドレス(Elastic IP)を指すように設定している。CNAMEレコードは、あるドメインが別のドメインの別名であることを示すもので、例えば「www.example.com」が「example.com」と同じ場所を指すように設定できる。Elastic IPについては後述するが、これはAWS EC2サーバーに固定IPアドレスを割り当てるためのものだ。この設定により、ドメイン名でアクセスされた際に、常に特定のAWSサーバーに接続できるようになる。また、前述のMXレコードもここで設定されている。

「Elastic IPの割り当て」は、AWS EC2サーバーの安定運用に不可欠なステップだ。AWS EC2インスタンスは、停止して再起動するとIPアドレスが変わってしまうのが一般的だ。これでは、ウェブサイトのドメインが指すIPアドレスが頻繁に変わってしまい、ウェブサイトにアクセスできなくなってしまう。Elastic IPは、このような問題を防ぐために、AWSが提供する固定のグローバルIPアドレスサービスだ。一度Elastic IPを割り当ててEC2インスタンスに関連付けておけば、インスタンスを再起動してもIPアドレスが変わることはなく、常に同じIPアドレスでサーバーにアクセスできる。これにより、DNSレコードの設定が安定し、ウェブサイトの連続稼働が可能となる。

最後に、ウェブサイトの完全なHTTPS化を実現するための「SSL証明書(Let's Encrypt + Certbot)」の導入だ。CloudflareのUniversal SSLはブラウザとCloudflare間を保護するが、Cloudflareと自身のサーバー間も保護するため、そしてCloudflareを利用しない直接アクセスも保護するために、サーバー自体にもSSL証明書が必要となる。筆者は、無料で利用できるSSL証明書発行サービス「Let's Encrypt」と、その取得・更新を自動化するツール「Certbot」をEC2インスタンスにインストールした。Certbotは、数ステップの簡単なコマンド操作でSSL証明書を生成し、ウェブサーバーソフトウェアであるApacheの設定を自動的に更新して、ウェブサイトをHTTPS化してくれる非常に便利なツールだ。これにより、ウェブサイトのURLが「https://」となり、通信が完全に暗号化され、訪問者に安全な閲覧環境を提供できる。

これらの作業を通して得られた学びとして、記事ではいくつかの重要なポイントが挙げられている。Cloudflareの無料プランに含まれるUniversal SSLは便利だが、サーバー側に別途SSL証明書を導入することが、エンドツーエンド(ブラウザからサーバーまで)のセキュリティを確保するために重要であること。MXレコードがメールの行き先を定義し、優先順位が冗長性を生み出すこと。Elastic IPがAWS環境におけるDNSの安定性を保つ上で不可欠であること。そして、CertbotがSSL証明書の管理とウェブサーバーへの組み込みを自動化してくれる優れたツールであること。

最終的なウェブサイトの構成は、「ドメイン」にアクセスすると、まず「Cloudflareのプロキシ」を経由し、そこから「AWS上のサーバー」へと接続される形となる。このAWSサーバーにはSSL証明書がインストールされており、すべての通信が暗号化される。このように、一連の複雑に見える設定作業は、ウェブサイトの安全性、信頼性、そしてプロフェッショナリズムを高めるために一つ一つが不可欠なステップだ。システムエンジニアを目指す上では、このような全体の流れを理解し、各コンポーネントがどのような役割を果たすのかを学ぶことが、非常に価値のある経験となるだろう。この作業は、筆者のポートフォリオサイトをHTTPS化するという具体的な成果をもたらし、自身の学習経験としても大きな意味を持ったようだ。

関連コンテンツ