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
20240828_ビヨンド勉強会_42_EKS_on_FargateでWebサービスを...
Search
nezumisannn
August 28, 2024
Technology
0
100
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
29
20250723_Conohaウェビナー_高騰する海外クラウド費用を劇的カット_サーバーコスト最適化のポイント解説と成功事例のご紹介.pdf
nezumisannn
0
43
20241204_ビヨンド勉強会_44_AWS_Service_Catalogを利用したIaCのテンプレート化とTerraformによるデプロイ.pdf
nezumisannn
0
350
20240530_ビヨンド勉強会#41_ビヨンドのエンジニア新卒研修における取り組み
nezumisannn
0
130
20230511_AWSにおけるコンテナサービスの選択とIaC実装例.pdf
nezumisannn
0
1.4k
リーダーになって1年経過して_取り組んできたことと大事にしている考え方_の裏側_.pdf
nezumisannn
0
88
20211118_GKEにおける高負荷時のPodとWorker_Nodeの挙動について.pdf
nezumisannn
0
180
20211014_Alibaba_Cloud_Container_Service_for_KubernetesにおけるServerless_Kubernetesの概要とManaged_Kubernetesとの違い.pdf
nezumisannn
0
100
20211008_ApsaraDB_for_PolarDBとAWS_Auroraの機能比較.pdf
nezumisannn
1
150
Other Decks in Technology
See All in Technology
越境する組織づくり ─ 多様性を前提にしたチームビルディングとリードの実践知
kido_engineer
2
140
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
840
DX Improvement at Scale
ntk1000
3
390
タスク管理も1on1も、もう「管理」じゃない ― KiroとBedrock AgentCoreで変わった"判断の仕事"
yusukeshimizu
5
2k
クラウド × シリコンの Mashup - AWS チップ開発で広がる AI 基盤の選択肢
htokoyo
2
100
Evolution of Claude Code & How to use features
oikon48
1
530
メタデータ同期に潜んでいた問題 〜 Cache Stampede 時の Cycle Wait を⾒つけた話
lycorptech_jp
PRO
0
150
IBM Bobを使って、PostgreSQLのToDoアプリをDb2へ変換してみよう/202603_Dojo_Bob
mayumihirano
1
270
LINE Messengerの次世代ストレージ選定
lycorptech_jp
PRO
19
7.6k
「Blue Team Labs Online」入門 - みんなで挑むログ解析バトル
v_avenger
0
120
AWS SES VDMで 将来の配信事故を防げた話
moyashi
0
190
Claude Codeが爆速進化してプラグイン追従がつらいので半自動化した話 ver.2
rfdnxbro
0
440
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The untapped power of vector embeddings
frankvandijk
2
1.6k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
How STYLIGHT went responsive
nonsquared
100
6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
210
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
100
Building Flexible Design Systems
yeseniaperezcruz
330
40k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
370
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を使ってみてください
終わり
ねずみさん家。のインフラエンジニア道場 チャンネルはこちらから → × 毎週 水・金・土 に更新しています! サーバーって何?から インフラエンジニアの日常まで。 誰よりも分かりやすく・面白くをモットーに活動して
います!