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
第1回 AWSとGitHub勉強会 - キックオフ -
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
荻原利雄
September 18, 2023
Programming
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第1回 AWSとGitHub勉強会 - キックオフ -
荻原利雄
September 18, 2023
More Decks by 荻原利雄
See All by 荻原利雄
先取りMaven4 ~16年ぶりのメジャーアップデート、その進化とは?~
ogiwarat
0
210
実践ArchUnit ~実例による検証パターンの紹介~
ogiwarat
2
1.4k
Spring Frameworkの新標準!? ~ RestClientとHTTPインターフェース入門 ~
ogiwarat
4
2.9k
Spring Boot vs MicroProfile ~クラウドネイティブにおけるフレームワークの比較と選択~
ogiwarat
2
2.6k
第2回 AWSとGitHub勉強会 - CodespacesとHelidonの利用 -
ogiwarat
0
1.2k
第3回 AWSとGitHub勉強会 - GitHub Actionsを使ったCI環境の構築 -
ogiwarat
0
1.2k
第4回 AWSとGitHub勉強会 - GitHub Actionsを使ったCD環境の構築 -
ogiwarat
0
1.2k
第5回 AWSとGitHub勉強会 - AWS EC2環境の構築 -
ogiwarat
0
1.1k
第6回 AWSとGitHub勉強会 - AWS ECS Fargate環境の構築 -
ogiwarat
0
1.3k
Other Decks in Programming
See All in Programming
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
480
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
200
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.4k
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
110
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.4k
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
260
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
140
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
100
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
270
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
140
Featured
See All Featured
Faster Mobile Websites
deanohume
310
32k
Between Models and Reality
mayunak
4
370
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
The Cult of Friendly URLs
andyhume
79
6.9k
Scaling GitHub
holman
464
140k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
650
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Designing Experiences People Love
moore
143
24k
Documentation Writing (for coders)
carmenintech
77
5.4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Transcript
AWSとGitHubを使ってみよう勉強会 ~ 第1回 KickOff ~ 株式会社 豆蔵 ビジネスソリューション事業部 updated:2023/9/18
AWSとGitHubを使ってみよう勉強の概要 • 目的 • クラウドやAWSとか良く話にでてくるけど、それってオンプレと何が違うのか?どんな感じ で使うのか?そして何がそんなに嬉しいのかを体感する • 目標 • AWSやGitHubがこれでバッチリ!というところは目指さず、AWSやGitHubとかいっ
てもそんなに難しくないのね!結構便利ね!機会があったら今度は自分でなにか試 してみようかな!とクラウドやAWSへの心理的ハードルが下がるところ辺りを目指す 2
今回の勉強会の特徴 • 一方的に説明する講義スタイルではなく自習を中心とした反転学習形式 • 次回までに各自が実施してくるお題やポイントをまず解説 • 持ち帰り各自でお題を実施。分からないことはネットで自分で調べる。それでもわからない場合は質問す るか次回の勉強会で聞いてみる • 課題を出した次回は課題の解説とと皆さんからの質疑やディスカッションを行う
• 勉強会は上記を繰り返し行う。なお、お題を実施できなくても参加は可。ただし解説は自分で手を動 かしていることを前提にするので、その点は理解の上で参加のこと • 勉強会の内容は極々簡単なRESTアプリを作成→コンテナ化→AWS EC2(オンプレ)へ →ECS Fargate(サーバーレス)へと同じアプリをステップアップしながら別の実行環境で 動かしていく • GitHubは開発の中で使ってみてGitやクラウド上のCI/CDがどのようなものかを実際に体験してみる 3
勉強会実施内容 • 1回目:キックオフ • キックオフと次回のお題の説明 • 次回までのお題:Helidonを使った簡単なRESTアプリ(Mavenでビルド&テストしてJavaコマンドで実行できるまで)&開発にGit とGitHub Codespacesを使ってみる •
2回目:GitHub CodespacesとHelidonの利用 • 前回の課題の解説:GitHub CodespacesとHelidonについて • 次回までのお題:コミットしたHelidonのサンプルアプリをGitHub Actionsでビルド~テスト~デプロイしてみる • 3回目:GitHub Actionsを使ったCI環境の構築 • 前回のお題の解説:GitHub ActionsとGitHub Packagesについて • 次回までのお題:GitHub Actionsでビルド~テストしたものをDockerビルドしてGitHubのコンテナレジストリにデプロイ • 4回目:GitHub Actionsを使ったCD環境の構築 • 前回のお題の解説:コンテナイメージのビルドとGitHub Packages Container Registryについて • 次回までのお題:AWS EC2にDockerをインストールした環境を構築し、GitHubにデプロイしたイメージを動作させる • 5回目:AWS EC2環境の構築 • 前回のお題の解説:AWSのユーザと権限&AWSのネットワークの概要 • 次回までのお題:ECS Fargateを使ってGitHubにデプロイしたイメージを動作させる • 最終回:AWS ECS Fargate環境の構築 • 前回のお題の解説:環境変数を使ったアプリの動作の変更とECS Fargateとは 4
勉強会参加に必要なもの • GitHubおよびAWSの個人アカウント(今回は個人アカウントを使っていただきます。持っ ていなければ作成してもらいます) • GitHubは個人利用のため、すべて無料で使えます • AWSのアカウント登録にはクレジットカードが必要です。使わない場合はサービスを停止することで月 1000円未満程度の利用を想定しています •
なお、AWSはアカウントが乗っ取られた場合や誤って高額なサービスを利用した場合、高額な料金が請 求される可能性がありますので、その点は注意ください。勉強会でそうならないための必要事項は説明し ます。それを守っていただければ心配することはないです • 開発環境にはブラウザで利用可能なGitHub Codespacesを利用します • 個人PCにインストールしていただくものはありません 5
6 次回までの課題の説明
次回までの課題 • テーマ • 次回以降に使うサンプルアプリの作成 • GitHubのCodespacesとgit repositoryに慣れる • お題
• Helidonを使った簡単なRESTアプリ(Mavenでビルド&テストしてJavaコマンドで 実行できるまで) • 作ったアプリを自分のGitHubアカウントのリポジトリにコミットする • ゴール • 予め準備されたテストケースがパスすること • GitHubにプロジェクトがコミットされていること 7
課題の実施手順 Step1. GitHubアカウントを作成する(持っていない場合) Step2. リポジトリの作成&ひな形プロジェクトのimport Step3. Codespacesを開始する Step4. コードを修正してテストをパスさせる Step5.
修正したコードをコミットする 8 画面キャプチャやコマンド操作等はGitHubのssi- mz-studygroupユーザで行った例となります。キャ プチャやコマンド等の該当部分は自分のユーザIDに 読み替えてください ・ssi:simple server infra ・mz:mamezou
Step1. GitHubアカウントを作成する(持っていない場合)1/4 • 個人のGitHubアカウントを作成する 9 https://github.comから開始 必要なアカウント 情報を入力 登録したアドレスにメールがくるの でそこに載っている認証コードを入
力する
Step1. GitHubアカウントを作成する(持っていない場合)2/4 単なるアンケート 単なるアンケート 絶対にこっち(Free)を選択
Step1. GitHubアカウントを作成する(持っていない場合)3/4 🙌ここまでくれば完了🙌
Step1. GitHubアカウントを作成する(持っていない場合)4/4 • 個人のFreeプランでパブリックリポジトリを使えば、Codespacesを除きなにをいくら 使ってもタダ • 見たとおりクレジットカード登録はないので気が付いたらたくさん課金されていた!という ことはないので安心 • 反対にAWSはクレジットカード登録があるので要注意
• よって、利用量はCodespacesを除き全く気にする必要はない • 気をつけるべきはセキュリティの1点のみ! • パブリックリポジトリを使うので、個人情報や機微情報は挙げないこと(例)電話番号やAWSのア クセスキーなど • 会社の資料やソースコードは絶対に挙げないこと 12
Step2. リポジトリの作成&ひな形プロジェクトのimport 1/3 • (本題とは関係ないが)ダークモードに変更する メニューボタンをポチっ 好みのを選択
Step2. リポジトリの作成&ひな形プロジェクトのimport 2/3 • welcomeページに移動(https://github.com/) ひな形プロジェクトのURLを入力 https://github.com/mamezou-tech/try-aws-github-learning リポジトリ名(任意)を入力 publicを選択 入力完了後
https://github.com/mamezou-tech/try-aws-github-learning この例ではssi-mz-studygroupユーザの my-sample-appリポジトリにひな形プロ ジェクトをインポートしています。
Step2. リポジトリの作成&ひな形プロジェクトのimport 3/3 • import完了 これと同じファイル/ディレクトリが importされていること 入力したプロジェクト名 Importing complete!になったら
ココから移動 mamezou-tech/try-aws-github-learning
Step3. Codespacesを開始する 1/3 • GitHub Codespacesとは 16 • 構成ファイルをもとにビルドされたコンテナイメージから生成されたコンテナインスタンスを個別の開発環境としてユーザに提供す る機能
• ユーザはブラウザもしくはローカルのVSCodeから生成されたコンテナインスタンスに接続して作業を行う • ユーザは目の前にあるブラウザやVSCodeを操作するが、リポジトリからチェックアウトしたファイルやJavaのビルドや実行などは すべてGitHub側のコンテナ内に存在し行われます 個人アカウントでも2コアCPU/4GBメモリ のリソースを月60時間まで無料で使うこ とができる
Step3. Codespacesを開始する 2/3 17 開始! 数分待つと
Step3. Codespacesを開始する 3/3 18 他にも色々案内がでてくるがすべ て何もせず閉じるOK 画面が立ち上がって諸々拡張機能が有効になる まで少し時間が掛かる JAVA PROJECTタブ⇒MAVENタブの順番でタ
ブがでてくるので2つ出るまでしばらく待つ→出たら 完了 ボタンをクリックしてJavaプ ロジェクトとして認識させる
Step4. コードを修正してテストをパスさせる 1/2 テストコードを見て修正
Step4. コードを修正してテストをパスさせる 2/2 これをクリックするとテストが実行される。 修正前は失敗するので、失敗した内容 を確認してテストがとおるように先ほどの コードを修正する。 修正がに必要なのは1か所だけ
Step5. 修正したコードをコミットする 1/1 21 コミット対象に追加する コメント入力 クリック クリック • リポジトリに反映されているか確認してみよう!
• コミットと変更の同期の違いを調べてみよう! (ヒント:リモートとローカル) • Git graphで変更を確認してみよう(インストール済 み) <学習テーマ>
これでゴールです🙌 • 誤って削除したりしても同じ手順でリポジトリは再作成できるので思い切っていろいろや りましょう • 人様のリポジトリを弄っても権限がないので、誤って削除はできません。なので思い切っ ていろいろ弄ってみましょう • GitHub/ Git
/ Codespaces(VSCode) はメジャーなツールなのでググればいろい ろ出てきます。 • 分からないこと、疑問に思ったことはグーグル先生に聞いて調べてみましょう • Codespacesを使い終わったら停止するようにしましょう。 GitHub CodespacesによるJavaのチーム開発環境の作り方 | 豆蔵デベロッパーサイト ⇒開発環境(コンテナ)のライフサイクル を参照 22
次回の予定 • 今回の課題の説明 • 補足説明と質疑応答 • 次回までの課題の説明 • テーマはGitHub Actionsを使ったCI/CD(ビルドからjarのPackageレジストリへのアップまで)
23