-
タスクの管理(追加、閲覧、削除)を行うことができるwebサービスを展開したい。
-
サービスはweb層、アプリケーション層、データ層の3層で構成されている。
-
web層では、タスクが閲覧削除ができる静的なWebページを配信する。
- 特定のドメイン(xxxxxsevice.jp)から配信される。
- 世界中どの地域からアクセスしても低遅延でページが閲覧できること。
- 静的ページはサーバーを立てずに運用したい。
-
アプリケーション層ではJavaSpringBootのAPIサーバーをホストする
-
ドメインはweb層と同じもの。サーバー証明書を使用し、SSL通信で通信が暗号化されていること
-
サーバーは通常時で2台体制とする。
-
HTTPS着信トラフィックはサーバー2台に平等に分配され、サーバへの負荷が分散されていること。
-
可用性、耐障害性を担保するため、地理的に離れた場所にサーバーを配置したい。
-
(*)DDos攻撃やSQLインジェクション対策がWAFにて可能であること
-
-
データ層では、MySQLを利用し、なるべくパフォーマンスの高いものを利用したい。
- DBはアプリケーションサーバーとのみ通信が行えるようにする。
- セキュリティを担保するため、外部のインターネットからの直接通信を受け付けないようにしたい。
AWSサービスを利用して、クラウドの長所を生かしたwebサービスを展開したい。
-
タスクの管理(追加、閲覧、削除)を行うことができるwebサービスを展開したい。
-
サービスはweb層、アプリケーション層、データ層の3層で構成されている。
-
web層では、タスクが閲覧削除ができる静的なWebページを、ストレージサービスであるS3によって配信する。
- DNSサービスであるroute53によってルーティングされる。特定のドメイン(xxxxxsevice.jp)から配信される。
- CDNサービスであるCloudFrontによって、世界中どの地域からアクセスしても低遅延でページが閲覧できること。
- 静的ページはサーバーを立てずにS3からホスティングして運用したい。
-
アプリケーション層ではJavaSpringBootのAPIサーバーをコンピューティングサービスであるEC2によってホストする
- route53によってCloudFrontにルーティングされ、ドメインはweb層と同じもの。サーバー証明書を使用しACMによって管理しALBから連携して認証を行う、SSL通信で通信が暗号化されていること
- EC2サーバーは通常時で2台体制とする。
- HTTPS着信トラフィックはサーバー2台に平等に分配され、サーバへの負荷が分散されていること。
- 可用性、耐障害性を担保するため、2台のサーバーを地理的に離れた場所(別のAZ)にサーバーを配置したい。
- (*)DDos攻撃やSQLインジェクション対策がAWSWAFとの連携にて可能であること
-
データ層では、MySQLを利用し、なるべくパフォーマンスの高いAmazon Aurora MySQLを利用したい。
- DBはセキュリティグループに登録されたアプリケーションサーバーとのみ通信が行えるようにする。
- セキュリティを担保するためプライベートサブネットに設置し、外部のインターネットから直接の通信を受け付けないようにしたい