Application Gatewayの正常性とIPv6でハマりました
はじめに Application GatewayのバックエンドをAWS ELBに指定したときに起きた問題です。 正常性プローブでは正常と判断されるが、バックエンド正常性では異常と判断れる現象が発生しました。 どの様に解決したかを紹介します。 解決 結論から書きますとIPv6の問題でした。 Application GatewayはIPv6に対応しないことを頭に入れておく必要があります。 今回、バックエンド側にしたAWS ELBとした場合に発生しました。 調査の結果 dualstack.xxxxxxxxx-0 ...
Applicaton Gateway の構築時にハマったこと
はじめに Application Gatewayを実際に構築する上でハマったことを紹介していきます。 実際に構築して初めて気づいたことです。仕様上回避できず不便でした。 リスナーの変更 リスナーの作成時に問題になることとして、HTTPとHTTPSの切り替えができない点です。 これによって当然ダウンタイムも発生すしますし、切り替え時にリスナー名が変更されるというちょっとした問題発生します。 名前については切り替え後に一旦削除して再度同じ名前でリスナーを作成することで一応解消できます。 リスナーの削除 リスナ ...
2021年のAzure Updateを確認して何が注目されているのかみてみる。
はじめに 2022年もはじまりました。そこで2021年はどのようなアップデートが行わていたのか確認してみたいと思います。 投稿日 3月と11月が投稿数が多いです。 理由としてはMicrosoft Igniteが3月と11月に開催されるんどイベントがAzureに関連したUpdateが発表されるためだと思います。 年末年始はホリデーシーズンなので少な目ですね。一貫して80前後の記事が投票されていることも分かります。 タグ TOP20を出しました。上位4つまでは大きなカテゴリのようなものになると思 ...
2022年のブログ更新について - CloudShellからご挨拶
新年あけましておめでとうございます。 年末から毎日更新を始めています。 なぜ、始めたかというとアウトプットが全然できておらず、「アウトプットしないのは知的な便秘 @ ssmjp」という言葉がある通り便秘でした。 気持ち的にも気持ち悪く、誰かに話したいが話せないのが嫌なので、このチャレンジを始めました。 アプトプットの方法として、Youtubeや登壇といった方法もありますが、文字に残らないという難点もあります。 ブログも見てもらえないと、意味がないという難点はあります。 そこで、少しでも人の目につくように毎 ...
App Serviceの問題の診断と解決にはどんな機能があるのか。
はじめに App Serviceに問題が発生した場合に、トラブルシューティング用のツールが用意されています。様々なツールがあるので紹介します。 それぞれカテゴリに分かれているのでそれぞれ紹介します。 Availability and Performance 可用性とパフォーマンスについてトラブルシューティングするためのツールです。 アプリの状態を確認し、アプリまたはプラットフォームの問題を発見します。 Configuration and Management 構成と管理についてのトラブルシューティングする ...
Application Gatewayのバックエンドを設定する場合に考慮すること
はじめに Application Gatewayのバックエンドを設定する場合に考慮することについて紹介したいと思います。 バックエンドの種類として以下の4つがあります。 IPアドレスまたはFQDN 仮想マシン VMSS App Service これらを指定する場合に考慮する必要なものがあります。 IPアドレスまたはFQDNの場合です。 何を考慮するべきなのか説明していきます。 IPアドレスまたはFQDN 最初にApp Serviceを指定した場合の通信について説明します。 App Serviceを指定した ...
Azure Application Gatewayで特定IPの通信のみ許可する方法
はじめに Application Gatewayで特定の通信にみ許可するケースは少ないと思いますが紹介したいと思います。 利用するケースは、Application Gatewayでパスで振り分けを行いアプリケーションを特定の外部ユーザーに公開したい場合などです。 アプリケーションゲートウェイにはIPによる通信拒否ができません。これを実現するには、所属しているVNETにネットワークセキュリティグループを適用します。 下記を参考にしています。 ドキュメントではすべてのパブリック通信を拒否しています。 ネットワ ...
Application GatewayのバックエンドがApp Serviceの場合はリダイレクト対策が必要です。
はじめに App Serviceでは最後にスラッシュ「/」がある場合にはリダイレクトされることを解説しました。 単一のApp Serviceで運用する場合には、特に気にする必要はないと思います。 問題になってくるのはApplication GatewayのバックエンドにApp Serviceを指定した場合です。 図のように①でアクセスします。すると、App Service(バックエンド)は②で受け取ります。前回説明したように、App Serviceは最後のスラッシュ「/」がないためリダイレクトしようとしま ...
App ServiceではURLの最後にスラッシュ「/」が無いとリダイレクトされてしまう。
はじめに App Serviceの特徴の一つとしてURLの最後にスラッシュ「/」が無い場合には、リダイレクトされて勝手にスラッシュ「/」が付きます。 これはドキュメントルートの下層ディレクトリで起こります。ドキュメントルートでは起こりません。 例えば図のように https://aaa.contoso.com/bbb → https://aaa.contoso.com/bbb/ のようにリダイレクトされます。 最初は何故リダイレクトされているのか全く分からなかったです。 このことについて言及しているドキュメ ...
App ServiceをNATゲートウェイを利用して送信IPアドレスを固定IPにする。
はじめに App Serviceの送信IPアドレスを固定IPにする方法を紹介します。 通常、App Serviceの送信IPアドレスは固定化されます。ただし、そこに問題があります。プロパティを確認すると複数の送信IPアドレスがあることが分かります。これは対象App Service専用のIPアドレスではなく共用IPアドレスになるため利用するにはセキュリティの観点からも躊躇すると思います。 では問題ないのではと思うかもしれませんが、これも変更されるタイミングがあります。詳しくは下記のドキュメントで確認してくだ ...
App Serviceの通信をプライベートエンドポイントとリージョンVNET統合でVNETに閉じ込める。
はじめに App Serviceの通信をVNET内にとどめいたいという要望はよくあります。 App Service Environmentを利用すれば良いのではと思うかもしれませんが、コスパが悪いし運用も面倒です。 そこでプライベートエンドポイントとリージョンVNET統合を利用して通信をVNETにとどめたいを思います。 注意事項としては完全隔離ではないという点です。ここら辺はセキュリティ要件と検討する必要があります。 構成 今回はApp Service(Web App)が1つとVNETか1つの単純な構成を ...
App ServiceのリージョンVNET統合での外部からのアクセス制限について
はじめに App ServiceをリージョンVNET統合を利用して、VNET内のみの通信にしたかったときに必要だった設定を紹介します。 なぜ、VNET統合でVNET内の通信のみにしたかったというとWebjobでジョブを起動させるためだけのApp Serviceが配置しており、外部からのアクセスは必要ないというものでした。 App Serviceのアクセス制限 アクセス制限は、設定を行わない場合にはすべて許可の設定になっていて気を付ける必要があります。 そこで、すべてのアクセスを拒否する場合にはどうしたらよ ...
Movable Type 7をAzure Web Apps で使う方法 - Movable Type導入編
はじめに 前回はPerlの導入まで解説しました。 次にMovable Typeの導入していきたいと思います。 Movable Type6はFastCGIで動作していたらしい・・・ですが仕様の変更なのかちょっと分かりませんがMovable Type7+現環境では動作しませんでした。 Perlを動作させる Perlは前回の記事で動作していることが前提です。 <?xml version="1.0"?> <configuration> <system.webServer> &l ...
Ubuntu20.04でMySQL8のmysql_secure_installationでパスワードが設定されない。
はじめに 久しぶりにMySQLをAzure VMのUbuntu20.04にインストールする機会がありました。 そこで、気になったことがありました。 インストール後にmysql_secure_installation を行うのですがrootパスワードが設定されない。 何故だろうを確認したところ設定されていない。 mysql> select user, host, authentication_string from mysql.user; +------------------+----------- ...
Terraformのprovider azurermを手動でインストールする。
はじめに Terraformでちょっと古いコードを実行しようとした場合、azurermが無いと言われることがあります。 また、特定のバージョンを使いたい場合などオフラインの状態で利用したいなどの場合は手動でインストールする必要が出てきます。 そこで、下記から手動でインストールする方法を確認していきます。 準備 コンパイルする必要があります。 Goとmakeをインストールする $ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash $ wget ht ...
