Azureのリソースグループ内にVN(仮想ネットワーク)を作り、その中にWEBアプリサーバー(フロントエンド)とDBサーバー(バックエンド)をサブネットで別けてKUSANAGI仮想マシン2台で構築、そしてWordPressを動かします。仮想ネットワーク/ネットワークセキュリティグループを学習する必要があります。AzureにおけるファイヤーウォールはNSG(ネットワークセキュリティグループ)となり、『NIC【ネットワークインターフェイス(カード)】』、『サブネット』、『クラシックの仮想マシン』の3ヵ所に対してNSGを張ることが出来るという点がポイントです。NSGにおける受信セキュリティ規則/送信セキュリティ規則の設定も一緒に学習しておくことを強く推奨します。使わず、AzureはGUI、個別の仮想マシンにはSSH接続にて対応します。WordPress以外のCMSやphpフレームワーク開発などにも応用できます。データが移動する全過程にわたった暗号化が求められます。DSSの適用基準は、Eコマースの年間の取引件数(規模)や時代の流れによって異なりますので、開発前の計画段階から必須要件を調べて盛り込む必要があります。その他の信頼できないネットワークから隔離されている内部ネットワークゾーンで、カード会員データを保存するコンポーネント(データベース)が実装されている。」となっており、マイルストーンは2です(1が最優先)。本来は、apacheなどのWEBサーバー、ワードプレスなどのアプリサーバー、DBサーバーの3つのサーバーを構築し、WEBサーバーだけをネットワークで隔離してDMZに置きますが、今回は、WEBサーバーとアプリサーバーをWEB(アプリ)サーバーとしてまとめて、DBサーバーとあわせて2サーバーの構成でサブネットで分離して作ります。厳格にDMZとアプリサーバーとDBサーバーをネットワークで別ける構成については、改めて設計が必要です。以下、データが移動する全過程にわたった暗号化についての説明は含んでおりません(改めて少しずつ記事を書きたいと思います)。対する大規模な攻撃から保護します。カッコイイ!ただし、ネットワークレイヤーです。インターネット切断が生命に直結するケースを除き、あらゆるシステムはクラウドに移した方がファイヤーウォールなどの多層化防御も充実させられて、物理サーバー費用も削減出来ます。グローバルに冗長化できる点も企業の大切なデータを守る意味では、オンプレミスに比べてクラウドがはるかに有利です。物理オンプレミスからクラウドへのシステム環境移行トレンドは続いています。仮想マシンの構築前に上記の様にリソースグループ/仮想ネットワーク/サブネットを構築します。Azureポータルにログイン後、「リソースグループ」⇒「追加」と進み、リソースグループ名に「RSG01」、該当のサブスクリプションを選択、リソースグループの場所で「西日本」などを選び、「作成」をクリック、リソースグループが出来ます。次にAzureポータルのトップページで「新規」⇒「ネットワーキング」⇒「仮想ネットワーク」⇒「作成」と進みます。Managerを選んでください。Managerは重要になっていきます。Groupで先ほど作った「RSG01」を選択、場所についても「RSG01」に合わせて「西日本」を選択、最後に作成をクリック。※仮想ネットワークを1つ作ると、必ずサブネットも1つ作られる、という規則になっています。サブネットを追加します。「ダッシュボード」⇒「リソースグループ」⇒「RSG01」⇒「VNet01」⇒「サブネット」⇒「+サブネット」と進みます。ゲートウェイサブネットを選ばない様に注意!名前に「SBnet02」(バックエンドサブネット)、アドレス範囲(CIDRブロック)に「192.168.2.0/24」と入力、「ネットワークセキュリティグループ」と「ルートテーブル」は無しで「OK」をクリックします。これで上記のネットワーク構成が出来上がりました。※ゲートウェイサブネットは、オンプレミス環境とVPN構築を行う場合など、異なる(仮想)ネットワーク間で通信を行う際に使います。同じネットワーク内であれば、サブネット間の通信はプライベートIPアドレス(内部IPアドレス)を使って自由に出来ます。Azureを使ってWEBサーバー用の仮想マシンを立ち上げます。Azure」が検索結果で2個出てきますが、上にあるやつを選択⇒「作成」と進み、WEBサーバー用のKUSANAGI仮想マシンの名前をkusaVM01とします。Azureのページを参照しながら、仮想マシンのデプロイまでを行ってください。Group(リソースグループ)では「RSG01」、ネットワークで「VNet01」、サブネットで「SBnet01」として間違わない様に選択してください。ネットワークセキュリティグループ(NSG)は新規でOKです。次に、DNS設定を行う為、Azureポータルでデプロイ完了を確認後、仮想マシンへのSSHログインを行う前に以下DNSゾーン設定を行います。※この工程から、管理者(root)ユーザー、kusanagiユーザーなど、ユーザー別の仮想マシンへのSSH接続向けの鍵、パスフレーズ、パスワードなど各種の設定値は必ず全てメモしてください。DNSゾーン設定Azureニューポータルに仮想マシンをたてる基本を見ながら独自ドメイン、もしくは、Azureの初期ドメインをkusaVM01の仮想マシン(バーチャルホスト)にDNSゾーン設定してください。参考にしながらkusaVM01について独自ドメインでブラウザからワードプレスの初期設定画面まで進んでください。データベースは、もう1台のKUSANAGI仮想マシンkusaVM02と接続するため、ワードプレスの初期設定画面から先には進まないでください。DBサーバー用のKUSANAGI仮想マシンを立ち上げるKUSANAGI仮想マシンをDB向けとして、Azureポータルからもう1台デプロイ構築します。仮想マシンの名前はkusaVM02とします。Group(リソースグループ)は「RSG01」、ネットワークで「VNet01」、サブネットで「SBnet02」として間違わない様に選択してください。ネットワークセキュリティグループ(NSG)は新規でOKです。kusaVM02はインターネットから直でhttp通信することは無いため、DNSゾーン設定は行わず、KUSANAGIのプロビジョニングまで一気に行います。※kusaVM01と同じように各種アカウントの設定値を必ずメモしてください。Wall)の「kusaVM01-nsg」と「kusaVM02-nsg」が上記の仮想マシン2台を構築した時に自動で作られているので、それぞれサブネット(SBnet01とSBnet02)に割り当てます。「ダッシュボード」⇒「リソースグループ」⇒「RSG01」⇒「VPN01」⇒「サブネット」⇒名前「SBnet01」をクリック。「ネットワークセキュリティグループ(NSG)」で「kusaVM01-nsg」を選択し「保存」。同じように「SBnet02」では、「ネットワークセキュリティグループ(NSG)」で「kusaVM02-nsg」を選択し「保存」。「ダッシュボード」⇒「リソースグループ」⇒「RSG01」で「kusaVM01」と「kusaVM02」の「ネットワークインターフェイス(NIC)」を見て下記の様な設定になっている事を確認してください。kusaVM02のプライベートIPアドレス(192.168.2.4)をメモします。外部ホスト接続用のDBユーザーをkusaVM02へ作るこの操作はWEBアプリサーバーとDBサーバーを分離するために行う操作です。1仮想マシンの同一カーネル内におけるインバウンド(受信)の場合、操作の必要は無い事がほとんどです。仮想マシンのファイヤーウォール(iptables/firewalld)はカーネルの中にあります。標準出力とか標準入力とかのやつの話です。kusaVM02へSSHでログイン。MySQL(MariaDB)にrootでログインします。-pそして、次のコマンドを実行、外部ホストによる接続を許可するMySQLユーザーを作ります。この時、新しく作るMySQLユーザーアカウントをしっかりメモしておいてください。※緩いMySQLユーザーを作っていますので、必要に応じて、IPアドレス制限など、セキュアなユーザーに変えてください。アクセス先とアクセス元を最小限に絞る事がセキュリティの基本となります。option;受信セキュリティ規則/送信セキュリティ規則、NSG設定DBサーバー「kusaVM02」について、「ダッシュボード」⇒「リソースグループ」⇒「RSG01」⇒ネットワークセキュリティグループの「kusaVM02-nsg」⇒「受信セキュリティ規則」に進む。以下の様にInternetとVirtualNetworkからの通信を全種Denyしつつ、SBnet01のkusaVM01(192.168.1.4)から受信するMySQLのTCP3306番の通信と自分で使うPCのIPアドレスによるSSHのTCP22番の通信として2つだけを許可していますが、必要な時以外、AllowMyIPのSSHはDenyに設定しておくことを強く推奨します。受信セキュリティ規則のSSHとMySQLは、ポート番号を標準と別ものに変えておく受信セキュリティ規則のSSHとMySQLは、ポート番号を標準品WellKnownPort(ウェルノウンポート)とは別でHighPort(ハイポート)に変えておく様なセキュリティ対策もあります。ググるとポートで30101番などのあたりが使われている例がよくあります。Azureの仮想ネットワーク内ファイヤーウォールであるNSG(ネットワークセキュリティグループ)に加えて、Linux仮想マシン側のファイヤーウォールであるiptables/firewalldの設定もあるので、合計2箇所のファイヤーウォール設定が必要です。見積の際にしっかり2箇所分を請求する必要が有ります。SSHのTCP22番やMySQLのTCP3306番へ直接攻撃をしてくるようなものについては門前払いできる様になります。iptables/firewalld、仮想マシンのFirewall単品で見積思考をトレーニングするならiptables/firewalldのLinux仮想マシンのファイヤーウォール各種設定となると、事前に設定を書き出して、コマンドを作る作業が発生し、フラグを使ったステルススキャン対策、etc・・・もっとたくさん設定があります。時間と手間がかかる分、単品の作業として受注する場合は高めに設定する必要が有ります。エンジニアでない顧客の場合、顧客には技術ブラックボックスで説明は難儀を極める、単品見積で15万円などを提示すると、顧客が引いてしまって失注しやすいのが実態だと思います。悔しい悲しいIT業界。クラウド内の構築を全部まとめて受注して見積しないといけない。appとかPaasって大事だなぁ。技術的な価値を考えると、作業単品受けで見積トレーニングするなら、コミュニケーション時間の消耗料金が入るので15万円でも安い、実際、慎重に考えて設定するだけで8h(1日)くらいはかかる(下手したら2日)。提出用の設定書面の作成で1日。全てコピペで終わらせるのはちょっと怖い。単品受注は現実的にありえないですし、受けてはだめですが、競合の人件費などを考慮/調査しながら利益も出せる見積を作られる能力を磨く事は大事。それが出来なきゃ給料は上げられない。工程一つ一つの価値を考えて、ミクロから各作業の料金を組み合せて全体の見積を行う能力は、赤字防止の大切なスキル、どこの会社でも欲しい特殊能力に近いかも。マクロ目線の人月どんぶり勘定も必要ですが、マクロとミクロの両方で考えられる能力は、商品パッケージ開発をする場合には非常に大切。1インスタンスのKUSANAGI運用であれば、カーネルのファイヤーウォールをいじる事はあまり無いと思います。セキュリティ規則の変更を行ってからAzure内で設定が反映するまで2~3分程度待ち時間が発生します。慌わてて検証すると失敗すると思います。セキュリティ規則の設定は、1つずつ設定が反映したことを確認しながら進んだ方がいいです。ご参考に、規則を削除する時は、以下の様にすると出来ます。同じようにkusaVM01も設定します。kusaVM01については、HTTPのTCP80番、自分のパソコンからのSSHのTCP22番の2つを開放し、他はすべて遮断します。kusaVM01も必要な時以外、AllowMyIPのSSHはDenyに設定しておくことを強く推奨します。セキュリティは、OSI参照モデルの7つのレイヤー全部を守る、すなわち全部を塞いで必要なところだけに穴をあける事が基本です。AWS/Azure/GCPなどのレイヤー1の物理層のセキュリティは、中小零細企業では実現不可能な領域だと思います、その点を考えると、管理の人件費も含めると結構お高い仮想マシンでも、お得感があると考えられるのではと思います。セキュリティ的には、送信セキュリティ規則の設定も環境に応じてしっかり行ってください、意外と大切です。余談ですが、通常のWEBサイトではTCPを使い、マルチキャストやブロードキャストで動画のライブストリーミング配信を1対多として行う場合にUDPを使います。Serviceなどが関係してきます。kusaVM01にkusaVM02のDBを設定するブラウザでkusaVM01に設定した独自ドメインにアクセス、ワードプレスの初期設定画面に進み、kusaVM02の外部ホスト接続用DBアカウントを設定、MySQLホストにはkusaVM02のネットワークインターフェイスでメモをしたプライベートIPアドレス(192.168.2.4)を入力してください。その後、いつも通りのワードプレス設定を行って構築完了です。適当に記事を投稿し、kusaVM02のKUSANAGI仮想マシンにSSH接続してデータベースに記事が増えている事を確認してみてください。ついでに、kusaVM01のwp-config.phpでkusaVM02の外部ホスト接続用DBユーザーアカウントが設定されている事を確認してみてください。kusaVM02-nsg(ネットワークセキュリティグループ)でMySQLをDenyにするとブラウザでデータベース接続エラーが出れば正解です。Card)に付与されます。下記画像では、わざとNICを仮想マシンの右側に出して表現しています。有線LANの物理マシンであれば、ヒロセ電機のモジュラージャックTM21Rシリーズのすぐ後ろにNICが付いていたり、バッファローなどのサプライメーカーで、モジュラージャックとNICのセットモジュールでパーツが売られています。最近は見る事も無くなりましたが、無線LANカードもNICです。クラウドを扱うには、物理イメージが必要です。1つのNICで複数のIPアドレスを設定する事なども出来、保守用のIPアドレスを別けたり、2つ目のApacheを割りあてたりなど、用途に応じていろいろできます。有線と無線のLANインターフェイスを両方内蔵し、NICが2つある物理マシンでは、1台で2つのIPアドレスが割り当てられています。DHCPサーバを探す流れとしてDHCPDISCOVERからDHCPACKまでの一連の流れを確認するとIPアドレスの割当てがよくわかります。Azureは東日本/西日本リージョンがあり、国内の2拠点で冗長構成が可能です。アマゾンAWSは、2018年に国内は東京リージョン1拠点から大阪ローカルリージョンを加えた2拠点になりますが、大阪ローカルリージョンがオープン初期から東京リージョンと全く同じ機能を網羅出来るとは限りません。Azureをお勧めします。内容が脱線ばかりですみません・・・。なるので冗長化を組む際に障害ドメインや更新ドメインの重複は避ける。Balancerロードバランサーを使う場合、ポートの開閉で仮想マシンを監視している。仮想マシンの電源ON/OFFが判断基準ではない事に注意。Balancer:ILB)を行う事も出来る。配置箇所によってパブリックロードバランサーとプライベート(内部)ロードバランサーの2通りに別けて考える。KUSANAGI仮想マシン2台停止で維持するといくら?仮想マシン2台停止状態でも、仮想マシン1台につきディスク1つずつ毎月の請求が発生します。ディスクのサイズや数や仮想マシンサイズによって異なりますが、毎月で1500円×2など発生します。Azureバックアップやキャプチャなどスナップショット的なものを使う事をお勧めします。その際、ネットワーク構成はバックアップされません。スクリプト」を活用する必要が有ります。誰かをAzureのリソースグループに招待する方法Azureニューポータルに仮想マシンをたてる基本kusanagiでSFTPのFileZilla接続、Basic認証を設定するファイルの場所EC-CUBE3をAWSでVPC、EC2の順に作ってインストール!無料枠テスト段階で約200円/月。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。