「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[Visual Studio]]
--[[Docker for Windows]]
--[[Docker Desktop for Windows]]
--[[Visual Studio Tools for Docker]]
--[[Azure Kubernetes Service (AKS)]]
--[[ASP.NET Core]]
---[[ASP.NET Coreのデプロイ]]

* 目次 [#j01d33c4]
#contents

*概要 [#nddd7376]
コレから評価します。
-「[[Visual Studio Tools for Docker]]」の延長で、~
[[K8s>#x4a72daa]](と言いつつ、実際は[[AKS>Azure Kubernetes Service (AKS)]])にデプロイしようという野心的な物体。

-何気に名称が、Visual Studio Tools for Kubernetesに変更されている?

-参考
--Visual Studio Tools for Kubernetes - Visual Studio Marketplace~
https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vs-tools-for-kubernetes

**前提環境 [#t12636eb]
[[コチラ>Visual Studio Tools for Docker#ke8e67e9]]との差分

-[[Visual Studio]] 2019 Community
--.NET Core 3系

-[[Visual Studio]] 2022 Community
--.NET 6系
--[[Docker for Windows]]が必須ではなくなった。

**インストール [#t70031ef]
[[コチラ>Visual Studio Tools for Docker#b8b286e6]]との差分

-Visual Studio Kubernetes Tools

--以下ではなく、~
https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vs-tools-for-kubernetes

--以下からインストール(VS2019の場合)
#ref(install.png,left,nowrap,インストール,60%)

**紆余曲折のメモ [#yf650ab5]

***断念 [#t6534e1a]
[[Open PaaS>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Open%20PaaS]]は、ちょっと難しいなぁと思い断念していた。

-[[OpenShift>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?OpenShift]]
-[[Cloud Foundry>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Cloud%20Foundry]]
-[[Kubernetes(K8s)>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Kubernetes]]

***再起 [#gb258a43]
しかし、[[Compose on K8s>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Compose%20on%20Kubernetes]]がリリースされ、これによって、~
[[Docker Compose>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%82%BA]]を[[Open PaaS>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Open%20PaaS]]で扱えるようになった~
らしいため、評価をリスタートしてみる気になった。

***再び断念 [#b2ef6933]
[[手順3>#vb6a5d71]]まで調査した結果、再び中断した(2019/12/04)。

-[[Azure Dev Spaces]]で実行することはできた~
(ただし、パブリック・アクセスが不可能の故、明確では無い)。

-ツールが(、まだ)、作りこまれていないっぽい。

--Kubernetes/Helmを追加しても、[[Azure Dev Spaces]]に行ってしまい、~
[[Azure Kubernetes Service (AKS)]]のlaunchSettingsなどは構成されない。

--また、[[Docker Compose>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%82%BA]]で、そのまま、[[AKS>Azure Kubernetes Service (AKS)]]にデプロイできない。

***再び再起 [#xa2c47f4]
調査した結果、再び再起した(2019/12/06)。~
※ ただし、CLIでやっているので、Visual Studio Kubernetes Toolsはあまり関係ない。

-[[手順4>#q9416ca2]]で
--ネットの上の[[Docker Compose>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%82%BA]]をCLIで動かす事が出来た。
--また、[[AKS>Azure Kubernetes Service (AKS)]]で動かす事が出来た。

-[[手順5>#n9ee4347]]で
--[[こちら>Visual Studio Tools for Docker#qf76ac18]]の[[Docker Compose>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%82%BA]]をCLIで動かす事が出来た。
--また、[[AKS>Azure Kubernetes Service (AKS)]]で動かす事が出来た。

-[[手順6>#qb850bcb]] : 手順5の[[K8s>#x4a72daa]]マニュフェストにNginxを追加する。

***再々の再起 [#r008f7ea]
調査した結果、再び再起した(2020/04/13)。

-[[手順7>#m6a31eb3]] : [[Docker Desktop for Windows]]に、寄り道。

-[[手順8>#q66040c9]] : [[コチラ>Visual Studio Tools for Docker#ff5fbe1b]]の仕切り直し。

-[[手順9>#dac2b9bc]] : 手順8を[[K8s>#x4a72daa]]で実施

***将来的には... [#n3e06a9c]
これらのツールが、

-Helm Charts
-Compose on Kubernetes
-Kompose

[[辺り>#x4a72daa]]を統合するのではないだろうか?

***[[Visual Studio]] 2022 [#o90ed370]
[[Visual Studio]] 2022で動作確認。
-[[手順10>#nb71a05a]]
-[[手順11>#kd8a305b]]

***CaaSのトレンド変化 [#k1f61ca7]
「[[将来的には...>#n3e06a9c]]」からの変化としては、~
[[Open PaaS>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Open%20PaaS]]系のCaaSだけではなく、~
クラウド系のCaaSも歓迎されてきた。

*手順1 [#f98240e6]
しかし、結局、「Visual Studio Kubernetes Tools」が何者なのか?~
イマイチ解らないので、「WebApplication1」的なモノを使用し、再び、評価してみる。

**画面の確認(手順 / 結果) [#e51fd9d0]
試してみると、以下のような画面が表示される。

-プロジェクト・テンプレートにKubernetesが追加される。
#ref(1.png,left,nowrap,手順1,60%)

-ASP.NET Core 3.0 の MVCを選択する。
#ref(2.png,left,nowrap,手順2,60%)

-新規作成したプロジェクトをソリューション・エクスプローラで確認すると「azds.yaml」が追加されていることが解る。

-[[Azure Dev Spaces]]のlaunchSettingsでデバッグ実行を開始すると、Azureにデプロイしようとするので、ここで止める。
#ref(5.png,left,nowrap,手順5,80%)

**ココまでで解った事。 [#r2ea16b1]
-Kubernetes用プロジェクト・テンプレートでは、~
「azds.yaml」が追加され、[[Azure Dev Spaces]]のlaunchSettingsが構成されるらしい。

-参考
--Azure Container Service (AKS) vs Azure Service Fabric - Pikedev Blog~
https://pikedev.com/azure-container-service-aks-vs-azure-service-fabric/

*手順2 [#wda48e54]
取り敢えず、[[Azure Dev Spacesの手順>Azure Dev Spaces#d67caafd]]を参考にして、~
単純な構成で[[Azure Dev Spaces]]を試してみる。

**手順 [#a0f4b2ff]

***[[Azure Dev Spaces]]の構成 [#b651eed1]
-Azure ポータルから、K8sクラスタを使用して構成する。

-Dev Spaces言うだけあって、開発・デバッグ用のスペースらしい。

-K8sクラスタは構築出来ても、~
Dev Spacesを有効にできるリージョンに制限があるので注意する。

***プロジェクトの構成 [#sbbf2a67]
-Kubernetes用プロジェクト・テンプレートで「WebApplication1」的なプロジェクトを新規作成

-[[Azure Dev Spaces]]のlaunchSettingsでデバッグ実行を開始すると、

--[[前述>#e51fd9d0]]の[[Azure Dev Spaces]]のダイアログが表示される。

--AzureサブスクリプションのアカウントでVisual Studioにログインしていると、~
[[構成>#b651eed1]]した[[Azure Dev Spaces]]の情報が自動入力されるのでそのまま続行する。

**結果 [#lc7d0387]
Azureのハズだが、何故か、localhostでアプリケーションが起動する。~
VS2019から?既定でパブリック・アクセスが不可能になっているらしい。

-Hyper-Vコンテナで動いているのか?[[AKS>Azure Kubernetes Service (AKS)]]上で動いているのか?区別がつかない。

-調べると、内部でstdout と stderr + port forwardしているっぽい~
(Visual Studioの認証も通しているのでセキュアなのかもしれない)

-試しにHyper-VコンテナをホストしているHyper-VのVM停止させてみたが、~
それでもUNIXで動作するので、[[AKS>Azure Kubernetes Service (AKS)]]で動作&[[リモートデバッグ>WSL上での.NET Core開発#fd286380]]しているものと思われる。

**ココまでで解った事。 [#i870f346]
-実際に、[[Azure Dev Spaces]]で動作させることが出来た。
-パブリック・アクセスが不可能だが、恐らく、[[AKS>Azure Kubernetes Service (AKS)]]上で動いている。

*手順3 [#vb6a5d71]
単純な構成で、[[Azure Dev Spaces]]でない [[AKS>Azure Kubernetes Service (AKS)]] で使ってみる。

**前提条件 [#bc424342]

***構成 [#ue0f9f99]
-テンプレートの選択~
標準のプロジェクト・テンプレートで「WebApplication1」的なプロジェクトを新規作成~
(Kubernetes用プロジェクト・テンプレートでは「Kubernetes/Helm」を追加できなかったタメ)

-プロジェクトの構成~
[[手順2>#wda48e54]]と、同様の「WebApplication1」を使用する。

***手順 [#t9731846]
[[手順2>#wda48e54]]と同様。

**結果 [#wda12acf]
標準のプロジェクト・テンプレートで「Kubernetes/Helm」を~
追加しても[[Azure Dev Spaces]]のlaunchSettingsになってしまう。

**ココまでで解った事。 [#d304b325]
(Toolsでは、できないのか、まだ、実装されていないのか?)

*手順4 [#q9416ca2]
[[Azure CLI]]で、[[Azure Dev Spaces]]でない [[AKS>Azure Kubernetes Service (AKS)]] で使ってみる。

**前提条件 [#bc424342]

***構成 [#u5d27a26]
-[[AKS>Azure Kubernetes Service (AKS)]]の構成~
Azureのポータルと、[[Azure CLI]]のazコマンドを使用する。

-プロジェクトの構成~
https://github.com/Azure-Samples/azure-voting-app-redis

***手順 [#j3b1eb24]
[[AKSのvoting-appチュートリアル>Azure Kubernetes Service (AKS)#c7683828]]を遂行する([[Azure CLI]]を使用する)。

**ココまでで解った事。 [#d304b325]
-「docker-compose up -d」で躓いていたが~
再起動&リトライなどで動作するようになる。~
(docker自体が、そういうモノらしく、不安定であるもよう)

-[[AKS>Azure Kubernetes Service (AKS)]]は以下のコマンドで操作する。
--[[Azure CLI]]のazコマンド
--[[kubectl CLIコマンド>#x4a72daa]]

-docker-composeで作成したイメージを
--ローカルで実行・テストした後に、[[AKS>Azure Kubernetes Service (AKS)]]にイメージをプッシュして実行できる。
--ただし、[[K8s>#x4a72daa]]での実行の定義は、docker-composeではなく[[K8s>#x4a72daa]]マニュフェストに書く。

*手順5 [#n9ee4347]
-手順5では、複雑な構成の [[Docker Compose>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%82%BA]] を [[AKS>Azure Kubernetes Service (AKS)]] で使ってみる。

-具体的には、[[手順4>#q9416ca2]]で、docker-composeで作成したイメージを[[AKSで動かす>Azure Kubernetes Service (AKS)#u25677fb]]。

**前提条件 [#hf85d64a]

***構成 [#idfb4642]
[[こちら>Visual Studio Tools for Docker#qf76ac18]]をVS2019に.NET Core3.0アップグレード~
したものを使用する(移行後の物品は[[コチラ>#k18f6b89]])。

***手順 [#m62b70d6]
[[AKSのASP.NET Coreチュートリアル>Azure Kubernetes Service (AKS)#u25677fb]]を遂行する([[Azure CLI]]を使用する)。

**結果 [#ba1b5eb2]

***ローカル [#w42b791b]
ローカルの[[Docker for Windows]]で動かしてみる。

-起動
 >C:\Git\EvaluateAspNetCoreOnK8s\WebApplication1>docker-compose up -d 
 >Starting webapplication1_postgres_1 ... done
 >Starting webapplication1_redis_1    ... done
 >Creating webapplication1_webapplication1_1 ... done

-アクセス~
 http://localhost:5000/

-停止
 >C:\Git\EvaluateAspNetCoreOnK8s\WebApplication1>docker-compose down
 >Stopping webapplication1_webapplication1_1 ... done
 >Stopping webapplication1_postgres_1        ... done
 >Stopping webapplication1_redis_1           ... done
 >Removing webapplication1_webapplication1_1 ... done
 >Removing webapplication1_postgres_1        ... done
 >Removing webapplication1_redis_1           ... done
 >Removing network webapplication1_default

※ 上記の参考に習い、無事動作した。

***リモート [#d821480b]
リモートの[[AKS>Azure Kubernetes Service (AKS)]]で動かしてみる。

 >kubectl get service --watch
 NAME              TYPE          CLUSTER-IP    EXTERNAL-IP    PORT(S)         AGE
 ...

**ココまでで解った事。 [#c2d7d7a8]
コンテナ技術を使用すると、
-単体 → 結合 → システム・テスト(UT → CT → ST)と環境をチェーンさせて、
-シームレスにステージング環境にまで持っていくことができるようになる。

*手順6 [#qb850bcb]
※ 本手順は未実施。

**前提条件 [#k6312410]

***構成 [#ve705bf4]
[[手順5>#n9ee4347]]の[[K8s>#x4a72daa]]マニュフェストにNginxを追加する。

***手順 [#q97357c2]
-[[手順5の手順>#m62b70d6]]を参考にする。

-[[K8s>#x4a72daa]]マニュフェストにNginxを追加する。

--Nginx
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   name: proxy
 spec:
   replicas: 2
   selector:
     matchLabels:
       app: proxy
   template:
     metadata:
       labels:
         app: proxy
     spec:
       containers:
       - name: nginx
         image: nginx:latest
         ports:
         - containerPort: 80
         volumeMounts: 
         - name: proxy
           mountPath: /etc/nginx/conf.d
       volumes: 
       - name: proxy
         configMap: 
           name: proxy
 ---
 apiVersion: v1
 kind: Service
 metadata:
   name: proxy
 spec:
   type: LoadBalancer
   ports:
   - port: 80
   selector:
     app: proxy

--WebApplication1

---kind: Deployment
 ...
 spec:
 ...
   template:
   spec:
     containers:
       ports:
       - containerPort: 5001

---kind: Service
 ...
 ports:
 - port: 5001

※ 80 と 5001 のブリッジは、~
 /etc/nginx/conf.d の proxy_pass に設定される。

**結果 [#odf9e9b5]

***ローカル [#c28a242b]
未実施

***リモート [#a2b0b8ae]
未実施

**ココまでで解った事。 [#w8dfdca3]
未実施

*手順7 [#m6a31eb3]
[[Docker Desktop for Windows]]に、寄り道。

**[[K8s>Docker Desktop for Windows#ad01d6b3]] [#eee49462]
これは、Docker Desktop(ローカル)のK8s

**[[WSL2>Docker Desktop for Windows#mb6cff6e]] [#q9f2a2b3]
Docker Desktopは、[[Docker Desktop WSL2 Backend>Docker Desktop for Windows#a4fac57b]]で、WSL2もサポート

**[[Windows Serverコンテナ>Docker Desktop for Windows#l3cc3544]] [#mf43263c]
Docker Desktopは、Docker Desktop for Windowsで、Windowsコンテナもサポート

*手順8 [#q66040c9]
上記([[手順5>#n9ee4347]])のサンプルを[[MVC_Sample>#ncd2818e]]に変更。

**前提条件 [#e8b6effc]
-daisukenishino2/EvaluateAspNetCoreOnK8s:~
KubernetesでASP.NET Coreを評価する。~
(Evaluate ASP.Net Core on Kubernetes.)
--→ MVC_Sample~
https://github.com/daisukenishino2/EvaluateAspNetCoreOnK8s#mvc_sample

**結果 [#s5c4d3b2]
上手く行かなかった。

-プログラム・サービス一式をDocker Compose化した。 - OSSコンソーシアム~
https://www.osscons.jp/jo99tfumm-537/#_537

**ココまでで解った事。 [#g4d04fca]
-不安定なので、「外部サービス類」と「WebアプリとWebサーバ」のコンテナは、~
別の docker-compose.yml にするのがベターユースなのではないか?という事。
>※ [[Docker for Windows]]が不安定という話と、~
 [[Docker>コンテナ技術#w576cb19]]のportをマップする機能が若干不安定との情報がある。

-その後、networksでブリッジさせると上手く行く事が解った。
--第0.5回 セルフZoom 部会 - OSSコンソーシアム~
2つのDocker Composeを統合・分割する。~
https://www.osscons.jp/jogfiigaw-537/

*手順9 [#dac2b9bc]
上記([[手順8>#q66040c9]])を[[ローカルのDocker Desktop for WindowsのK8s>Docker Desktop for Windows#u51cfd19]]で実行。

**[[前提条件>#eee49462]] [#gc7a8fd0]

**結果 [#n8bd0557]
上手く行かなかった。

-プログラム・サービス一式をDocker Compose化した。 - OSSコンソーシアム~
https://www.osscons.jp/jo99tfumm-537/#_537

**ココまでで解った事。 [#o78464e9]
-「その文字は使えない」とか「ファイルをマウントしろ」とか、~
メッセージが表示され、そのままのDocker Composeでは上手く動かない。

-なので、やれるとしても、[[Kompose>#x4a72daa]] のconvert機能を~
マイグレーション・ツールのように使用して、マニフェスト・ファイルを~
新規作成する位しか、[[K8s>#x4a72daa]]へチェーンさせる方法は無さそう。

*手順10 [#nb71a05a]
[[Visual Studio]] 2022でやってみる。

**前提条件 [#gce3b9bc]
[[Docker for WindowsではなくWSL2>#t12636eb]]で実行。
-WSL2インストール済み
-Docker for Windows未インストール

**結果 [#rad4f04b]

***コンソールアプリ [#veffd737]
-Dockerサポートを追加し、デバッグ・プロパティからWSLを選択しデバック実行。
-(初回は、.NET未インストールのエラーが表示され、自動的に.NETインストールが進む)
-問題なく実行できた。ただし、結果はデバッグ出力に出力される。

***Webアプリ [#ka815a5c]
-Dockerサポートを追加し、デバッグ・プロパティからWSLを選択しデバック実行。
-(初回は、ASP.NET未インストールのエラーが表示され、自動的に.NETインストールが進む)
-問題なく実行できた。ただし、結果はブラウザ経由で表示される。

**ココまでで解った事。 [#pe53dc34]
-問題なく実行できた。
-ただし、[[Docker Composeには、Docker for Windowsが必要>Visual Studio Tools for Docker#z633182b]]

*手順11 [#kd8a305b]
[[Visual Studio]] 2022で[[Docker Compose>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%82%BA]]を試してみる。

**前提条件 [#uc57c0a5]
[[Docker for WindowsとWSL2>#t12636eb]]を併用
-WSL2インストール済み
-Docker for Windows再インストール~

※ ただし、[[Docker Desktop WSL2 Backend>Docker Desktop for Windows#a4fac57b]]を有効化しない。

**結果 [#ob8fa01c]

***コンソールアプリ [#o06efbc2]
-問題なく実行できた。
-ただし、同様に、結果はデバッグ出力に出力される。


***Webアプリ [#uc418f63]
-問題なく実行できた。
-ただし、ポートの指定をどうやっているかが不明だった。

**ココまでで解った事。 [#pe55b9a2]
-問題なく実行できた。
-これで1環境で双方の手順作成を確認可能。

*サンプル [#e04f0515]

**github.com [#nf8398ed]

***WebApplication1 [#k18f6b89]
https://github.com/daisukenishino2/EvaluateAspNetCoreOnK8s/tree/master/WebApplication1

***WebApplication2 [#k803576c]
https://github.com/daisukenishino2/EvaluateAspNetCoreOnK8s/tree/master/WebApplication2

***MVC_Sample [#ncd2818e]
https://github.com/daisukenishino2/EvaluateAspNetCoreOnK8s/tree/master/MVC_Sample

**[[git clone後にDocker Composeで動かす方法。>Visual Studio Tools for Docker#e09b7e2d]] [#rce35c03]

*参考 [#h1f0a60f]

-Visual StudioがKubernetes対応。~
DockerfileとHelmチャートを自動生成し、Kubernetes環境へデプロイ可能に - Publickey~
DockerfileとHelmチャートを自動生成し、~
Kubernetes環境へデプロイ可能に - Publickey~
https://www.publickey1.jp/blog/18/visual_studiokubernetesdockerfilehelmkubernetes.html

-Kubernetes tools tutorial - Visual Studio | Microsoft Docs~
https://docs.microsoft.com/en-us/visualstudio/deployment/tutorial-kubernetes-tools
**Qiita [#k3f64696]

**[[Kubernetes>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Kubernetes]] [#f96bb479]
***[[ASK を使いこなす>Azure Kubernetes Service (AKS)#g22fa8b4]] [#z4762996]

**[[Visual Studio Tools for Docker]] [#u6eb1bc4]
***Kubernetes on [[Docker for Windows]] [#rb9ca770]
-Docker for WindowsでKubernetesを試してみる~
https://qiita.com/h-r-k-matsumoto/items/68f694650029ddf7351d
--h-r-k-matsumoto/spring-boot-sample: spring boot + jib + kubernetes作成サンプル~
https://github.com/h-r-k-matsumoto/spring-boot-sample

**[[Azure Kubernetes Service (AKS)]] [#q863e90f]
-[Docker for Windows]Kubernetesを動かしてみる~
https://qiita.com/icck/items/91eac9da094666e47c62

**Microsoft Docs [#pc82ab14]

***Kubernetes [#d2588c77]
-Kubernetes ツールのチュートリアル - Visual Studio~
https://docs.microsoft.com/ja-jp/visualstudio/containers/tutorial-kubernetes-tools

***[[Azure Dev Spaces>Azure Dev Spaces#d67caafd]] [#df3713b0]

**OSSコンソーシアム [#w809fb59]

***Blog [#n95d96ef]
-Docker for Windows上で Docker Composeでテストし、Open PaaSにデプロイできる。~
--その1~
https://www.osscons.jp/joweexgq6-537/
--その2~
https://www.osscons.jp/jo6610sfd-537/

***Wiki [#x4a72daa]
-マイクロソフト系技術情報 Wiki(当該Wiki)
--[[Visual Studio Tools for Docker]]
--[[Azure Kubernetes Service (AKS)]]

-開発基盤部会 Wiki
--[[Kubernetes>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Kubernetes]] (K8s)
---[[Helm Charts>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Helm%20Charts]]
---[[Compose on Kubernetes>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Compose%20on%20Kubernetes]]
---[[Kompose>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Kompose]]

----
Tags: [[:.NET開発]], [[:.NET Core]], [[:Hyper-V]], [[:仮想化]]
Tags: [[:コンテナ]], [[:.NET開発]], [[:.NET Core]], [[:Hyper-V]], [[:仮想化]], [[:IaC]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS