Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20240828_ビヨンド勉強会_42_EKS_on_FargateでWebサービスを...
Search
nezumisannn
August 28, 2024
Technology
0
92
20240828_ビヨンド勉強会_42_EKS_on_FargateでWebサービスを公開するために覚えておきたいこと.pdf
nezumisannn
August 28, 2024
Tweet
Share
More Decks by nezumisannn
See All by nezumisannn
20250930_Conohaウェビナー_生成AI_Terraform_ConoHa_VPSサーバー_セットアップ入門編
nezumisannn
1
19
20250723_Conohaウェビナー_高騰する海外クラウド費用を劇的カット_サーバーコスト最適化のポイント解説と成功事例のご紹介.pdf
nezumisannn
0
32
20241204_ビヨンド勉強会_44_AWS_Service_Catalogを利用したIaCのテンプレート化とTerraformによるデプロイ.pdf
nezumisannn
0
310
20240530_ビヨンド勉強会#41_ビヨンドのエンジニア新卒研修における取り組み
nezumisannn
0
120
20230511_AWSにおけるコンテナサービスの選択とIaC実装例.pdf
nezumisannn
0
1.3k
リーダーになって1年経過して_取り組んできたことと大事にしている考え方_の裏側_.pdf
nezumisannn
0
69
20211118_GKEにおける高負荷時のPodとWorker_Nodeの挙動について.pdf
nezumisannn
0
160
20211014_Alibaba_Cloud_Container_Service_for_KubernetesにおけるServerless_Kubernetesの概要とManaged_Kubernetesとの違い.pdf
nezumisannn
0
92
20211008_ApsaraDB_for_PolarDBとAWS_Auroraの機能比較.pdf
nezumisannn
1
150
Other Decks in Technology
See All in Technology
著者と読み解くAIエージェント現場導入の勘所 Lancers TechBook#2
smiyawaki0820
12
5.8k
生成AIでテスト設計はどこまでできる? 「テスト粒度」を操るテーラリング術
shota_kusaba
0
440
ガバメントクラウド利用システムのライフサイクルについて
techniczna
0
180
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
270
LLM-Readyなデータ基盤を高速に構築するためのアジャイルデータモデリングの実例
kashira
0
210
Playwright x GitHub Actionsで実現する「レビューしやすい」E2Eテストレポート
kinosuke01
0
320
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
6
280
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
710
AWS Trainium3 をちょっと身近に感じたい
bigmuramura
1
120
ML PM Talk #1 - ML PMの分類に関する考察
lycorptech_jp
PRO
1
700
AI 駆動開発勉強会 フロントエンド支部 #1 w/あずもば
1ftseabass
PRO
0
120
【CEDEC+KYUSHU2025】学生・若手必見!テクニカルアーティスト 大全 ~仕事・スキル・キャリアパス、TAの「わからない」を徹底解剖~
cygames
PRO
0
140
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
95
14k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
710
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Site-Speed That Sticks
csswizardry
13
990
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Six Lessons from altMBA
skipperchong
29
4.1k
Become a Pro
speakerdeck
PRO
31
5.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
KATA
mclloyd
PRO
32
15k
Producing Creativity
orderedlist
PRO
348
40k
The Invisible Side of Design
smashingmag
302
51k
Transcript
EKS on FargateでWebサービスを 公開するために覚えておきたいこと ビヨンド勉強会 #42 【大阪】DockerとEKSで始めるAWSコンテナ入門 2024/08/28 株式会社ビヨンド 寺岡
佑樹
自己紹介 resource “my_profile” “nezumisannn” { name = “Yuki.Teraoka” nickname =
“ねずみさん家。” company = “beyond Co., Ltd.” job = “Infra Engineer + HR” X = “@yktr_sre” favorite = [“Terraform”,”Packer”,”ぶいすぽっ!”] }
今日のゴール AWS EKSを使ってWebサイトを公開できる
今日覚えておきたいこと • EKSとは • Kubernetesとは • コンテナイメージ用意 ◦ Dockerイメージのビルド →
ECRへアップロード • EKSクラスター作成 • kubectlからクラスターへ接続 • サイト公開設定 ◦ Deployment ◦ Service ◦ Ingress
EKSとは
EKSとは • Amazon Elastic Kubernetes Service • Kubernetes の環境をセットアップ・実行するためのマネージドサービス •
EKSを利用することで、 AWS上で容易に Kubernetesの環境を構築することが 可能
Kubernetesとは
Kubernetesとは • アプリケーションのコンテナ群を統合管理するためのソフトウェア • GoogleがBorgと呼ばれる内製ツールを OSSとして公開したのが始まり • Cloud Native Computing
Foundation(CNCF)と呼ばれる団体の Graduated Projects(最も成熟した段階 )の中の1つ
Kubernetesのアーキテクチャ 引用:https://kubernetes.io/ja/docs/concepts/architecture/ CLUSTER:コンソール or API でユーザーが作成 CONTROL PLANE:AWS側が 管理 Node:EC2
or Fargateが選択 可能(今回はFargate)
EKSの導入と設定 コンテナイメージの用意
コンテナイメージ用意 • コンテナイメージをビルドし ECRにアップロードする ◦ ECRの認証情報取得 → イメージビルド → タグ付け
→ アップロード ◦ aws ecr get-login-password → docker build → docker tag → docker push
コンテナイメージ用意
コンテナイメージ用意
コンテナイメージ用意
EKSの導入と設定 クラスター作成
EKSクラスター作成 • マネジメントコンソールからも作成可能だが eksctlを利用するのが早い • EKS上でクラスターの作成及び管理するために利用する CLIツール • CloudFormationのラッパーツール •
コマンドラインから EKSの稼働に必要なリソースや設定を自動作成できる • インストール手順は https://eksctl.io/installation/ を参照
EKSクラスター作成 CloudFormationのスタックが作成される クラスター以外にもVPC等必要なものを同時に 作成してくれる
EKSクラスター作成 • EKS ◦ クラスター • VPC ◦ VPC ◦
サブネット ◦ ルートテーブル + ルート ◦ インターネットゲートウェイ ◦ NATGateway ◦ セキュリティグループ + インバウンドルール ◦ ElasticIP • IAM ◦ ロール • その他 ◦ Fargateプロファイル (EKSでFargateを利用するための設定情報 )
EKSの導入と設定 kubectlからクラスターへ接続
EKSクラスター作成 • eksctl実行時にローカルの設定ファイル (~/.kube/config)も作られてる
EKSの導入と設定 サイト公開設定
Deploymentの作成 • Podのローリングアップデートやロールバックといった管理の仕組み Deployment ReplicaSet Pod1 Pod2 ReplicaSetを制御 Podの数を制御 複数のコンテナをまとめたもの
Deploymentの作成 $ kubectl apply -f deployment.yml
Deploymentの作成
Serviceの作成 • Podへの接続エンドポイントを提供 • Podは起動しただけではアクセスできない • Serviceを利用すると Podへトラフィックをルーティングできる
Serviceの作成 $ kubectl apply -f service.yml • spec.ports.port:Serviceが接続を待ち受けるポート • spec.ports.targetPort:ターゲットのポート
(Deployment経由で作 成されたPodがListenしているポートを指定 ) • selector:ServiceがどのPodに対応しているかを示す (app: k8s-testというラベルを持った Podにアクセスを転送する )
Serviceの作成
Ingressの作成 • クラスター内の Serviceに対する外部からのアクセス (主にHTTP/S)を管理する • 負荷分散、 SSL終端、名前ベースの仮想ホスティングの機能を提供する • EKSからELBを操作できるようにしたいため、
AWS Load Balancer Controller を クラスターにインストールしていく
Ingressの作成 • AWS Load Balancer Controller は公式の手順に従って helmを使ってインス トールするのが早い ◦
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/lbc-helm.html • helmのインストールは以下を参照 ◦ https://helm.sh/ja/docs/intro/install/
Ingressの作成 IAMポリシーのテンプレートをダウンロード IAMポリシーを作成
Ingressの作成 IAMのIDプロバイダー(OIDCプロバイダー)を作成する = AWSのIAMロールとKubernetesのサービスアカウントの橋渡しをしてくれる IAMのサービスアカウントの作成 –attach-policy-arnに作成したIAMポリシーのARNを指定
Ingressの作成
Ingressの作成
Ingressの作成 ALBの設定値をannotationで指定できる 事前に作成していたServiceの名前と公開ポートを指定 $ kubectl apply -f ingress.yml
Ingressの作成
Ingressの作成
Ingressの作成
皆さんもEKSを使ってみてください
終わり
ねずみさん家。のインフラエンジニア道場 チャンネルはこちらから → × 毎週 水・金・土 に更新しています! サーバーって何?から インフラエンジニアの日常まで。 誰よりも分かりやすく・面白くをモットーに活動して
います!