選択した Windows Server イメージが手に入れば(作成、ブートまでほんの数分です)、ユーザー資格情報の設定、ファイアウォール ルールによる適切なポートのオープン、マシンとの RDP 接続、お気に入りのソフトウェアのインストールなどが可能になります。
もし、インストールしようとしているソフトウェアの中に Microsoft IIS ウェブ サーバーや ASP.NET などが含まれており、それらが適切なファイアウォール ルールを伴うものであれば、
Cloud Launcher の ASP.NET イメージを使うことを真剣に検討すべきでしょう。
これで、Windows Server インスタンスが作られるだけでなく、SQL Server 2008 Express、IIS、ASP.NET 4.5.2 がインストールされ、標準的なファイアウォール ルールによって HTTP、HTTPS、WebDeploy、RDP ポートが有効になります。
Compute Engine 上の SQL Server イメージ
Cloud Launcher の ASP.NET イメージに最初から含まれている SQL Server Express は、開発には役に立ちますが、本番ワークロードの処理にあたっては本番バージョンの SQL Server が必要になるでしょう。そこで、
Google Compute Engine 上の SQL Server として以下のバージョンをサポートすることになりました。
- SQL Server Standard(2012、2014、2016)
- SQL Server Web(2012、2014、2016)
- SQL Server Enterprise(近日リリース)(2012、2014、2016)
SQL Server のこれらのエディションは、Windows Server と並ぶベース イメージとして
Google Compute Engine で利用できます。Google としては初めて SQL Server の本番エディションを提供することになるので、皆さんには
フィードバックをぜひお願いします。なお、GCP 上の SQL Server については別の投稿記事で詳しく解説します。
NuGet に Google サービス ライブラリが登場
Windows Server と ASP.NET、SQL Server があれば、ASP.NET 4.x サイトとサービスを GCP に移行するために必要なものはすべて揃い、皆さんにも満足していただけると思います。
さらに、
100 種以上の Google API が提供するサービスに対しても、お客様から非常に高い評価をいただいています。これらはすべて
NuGet において、.NET を含むさまざまな言語とプラットフォームを対象としてリリースされています。
私たちは、.NET デベロッパーの皆さんに Google のクラウド専用 API を簡単に理解していただけるよう力を注いできました。そうした目標に向けて、私たちはこのたび、大多数の Cloud API クライアント ライブラリについて、.NET を含む言語ごとのサンプルが掲載されているリファレンスを完成させました。
また、ライブラリのユーザビリティを向上させるべく、私たちは一つひとつの Cloud API について、個々の言語専用のラッパー ライブラリを作っています。これらのライブラリは現在ベータ テスト中で、
Google BigQuery、
Google Cloud Storage、
Google Cloud Pub/Sub、
Google Cloud Datastore 用のものがあり、その他の API にも広げているところです。
そのほか、
Google Stackdriver Logging も
log4net ライブラリをサポートするようになり、マルチマシン、マルチアプリ フィルタリング、およびクエリという Stackdriver の優れた機能をすべて備えたままで、アプリケーションへのログインが単純化されました。これらのライブラリは、NuGet と共に
GitHub からも提供されているので、バグ報告や機能要求、コード追加などが可能です。
こうした .NET ライブラリ開発を主導しているのは、有名な
C# 本の著者であり、
Stack Overflow での .NET デベロッパーへのアドバイスでも知られる Jon Skeet 氏です。Google の Cloud API を .NET デベロッパーにとってより良いものにするうえで、同氏の協力が得られたことを私たちはとてもうれしく思います。
Visual Studio 用の Cloud Tools
私たちが Google のすべてのライブラリを NuGet で入手できるようにした理由の 1 つは、Visual Studio の中からプロジェクトにライブラリを簡単に導入できるようにすることです。しかし、クラウド プロジェクトでは、単にコードを書くだけでなく、VM やストレージ バケットなどのリソースの管理やデプロイなど、やりたいことが多数あると思います。
Visual Studio Gallery で入手できる
Google Cloud Tools for Visual Studio は、そのために作ったツールです。
Visual Studio 組み込みの Publish ダイアログを利用すれば、ASP.NET 4.x アプリケーションを Google Compute Engine にデプロイできますが、Cloud Tools エクステンションを使用することで、VM の資格情報の管理や Publish 設定ファイルの生成などについても、Visual Studio から簡単に行えます。
この機能は Google Cloud Explorer に含まれています。Cloud Explorer は、Compute Engine、Cloud Storage、Google Cloud SQL のリソースのブラウズと管理が可能です。
これは手始めに過ぎません。私たちは Cloud Platform を Visual Studio にもっと深く統合するためのさまざまなプランを立てています。
Cloud Tools for Visual Studio は GitHub にホスティングされているので、提案やバグ レポート、ヘルプなどをお寄せください。お待ちしています。
Google 初の PowerShell エクステンション
Visual Studio はクラウド プロジェクトのリソースを対話的に管理できる素晴らしい手段ですが、処理の自動化は不得手です。そこで私たちは、Google 初の PowerShell エクステンションとして、
Cloud Tools for PowerShell を発表しました。Google Cloud PowerShell コマンドレットを使えば、Compute Engine と Cloud Storage のリソースを管理できます。
既存 VM のマイグレーション
Compute Engine が Windows Server と SQL Server をサポートし、Visual Studio や PowerShell との統合も進んでいることから、.NET アプリや SQL Server データを Google Cloud Platform に移すことは以前よりも楽になりました。
しかし、それ以上のものが必要なときはどうすればよいのでしょうか。つまり、新しいマシンをセットアップしてアプリケーションとデータをマイグレートするのではなく、自社データセンター内のマシンをまるまるクラウドに移し、何も変更していないかのように実行し続けたいときです。
CloudEndure との新しい提携が、まさにそれを可能にします。
CloudEndure は Windows と Linux のマシンをブロック レベルでレプリケートするので、アプリ、データ、構成のすべてをマイグレートできます。Windows ワークロードのマイグレーション オプションに関する詳細と、マイグレーションの立案や実施で役立つ情報については、
Google Cloud Platform マイグレーション リソースを参照してください。
近く登場 : ASP.NET Core のサポート
多くのデベロッパーが、次世代のワークロードとして
ASP.NET Core の検討を進めています。ASP.NET Core は、Linux でフルサポートされているため、Docker コンテナにラップし、App Engine flexible environment や
Google Container Engine 上の Kubernetes を使ってデプロイすることができます。
まだどちらのプラットフォームでも ASP.NET をフルサポートしているわけではありませんが、Google の方向性を皆さんに知っていただくために、
すべての Google API Client Libraries を .NET Core 上で使えるようにしました(ただし、私たちが手作りで開発したライブラリは例外で、まだ作業を進めているところです)。
たとえば次に示すのは、Google Cloud Storage バケットからランダムな JPEG イメージを取り出す ASP.NET Core コードです。
public IActionResult Index() {
var service = new StorageService(new BaseClientService.Initializer() {
HttpClientInitializer =
GoogleCredential.GetApplicationDefaultAsync().Result
});
// find all of the public JPGs in the project buckets
var request = service.Objects.List("YOUR-GCS-BUCKET");
request.Projection = ObjectsResource.ListRequest.ProjectionEnum.Full;
var items = request.Execute().Items;
var jpgs = items.Where(o => o.Name.EndsWith(".jpg") &&
o.Acl.Any(o2 => o2.Entity == "allUsers"));
// pick a random jpg to show
ViewData["jpg"] =
jpgs.ElementAt((new Random()).Next(0, jpgs.Count())).MediaLink;
return View();
}
私たちは、Linux ベースの ASP.NET Core でもコンテナ ベースのデプロイと同じ第一級のサポートを実現するべく、作業を続けています。それまでは、Cloud Platform 上で単純な .NET アプリを実行する
こちらのサンプル コードをチェックしてください。
まだ始まったばかり
何よりもまず申し上げたいのは、私たちは Google Cloud Platform 上で Windows と .NET ワークロードをサポートすることに真剣に取り組んでいるということです。そして、次に申し上げたいのは、それはまだ始まったばかりだということです。
私たちは、Windows / .NET サポートのあらゆる分野にまたがる壮大なプランを持っています。そして、それに対する提案やバグ レポート、コードのコントリビュートなどのフィードバックを歓迎します。
最後に、リソースをあと 1 つ紹介します。
.NET on Google Cloud Platform には、デベロッパーが Cloud Platform 上の .NET で成功を収めるために知っておくべきすべてのことがまとめられています。必要なのに見つからないものがある場合は、
Google Cloud Developers group にコメントをお送りください。
- Posted by Chris Sells, Product Manager, Google Cloud Developer Tools
第3勢力の台頭. AWS/Azure/Googleといった巨大資本どうしのぶつかり合う時代に突入したようですね。
返信削除