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
260
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
Serverlessだからこそコードと設計にはこだわろう
kenichirokimura
5
1.5k
LINE Notify互換のボットを作った話
kenichirokimura
0
220
自分がご機嫌になれる 素敵な場所を守るために
kenichirokimura
2
110
AWSで動くプログラムをC#で書こう ~主にLambdaのお話~
kenichirokimura
1
120
Amazon Q Developerで.NET Frameworkプロジェクトをモダナイズしてみた
kenichirokimura
1
320
Alternative GitHub Secret Manager
kenichirokimura
0
94
SORACOMで実現するIoTのマルチクラウド対応 - IoTでのクリーンアーキテクチャの実現 -
kenichirokimura
0
630
How to use Amazon Cognito user pools with custom UI and also OIDC
kenichirokimura
0
490
あなたも今日からIoTと握手! SORACOM/SORACOM UGの紹介
kenichirokimura
1
150
Featured
See All Featured
A better future with KSS
kneath
239
17k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Side Projects
sachag
454
42k
Code Review Best Practice
trishagee
68
18k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
750
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
The World Runs on Bad Software
bkeepers
PRO
68
11k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
GraphQLとの向き合い方2022年版
quramy
46
14k
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 git@github.com: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.