Nagoya.cloud.first #1で調べた事項

[Nagoya.cloud.first #1](https://nagoyacloud.connpass.com/event/78769/)で色々調べた。なお、個人的に激アツだったAlibabaクラウドの利用方法、Azure WebAppにPythonアプリケーションをデプロイする方法については触れない。

## クラウドの利用方法

まずは、利用方法の確認から。検証用にはある程度無料で使える方法が必要なので…。

基本的には初回申込時と、継続的に使える無料枠がある。後者は大概何らかの制限がついている。

### Azure

次の2つの方法がある。

1. 新規の申し込みを行って、利用可能なクレジットを手に入れる。
2. 恒常的に使える無料枠を活用する。

1.は電話番号とクレジットカード番号による個人認証がある。2.についてはWebAppなどは無料で使えるインスタンスがあるのでそれを利用できる。次の記事が詳しい。

* [Azure無料アカウント (無料試用版) のアップデート | S/N Ratio (by SATO Naoki (Neo))](https://satonaoki.wordpress.com/2017/10/18/azure-free-account/)

* [Azure無料アカウント以外でのAzureのサービスの無料試用 | S/N Ratio (by SATO Naoki (Neo))](https://satonaoki.wordpress.com/2017/10/18/azure-free-trial/)

過去には月々3000円使える無料のサブスクリプションがあったんだけどなくなってしまった…。

* [無料のVisual Studio Dev Essentialsで、毎月3000円のAzure無料枠を活用しよう | S/N Ratio (by SATO Naoki (Neo))](https://satonaoki.wordpress.com/2016/02/05/vs-dev-essentials-azure/)

> このブログポストで紹介している、Visual Studio Dev EssentialsのAzure無料枠は廃止されました。2017年9月にアップデートされた「Azure無料アカウント」をお使いください。

### GCP

初回の申込みで12ヶ月有効な$300のクレジットを得られる他、無料の階層が提供されている。

* [GCP の無料階層 - 無料の長期トライアル、いつまでも無料  |  Google Cloud Platform](https://cloud.google.com/free/?hl=ja)

> これらのプロダクトは、トライアル期間中および期間終了後も、制限枠内で無料で利用できます。使用制限枠に有効期限はありませんが、変更されることがあります。なお、資格のあるお客様がこれを利用できます。

### AWS

初回の申込みで12ヶ月有効なクレジットと、無料の利用枠がある。

* [AWS クラウド無料利用枠 | AWS](https://aws.amazon.com/jp/free/)

> AWS 無料利用枠を使用すると、AWS のプラットフォーム、製品、およびサービスを無料で体験できます。

### IBM Cloud

無料で利用するためのライトプランがある。クレジットカードが申込時に必要ないのが特徴。学生でも利用しやすい。

* [IBM Cloudライト・アカウント (Bluemix) - Japan](https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/)

> クレジットカード不要で、期間無制限でWatson含めた多数のAPIとサービスが 無料で使える新しいアカウントです。 評価利用だけでなく、本番環境でもご利用いただけます。

### クレジットカードを手に入れる方法

学生でもクレジットカードは実は割と簡単に作れる。百貨店で作ると割と簡単に作れたり…。

## Cloud Archtecture

### Cloud Design Pattern

* [クラウドの設計パターン | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/architecture/patterns/)
* [Azure のインフォグラフィック - クラウド設計パターン](https://azure.microsoft.com/ja-jp/resources/infographics/cloud-design-patterns/)

Microsoftが提供するクラウドでのデザインパターン。

> パターンのほとんどは、ホストが Azure か他のクラウド プラットフォームかにかかわらず、分散システムに関連しています。


### Serverless Framework

* [Serverless - The Serverless Application Framework powered by AWS Lambda, API Gateway, and more](https://serverless.com/)

サーバーレスアーキテクチャの実現をより容易にするためのもの。AWSでもAzureでもGCPでもIBM CloudでもOK。

> Serverless is your toolkit for deploying and operating serverless architectures. Focus on your application, not your infrastructure.



## Kubernetes

みんなだいすきKubernetes。

### IBM Cloud

IBM Cloud Container Serviceで使えるらしい(未検証)。

* [IBM Cloud Container Service 概説](https://console.bluemix.net/docs/containers/container_index.html#container_index)

* [東京DCで IBM Cloud Kubernetes サービス開始、早速、使ってみた！ - Qiita](https://qiita.com/MahoTakara/items/e2455f1736dc57abffe4)

### GCP

* [Google Kubernetes Engine  |  Google Cloud Platform](https://cloud.google.com/kubernetes-engine/?hl=ja)

> Google Kubernetes Engine は、コンテナ化されたアプリケーションをデプロイするためのマネージド環境です。開発者の生産性、リソースの効率性、自動運用、オープンソースの柔軟性に最新のイノベーションをもたらし、製品化までの時間を短縮します。
> Google は、15 年以上にわたりコンテナで本番環境のワークロードを運用しており、その中で学んだ最高の技術を、Kubernetes Engine を動作させる業界屈指のオープンソース コンテナ オーケストレータである Kubernetes に組み込んでいます。

Goを使ったチュートリアルは次にある。

* [Kubernetes Engine クイックスタート  |  Kubernetes Engine のドキュメント  |  Google Cloud Platform](https://cloud.google.com/kubernetes-engine/docs/quickstart?hl=ja)

GCPに自分でKubernetesクラスタを作成するためにデプロイを試してみたらうまくいかなかった(方法はUbuntuのあたりで紹介しているもの)。探してみたところなんとなく気になるIssueが…。

* [Support for GCP application default credentials · Issue #612 · kubernetes/minikube](https://github.com/kubernetes/minikube/issues/612)

### ローカルへの環境構築

結局成功しなかったので次回以降に継続して取り組み。

#### Minikube

* [kubernetes/minikube: Run Kubernetes locally](https://github.com/kubernetes/minikube)

Kubernetesをローカルで簡単に走らせるためのもの。

> Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it day-to-day.

kubectrlとVirtualBoxが必要。

* [minikube でローカルでのテスト用 Kubernetes を構築 – 1Q77](https://blog.1q77.com/2016/10/setup-kubernetes-1-4-using-minikube/)

* [Minikubeを触ってみる、gcr.ioのプライベートレジストリからimageをpullしてみる - Qiita](https://qiita.com/ikuwow/items/2c734a3fdb6c56322839)

#### macOS

Docker for Mac with Kubernetesでいけるらしい。

* [Docker for Mac with Kubernetes - Qiita](https://qiita.com/taishin/items/920d62a641c9cd58f289)

#### Ubuntu

* [Kubernetes on Ubuntu | Kubernetes](https://kubernetes.io/docs/getting-started-guides/ubuntu/)

`conjure`と`juju`でいけるはず(2敗)

* [Install Kubernetes with conjure-up | Ubuntu tutorials](https://tutorials.ubuntu.com/tutorial/install-kubernetes-with-conjure-up?backURL=%2F&_ga=2.30786111.1666864005.1520060288-1819747708.1520060288#0)

GCPでUbuntuの仮想マシンを立てて実行してみたんだけどできなかった…。

* [GCPでUbuntu 16.04 (xenial) LTSを起動する - Qiita](https://qiita.com/tnir/items/315a7510e0ecf9595fcc)

## Firebase

Flutterを使ったチャットを実装するチュートリアルがある。

* [Firebase for Flutter](https://codelabs.developers.google.com/codelabs/flutter-firebase/#0)

> In this codelab, you'll learn how to enable Firebase features in an existing simple Flutter app, Friendlychat. You'll also enhance the app to send and receive images stored on a mobile device, in addition to text.

実装できる機能は、SDKの有効化と、Firebaseのプロジェクトの作り方、認証(Googleアカウント利用)、Database(ローカルで多人数と同期できるデータベース)、ストレージ(画像の保存)と一通り揃っている印象。あとは通知とアナリティクスと広告があればパーフェクトな感じ。

実行するときのハマりどころは別の記事にまとめた。

* [Flutterに入門した - Qiita](https://qiita.com/Ryuichirou/items/029b5312e73374187fa3)

## その他

### less, more

みんな大好き`less`

* [あなたはだんだん、ファイルを読むのにlessコマンドを使いたくなる - Qiita](https://qiita.com/marrontan619/items/95e954972706f32be255)

Windowsサーバーでは`more`が使える

* [これだけは覚えておきたいWindowsのコマンドプロンプトの使い方：Tech TIPS - ＠IT](http://www.atmarkit.co.jp/ait/articles/1502/13/news147.html)