Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
AWS初学者が始める コンテナを利用したサーバ構築 (ECS/Fargate) 2021/03/12 株式会社ウエディングパーク 斉藤 健太
Slide 2
Slide 2 text
斉藤 健太 株式会社ウエディングパーク エンジニアリングマネージャー(backend→QA→SRE) 2010年に新卒入社したSier(受託)会社で某大手企業の業務システ ム開発に関わり、開発やプロジェクトマネジメントを経験。 2017年8月にウエディングパークへ入社し、 エンジニアリングマネージャーをベースに、サービス開発周辺のマ ネジメントに従事。昨年の10月からはSREへ職種チェンジ。 31歳で3児の父。 @saik1010 自己紹介
Slide 3
Slide 3 text
運営サービス
Slide 4
Slide 4 text
運営サービス
Slide 5
Slide 5 text
Agenda 1. 本日の趣旨 2. ECS/Fargateでサーバを動かすための最小STEP 3. まとめ
Slide 6
Slide 6 text
Agenda 1. 本日の趣旨 2. ECS/Fargateでサーバを動かすための最小STEP 3. まとめ
Slide 7
Slide 7 text
SECTION 01 本日の趣旨 AWS初学者向けのお話です ● AWSは知ってるけど、EC2ぐらいしか理解してない →もともとバックエンドエンジニアのため、実行環境としてAWSを利用していた程度 ● Dockerも基本的なコマンドは扱えるが構築しろと言われると微妙 →docker composeが入ってくると混乱したり、Dockerfile作るのも怪しいレベル
Slide 8
Slide 8 text
SECTION 01 本日の趣旨 その状態でECS触ろうとしてワケワカランってなった・・ cluster?service?Task? コンテナの話はどこいった・・?笑 出典 :https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/Welcome.html
Slide 9
Slide 9 text
SECTION 01 本日の趣旨 AWS Black Beltの動画をみて、なんかいけそうな気がした! でも結局、ECSを使ってコンテナを動かす ために「何から始めれば良いのか」が わからなかった・・・ 出典:https://www.youtube.com/watch?v=tmMLLjQrrRA
Slide 10
Slide 10 text
SECTION 01 本日の趣旨 AWS Black Beltの動画をみて、なんかいけそうな気がした! でも結局、ECSを使ってコンテナを動かす ために「何から始めれば良いのか」が わからなかった・・・ 出典:https://www.youtube.com/watch?v=tmMLLjQrrRA そこで理解した今だから話せる ECSでコンテナを動かすための 最小STEPを話そう!
Slide 11
Slide 11 text
Agenda 1. 本日の趣旨 2. ECS/Fargateでサーバを動かすための最小STEP 3. まとめ
Slide 12
Slide 12 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP まず結論から言うと、この5STEPでいける! 【ローカル】 Dockerfileを作成 【AWS ECS】 クラスタを作成 【AWS ECR】 imageをpush 【AWS ECS】 タスク定義を作成 【AWS ECS】 タスクを実行
Slide 13
Slide 13 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP まず結論から言うと、この5STEPでいける! 【ローカル】 Dockerfileを作成 【AWS ECS】 クラスタを作成 【AWS ECR】 imageをpush 【AWS ECS】 タスク定義を作成 【AWS ECS】 タスクを実行
Slide 14
Slide 14 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP 【ローカル】Dockerfileを作成 ローカルで動作するDockerfileを作成し、ビルドしてイメージが作成できればOK! Docker公式にハンズオンがあるので、これで使うとすぐできる。 とにかくポイントは、「ローカルで動くDockerイメージ」を作成すること 【ローカル】 Dockerfileを作成
Slide 15
Slide 15 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP # サンプルAPをcloneしてくる $ git clone https://github.com/dockersamples/node-bulletin-board $ cd node-bulletin-board/bulletin-board-app # Dockerfileをもとに、Dockerイメージをビルド $ docker build --tag bulletinboard:latest . ※ハンズオンでは「bulletinboard:1.0」となっていますが、 後続の作業をシンプルにするため 「bulletinboard:latest」としています # 試しにローカルでコンテナを起動してみる docker run --publish 8000:8080 --detach --name bb bulletinboard:latest イメージ作成 【ローカル】 Dockerfileを作成
Slide 16
Slide 16 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP http://localhost:8000/にアクセスできればOK! 【ローカル】 Dockerfileを作成
Slide 17
Slide 17 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP まず結論から言うと、この5STEPでいける! 【ローカル】 Dockerfileを作成 【AWS ECS】 クラスタを作成 【AWS ECR】 imageをpush 【AWS ECS】 タスク定義を作成 【AWS ECS】 タスクを実行
Slide 18
Slide 18 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP 【AWS ECR】imageをpush STEP1で作成した「ローカルで動くDockerイメージ」をECRというイメージを管理する サービスにpushします。Gitリポジトリにソースをpushするのと同じです! 【AWS ECR】 imageをpush
Slide 19
Slide 19 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP まずはリポジトリを作る 【AWS ECR】 imageをpush
Slide 20
Slide 20 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP 「プッシュコマンドの実行」を選択 【AWS ECR】 imageをpush
Slide 21
Slide 21 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP プッシュコマンドに従い、 ローカルで作成したイメージをECRにあげる 2は事前にやってるので不要 1,3,4をそのまま貼り付けで実行すれ ばECRにPushできる ※事前に「aws configure」でIAMユーザの認証設 定が必要です 【AWS ECR】 imageをpush
Slide 22
Slide 22 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP プッシュがうまくいくとリポジトリ内にlatestができる 後ほどタスク定義作成時に必要となるので、 URIのコピーをしておく 【AWS ECR】 imageをpush
Slide 23
Slide 23 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP まず結論から言うと、この5STEPでいける! 【ローカル】 Dockerfileを作成 【AWS ECS】 クラスタを作成 【AWS ECR】 imageをpush 【AWS ECS】 タスク定義を作成 【AWS ECS】 タスクを実行
Slide 24
Slide 24 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP 【AWS ECS】クラスタを作成 コンテナとして動作するイメージがpushできたので、ここからはECSでコンテナを動かす準備 です。まずはECSのクラスタを作成します。 クラスタは、「コンテナを配置するための箱」みたいなものなので、動かすコンテナ郡をグ ルーピングするようなもの程度の理解で大丈夫です! 【AWS ECS】 クラスタを作成
Slide 25
Slide 25 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP 「クラスターの作成」を選択 【AWS ECS】 クラスタを作成
Slide 26
Slide 26 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP Fargateで動かすのでネットワーキングのみを選択 【AWS ECS】 クラスタを作成
Slide 27
Slide 27 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP クラスター名を入れて作成 【AWS ECS】 クラスタを作成
Slide 28
Slide 28 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP まず結論から言うと、この5STEPでいける! 【ローカル】 Dockerfileを作成 【AWS ECS】 クラスタを作成 【AWS ECR】 imageをpush 【AWS ECS】 タスク定義を作成 【AWS ECS】 タスクを実行
Slide 29
Slide 29 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP 【AWS ECS】タスク定義を作成 タスク定義を作っていきます。起動するDockerイメージの指定や空けるポート番号などを定義 します。いわゆるdocker-compose.ymlのような位置づけでコンテナを起動するための設計書 に値します。 【AWS ECS】 タスク定義を作成
Slide 30
Slide 30 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP 「新しいタスク定義の作成」を選択 【AWS ECS】 タスク定義を作成
Slide 31
Slide 31 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP Fargateを選択 【AWS ECS】 タスク定義を作成
Slide 32
Slide 32 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP タスク名/ロールなどを設定 【AWS ECS】 タスク定義を作成
Slide 33
Slide 33 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP コンテナを設定する pushしたECRのイメージを指定 ポートを開ける 【AWS ECS】 タスク定義を作成
Slide 34
Slide 34 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP まず結論から言うと、この5STEPでいける! 【ローカル】 Dockerfileを作成 【AWS ECS】 クラスタを作成 【AWS ECR】 imageをpush 【AWS ECS】 タスク定義を作成 【AWS ECS】 タスクを実行
Slide 35
Slide 35 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP 【AWS ECS】タスクを実行 作成したタスク定義を元に、タスクを実行します。 つまりこれがコンテナの起動となるので、「docker run」や「docker-compose run」に 相当するもの。 これがうまく成功すれば、ECS上でコンテナが起動します! 【AWS ECS】 タスクを実行
Slide 36
Slide 36 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP クラスター内でタスクを実行 【AWS ECS】 タスクを実行
Slide 37
Slide 37 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP 先ほど作成したタスク定義を指定してタスク実行 先ほど作成したタスク定義を指定 VPC/セキュリティグループでdefaultでOK ※セキュリティグループでは開放した8080ポートからの トラフィックを通すように許可すること 【AWS ECS】 タスクを実行
Slide 38
Slide 38 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP タスク(=コンテナ)が起動するかチェック RUNNINGになればコンテナ起動OK 【AWS ECS】 タスクを実行
Slide 39
Slide 39 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP http://[タスクのパブリック IP]:8080/にアクセスできればOK 【AWS ECS】 タスクを実行
Slide 40
Slide 40 text
SECTION 02 ECS/Fargateでサーバを動かすための最小STEP ECS上でコンテナが起動できた!
Slide 41
Slide 41 text
Agenda 1. 本日の趣旨 2. ECS/Fargateでサーバを動かすための最小STEP 3. まとめ
Slide 42
Slide 42 text
SECTION 03 まとめ まとめ AWS初学者という立場から、できるだけシンプルに最小STEPで コンテナをECSで起動できるところまでご説明をさせて頂きました。 私自身は、正直これを理解するまでに1ヶ月ぐらい四苦八苦しましたので、 同じ悩みを抱えている方の参考になれば幸いです! バリバリやられている方からすると、非常に簡単すぎる内容ではあったかと思いますが、 AWSも日々どんどん新しいサービスが出てくるので、初学者向けのアウトプットも 是非して頂けると私自身も大変助かります。笑
Slide 43
Slide 43 text
ご清聴ありがとパ 公式キャラクター 「ウエパ」