SaaSなどのウェブサービスやECサイトなど、多くのインターネット上のサービスを開発・構築する上でAmazonのAWS(Amazon Web Service)を選択されている企業が多いと思います。PaaS分野において、MicrosoftのAzureやGoogleのGCPなどもありますが、圧倒的なシェア率を誇るAWSがサポートや技術コミュニティ、公式サイトに限らず豊富な技術資料や記事の多さからも、エンジニアにとって安心できるサービスとなっており、AWSを選択したエンジニアの理由となっているのではないでしょうか。本記事では、AWSにおいて決済システムを導入するために必要な情報を提供いたします。AWSの技術やプログラミング言語などには触れませんので、技術的に不安な方も安心して読み進めてください。AWSに決済システムを導入するにはAWSには、サービスサイトを構築するための様々なサービスが提供されていますが、意外にも決済サービスに関しては提供されておりません。ですので、AWSで決済システムを導入するためにAWS以外のサービスを利用して構築する必要があります。これは、AWSに限らず、AzureやGCPにおいても同様です。決済システムとは、どのようなサービスなのか決済システムは決済代行会社と呼ばれる企業が提供しているサービスで、クレジットカード会社と決済システムを導入したい事業会社を仲介するための役割を担っています。クレジットカードの決済を独自で導入する場合、カードブランドごとに個々に契約を締結し、それぞれのインフラと接続する必要があるため、決済代行会社を使わずに決済システムを導入することは、現実的ではありません。決済代行会社は、各カード会社との接続を担い、請求入金の管理を代行することで、決済システムを導入したい事業会社の初期投資費用やインフラ運用コストを大幅に削減することができるサービスです。AWSから決済システムを利用する方法AWSから決済システムを利用するには、決済代行会社のシステムに接続する必要があります。決済代行会社によって実装の方法は異なりますが、PHPなどのサーバーサイドのプログラムから決済代行会社のAPIを呼び出す方式になります。または、リンク方式という決済代行会社が用意するサイトへ遷移し、そこで決済を行う方式があります。どちらの方式であっても、クレジットカード決済を行って商品やサービスを購入いただくという結果は同じですが、ユーザー体験という点においては、前者の方が明らかに体験価値が高くなります。リンク方式の場合、自社のサイトから決済代行会社の用意するサイトを遷移し、決済終了後に自社サイトに戻るという流れになるため、完了までのステップ数が多いことや、決済代行会社への遷移で(他社サイトに移るという点で)少し顧客への信頼が落ちてしまう可能性があります。ですので、実装コストは上がりますが、前者のAPI(トークン)方式で実装していただいた方がサービスサイトとしての成果につながります。AWSで決済システムを使うには、どのサービスを利用すべきかリンク方式であれば、静的・動的問わず実装可能ですので、どのようなものでEC2であっても、S3のようなストレージであっても実装可能です。API(トークン)方式で実装していく場合は、EC2のようにサーバーサイドのプログラムを動かす環境がないと実装できません。また、昨今多くなってきた実装方式であるサーバーレス方式、例えば、AWSの API Gateway や Lamdba 、Dynamo DBなどを組み合せた環境でも実装することができます。昨今の決済システムにおける制約条件は殆どありませんので、自社サービスにとって最適な実装方式を基準に進めていくことが望ましいですが、導入する際には、利用される決済サービスのドキュメントを確認されることや、テストアカウントで事前に検証いただくことをお勧めします。運用システムの構築についてクレジットカード決済は、課金部分だけを構築して終わりではありません。ECサイトであれば、お客様に商品が到着後に何らかの理由で返品業務が発生したり、お客様からの問い合わせで決済処理ができない理由を調査したりする必要があります。これらの運用に関わる仕組みも、サイトを構築する際には計画しておく必要があります。決済システムの多くは、運用に関わる処理ついてAPIの提供だけではなく、運用のための管理サイトが用意されていますので、運用に関わる全ての機能を構築しておく必要はありません。決済システムの管理サイトには、お客様の決済情報、エラー情報などを閲覧することができます。また、お客様からの返品を受けて、クレジットカード決済したものを返金処理する機能もあります。これらの機能のうち、自社サイトで必要としている機能が管理サイトで事足りるものは実装する必要がありませんので、自社サイトからAPIを呼び出してでも実装すべきものを見極めた上で、開発を進めるか否かを検討してください。まとめAWSには決済システムはありませんが、世の中には多種多様な決済サービスがありますので、個々のサービス内容や実装方法、運用システムなどを確認された上で、自社サービスにとって最適なサービスを選択してください。その際のポイントとしては、サービスレベルを担保できる信頼性や実績はあるのか、事業上で負担となる決済料率はどのくらいなのか、実装方式や実装にかかる負担や運用コストの負担はどのくらいあるのか、などを材料として検討していただければと思います。