1. はじめに
こんにちは!株式会社Definerのライターチームです!
今回は、SES経由でプライベートサブネットからメールを送信する方法について気になりますよね。
実際の画面や、資源を見ながら詳しく解説していきましょう。
2. 目的・ユースケース
この記事では、メール送信を手軽に実施するという目的に向けて、Amazon SESという技術を活用します。
ITの現場で、AWSのプライベートサブネットからメールを送信したいときに、参考になる情報やプラクティスをまとめています。
3. Amazon SESとは
Amazon SESはSimple Email Serviceの略で、AWSが提供するメール配信サービスです。
自身でメールサーバを構築する必要がなく、メールを使う多くのユースケースに対応しています。
SESは設定すればすぐに使えますが、開始時にはメール送信に制限がかかっています(スパムなどの悪質利用を考えれば当然ですが)。SESのサンドボックス解除設定を行うと、制限なくサービスを利用することができます。
SESでメールを送信するには、インターネットへアクセスする必要があります。
パブリックサブネットであれば、EC2から直接インターネットへアクセスすればメールが送信できますが、プライベートサブネットの場合はどのようにすれば良いのでしょうか。
4. プライベートサブネットからSESを使ってメール送信
それでは、プライベートサブネットからSESを使ってメールを送信する方法をご紹介していきます。
SESの作成やメール送信については、「TerraformでAmazon SESを作成する」も参考にしてみてください。
プライベートサブネットからSESを使ってメールを送信するには、以下どちらかの対応が必要です。
①NAT Gatewayの作成
NAT gatewayは、パブリックIPを持たないプライベートサブネットから、インターネットに接続できるようにするサービスです。
NAT gatewayは、プライベートIPアドレスをパブリックIPアドレスに変換します。NAT Gatewayを経由することで、プライベートサブネットのリソースはインターネットへアクセスすることができます。(もちろん、インターネットからプライベートサブネットへアクセスされることはありません)
以下のコマンドで、NAT Gatewayを作成し、Route Tableへルーティングを設定できます。
②VPCエンドポイントの作成
VPCエンドポイントは、インターネットに出られない環境からAWSの特定のサービスと通信したい時や、セキュリティポリシー的に通信をインターネット経由にしたくない時に使用するサービスです。
SESだけでなく、色々なサービスのVPCエンドポイントが提供されています。
メール送信用のVPCエンドポイントは、「com.amazonaws.ap-northeast-1.email-smtp」です。
注意点として、SES APIではなくSMTPによるメール送信のロジックが必要です。
以下に、メール送信用のVPCエンドポイントの作成コマンドを記載しました。
要件などに応じて、この2つの方法を使い分けてメール送信を行なってみてください!
## NAT Gatewayに必要なアドレスを割当
aws ec2 allocate-address --domain vpc
## NAT Gateway作成
aws ec2 create-nat-gateway
--subnet-id ${サブネットID} \
--allocation-id ${EIPのID}
## RouteTableのNAT Gatewayのルート追加
aws ec2 create-route
--route-table-id ${ルートテーブルID} \
--destination-cidr-block 0.0.0.0/0
--nat-gateway-id ${NAT Gateway ID} \
## メール送信のエンドポイント作成のコマンド
aws ec2 create-vpc-endpoint \
--vpc-endpoint-type Interface \
--service-name com.amazonaws.ap-northeast-1.email-smtp \
--vpc-id ${VPC ID} \
--subnet-id ${サブネットID} \
--security-group-id ${SecurityGroup ID}
5. 引用・参考記事
6. 独自ソリューション「PrismScaler」について
PrismScalerは、開発・運用を要さずにたった3ステップで、AWSやAzure、GCPなどのマルチクラウド基盤構築を実現するWebサービスです。
エンジニアの大変な作業を肩代わり
・自動構築
・自動監視
・構成可視化
クラウド基盤に関わる作業を以上のように効率化します。
SRE/DevOpsエンジニアが行う大変な作業を肩代わりします。
高品質な汎用クラウド基盤の実現
・クラウド基盤構築/クラウド移行
・クラウドの保守運用・コスト最適化
など幅広い利用シーンを想定しています。IaaSやPaaSを適切に組み合わせた数百を超える高品質な汎用クラウド基盤を容易に実現できます。
興味を持たれた方には、無料で資料を提供しております。
お気軽にご相談ください。
7. お問合せ
株式会社Definerでは、
・ITの上流から下流まで一気通貫のワンストップソリューションをご提供。
・AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミット。
・少ないエンジニアで事業が成長する仕組みづくりの実現。
・エンジニアが喜ぶ、採用しやすい環境づくりの実現。
・高速なアジャイル開発環境の実現。
・自社プロダクトとしてPrismScalerを展開。
上記事業内容を進行しております。
※「開発者ブログ」では、エンジニアの入門編として有益な情報を無料公開しています。
ご相談やお問い合わせは「株式会社Definer」へ。
8. Definerに関して。
・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。
・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。
・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。
・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。