Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
App Runnerで始める、AWSでの C#生活
Search
Ken'ichirou Kimura
October 26, 2023
0
190
App Runnerで始める、AWSでの C#生活
2023/10/26に開催された、ふくてんでのLT資料です
Ken'ichirou Kimura
October 26, 2023
Tweet
Share
More Decks by Ken'ichirou Kimura
See All by Ken'ichirou Kimura
Alternative GitHub Secret Manager
kenichirokimura
0
61
SORACOMで実現するIoTのマルチクラウド対応 - IoTでのクリーンアーキテクチャの実現 -
kenichirokimura
0
480
How to use Amazon Cognito user pools with custom UI and also OIDC
kenichirokimura
0
170
あなたも今日からIoTと握手! SORACOM/SORACOM UGの紹介
kenichirokimura
1
110
推し活の1つとしての株購入~みんなでソラコムの株主になろう~
kenichirokimura
0
190
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
1.1k
SORACOM UGとは? - 2023/11/04 JAWS-UG 佐賀 x SORACOM UG 九州 バルーンフェスタSP版
kenichirokimura
0
120
IoT x 「何か」で生まれる可能性は無限大! SORACOM/SORACOM UGの紹介
kenichirokimura
0
84
SORACOMのスイッチユーザー機能を使ってみよう
kenichirokimura
0
190
Featured
See All Featured
Scaling GitHub
holman
458
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
A Tale of Four Properties
chriscoyier
156
23k
The Invisible Side of Design
smashingmag
297
50k
What's in a price? How to price your products and services
michaelherold
243
12k
Practical Orchestrator
shlominoach
186
10k
A Modern Web Designer's Workflow
chriscoyier
692
190k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Embracing the Ebb and Flow
colly
84
4.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
Transcript
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. App Runnerで始める、AWSでの
C#生活 木村健一郎 2023年10月26日 Fukuoka.NET #25
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 名前:木村健一郎 所属:株式会社オルターブース
SORACOM UG九州 JAWS-UG福岡 娘ちゃんのパパ(6歳3ヶ月) お仕事:IoT番⾧ 受賞歴:AWS Samurai 2019 SORACOM MVC 2021,2023 好きなAzureサービス :WebApp、Functions、IoT Hub
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. C#のプログラムをクラウドで動かす •
ここではいわゆるWebアプリケーションやREST APIを想定 • まぁだいたいはAzureですよね • 最新SDKのサポートが手厚い • WebApps/Functionsなどネイティブに対応しているサービスが豊富 • ドキュメントも豊富 • とはいえ、AWSで動かしたい・・という方もいらっしゃるので は?
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. C#のプログラムをAWSで動かす •
Elastic Conputing Cloud(EC2) • いわゆるIaaS。Azureで言えばVM • Elastic Containe Service(ECS) • コンテナ実行基盤。AzureでいえばContainer Apps • Elastic Kubernates Service(EKS) • Kubernates実行基盤。AzureでいえばAKS まぁIaaSやコンテナならどこでも動きますよね
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. C#のプログラムをAWSで動かす •
Elastic Beanstalk • 対応した言語スタックのアプリをデプロイするだけでEC2ベースのスケーラブルなアプリケー ション実行環境を構築できる • Azureで言えばApp Service(ASEが近いかも) • Lambda • いわゆるFaaS • AzureでいえばFunctions • マネージドランタイムの.NETはLTSのみ。コンテナで.NET7も対応 • App Runner • 対応した言語スタックのソースまたはコンテナで、簡単にコンテナベースのスケーラブルな Webアプリケーション実行環境を構築できる • AzureでいえばWebApp for Containers • マネージドランタイム(コンテナを準備しなくてよいもの)に.NETがある • Lambdaと同じくマネージドランタイムはLTSのみ 今回はApp Runnerのマネージドランタイムを試してみました
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. デプロイするプログラムを作成 •
Webアプリケーションのテンプレートそのまま • SDKのバージョンをdotnet6に • GitHubにpushしておく % dotnet new globaljson --sdk-version 6.0.415 % dotnet new webapp % git init % git add . % git commit -m "initial commit" % git remote add origin
[email protected]
:kenichiro-kimura/AppRunnerTest-dotnet6.git % git branch -M master % git push -u origin master
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. App Runnerにデプロイする
Webコンソールから新しいサービスを作成
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. リポジトリのタイプは「ソースコードリ ポジトリ」を選びます。
プロバイダーでGitHubを選び、接続の設 定をします。
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. App Runnerの設定をリポジトリ内のYAML
ファイルから読むこともできますが、「こ こですべての設定を構成する」にします。 ランタイムで.NET6を選び、構成コマンド と開始コマンドを入れます。 構成コマンドはdotnet publish、開始コマ ンドはコンテナで実行されるコマンドを指 定します。 ここではpublishの成果物のdllを実行しま す。 (この辺自動で埋まってくれると嬉しいん ですが・・)
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. サービスの設定ではサービス名だけ入れて、 他はデフォルトのままで進みます。
確認画面を経て、いよいよデプロイ!
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. ・・・デプロイ失敗してますね。 App
Runnerのマネージドランタイムのコンテナに入ってるSDKのバージョンが global.jsonで指定しているものと違うようです。 とりあえずglobal.jsonを削除してリトライ。
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. ・・・デプロイ失敗してますね。 ビルドは成功したけど、デプロイ後のヘルスチェックに失敗しているようです。
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. dotnetコマンドで起動すると、規定では localhostだけにバインドされます。つまり、
コンテナの外からアクセスできません。 そこで、リバースプロキシを適切に構成し ないといけません。 App Runnerの「サービス設定」で、 ASPNETCORE_URLSという環境変数を設 定します。 (コンテナに埋め込んどいて欲しい・・)
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. ついでにヘルスチェックもTCPからHTTP にしておきましょう
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. 今度こそ無事起動しました!
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved. まとめ ・AWSでもC#のプログラムを動かす方法は沢山あります
・Webアプリケーションなら、今はApp Runnerがお勧めです ・App RunnerはLTSの.NETがマネージドランタイムに入っているので、 ソースコードから直接デプロイできます ・ASPNETCORE_URLSという環境変数を設定するのを忘れない ・SDKのバージョンに注意 ・.NET8もきっとすぐに使えるようになると思いますので皆さんお楽しみに!
Copyright © 2015-2023 ALTERBOOTH inc. All Rights Reserved.