初めに
前回はプレイリストシステムの要件を決めました。今回はシステムの方式設計を行っていきたいと思います。
方式設計とは
まず私がここで言っている方式設計とはいろんなサイトを見ていると基本設計とも表現されています。というか、基本設計と書かれている方が多そうですが、私の馴染み的に方式設計と記載させていただきます。
システム方式設計とは、情報システム開発の設計工程の一部で、システムに必要とされる各要件をハードウェア、ソフトウェア、利用者による手作業のいずれによって実現するかを確定し、全体の構成や構造を決定すること。
ここから方式設計を行っていきたいのですが、すべての項目を網羅しようとすると時間がかかってしまうのでここでは自分が思いつく範囲の方式を決めていきたいと思います。
構成図
構成図は様々な書き方がありますが、今回はブラウザからも使用できるdiagrams.netを使用しました。使用方法はこちらのページを参考にしました。
作成した図は画像や、PDF形式で出力できるだけでなく、URLを発行することでページを閉じても後から編集することもできました。
ネットワーク
AWSサービス | 方式 |
---|---|
リージョン | リージョンはグローバル展開や特定のリージョンのみで使用できるサービス等は使用しないので東京リージョンを選択 |
VPC | 東京リージョン内にVPCを1つ用意。CIDRは172.16.0.0/12を使用する。 |
アベイラビリティゾーン | 今回はサーバー等の冗長化を行うのでaz-1a,az-1cを準備する。 |
サブネット | インターネットに直接つながるパブリックサブネット。サブネットからインターネットに出れるProtectedサブネット。インターネットと切り離されたプライベートサブネットを準備。CIDRは、10.0.0.0/24,10.0.1.0/24・・・と割り当てていく。 |
NATゲートウェイ | サーバーのパッチ適用などを考慮し、NATゲートウェイを用意し、Web・アプリサーバーからインターネットに接続できるようにする。 |
ALB | Webサーバーの負荷分散としてALBを使用する。 |
Route53 | Route53でドメインを取得し、FQDNでシステムにアクセスできるようにする。 |
サーバー
AWSサービス | 方式 |
---|---|
EC2 | Web・アプリサーバー用にEC2をそれぞれ用意する。OSはAmazonLinux2を使用する。インスタンスタイプはt2.microを使用する(無料なので)。 |
RDS | データベースサーバーとしてRDSを使用する。 |
セキュリティ
AWSサービス | 方式 |
---|---|
セキュリティグループ | セキュリティグループを使用して、トラフィックを制御する。インターネットからはHTTPS通信のみに制御する。ALB以外のAWSリソースは可能な限りIPアドレス等でも制御をかける。 |
WAF | WebACLを使用してセキュリティ対策を行う。ルールはAWSのマネージドルールを使用する。 |
ACM | パブリック証明書を取得し、HHTPSで通信できるようにする。 |
構築時接続方法
AWSサービス | 方式 |
---|---|
System Manager | System Managerを使用してEC2へ接続を行う。System Managerを使用することでRDP等のポートを開放せずにOSログインが可能になる。 |
MW以上
項目 | 方式 |
---|---|
Webサーバー | Apache |
アプリサーバー | Tomcat |
データベースエンジン | MySQL |
まとめ
大雑把ですが、このシステムでの方式設計を決めました。主にインフラ部分でアプリの部分はやったことがないので実際に設定、構築を行いながらどんなものにするか決めていきたいと思います。次回は実際にインフラリソースの構築を行っていきます。※詳細パラメータは作りながら決めていきます。