Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ECS Execを使ってFargateにログインしてみた
Ryohei Hisamitsu
November 20, 2021
Technology
0
120
ECS Execを使ってFargateにログインしてみた
Ryohei Hisamitsu
November 20, 2021
Tweet
Share
More Decks by Ryohei Hisamitsu
See All by Ryohei Hisamitsu
GoのアプリをEKS(Fargate)にデプロイしてみた話
hisami
0
37
Greengrassを使ったIoTのアーキテクチャ
hisami
0
40
TypeScriptでDIしてみた
hisami
0
320
Other Decks in Technology
See All in Technology
データ分析のためのAWS Well-Architected -Data Analytics Lens-
maru1981
0
230
LINSTOR — это как Kubernetes, но для блочных устройств
flant
0
3k
Azure DevOps Online Vol.6 - 業務で必要なCIをみんなで考えよう
kkamegawa
0
260
テスト自動化を最速で軌道に乗せるために
nozomiito
0
140
Microsoft Data Analytics trends : ”Lakehouse” , ”Data Mesh"
ryomaru0825
2
130
EC/CRMの自社サービス開発をマネジメントするようになって1年でやってきたこととこれから / devio2022-takano-sho-road-to-good-development-team-management
masaru_b_cl
0
430
AWS CLI でやってみる ~ AWS Hands-on for Beginners ECS ハンズオン ~
kentosuzuki
1
490
サイバー攻撃を想定したクラウドネイティブセキュリティガイドラインとCNAPP及びSecurity Observabilityの未来
syoshie
1
1.4k
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
oracle4engineer
PRO
0
180
Dangerous attack paths: Modern Development Environment Security - Devices and CI/CD pipelines
rung
PRO
0
110
DeFiChain Tech Talk - DFI Uniswap Staking, DeFi Options & DeFi Meta Chain
uzyn
0
110
第22回 MLOps 勉強会:みてねのMLOps事情
tonouchi510
1
950
Featured
See All Featured
BBQ
matthewcrist
74
7.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
39
13k
Facilitating Awesome Meetings
lara
29
4.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
The Straight Up "How To Draw Better" Workshop
denniskardys
225
130k
How to train your dragon (web standard)
notwaldorf
60
3.9k
Docker and Python
trallard
27
1.6k
The Power of CSS Pseudo Elements
geoffreycrofte
47
4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
655
120k
A better future with KSS
kneath
226
16k
Intergalactic Javascript Robots from Outer Space
tanoku
260
25k
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.2k
Transcript
ECS Execを使ってFargateにログインしてみた 久光遼平 AWS LT会 2021.11.17
自己紹介:久光 遼平(ひさみつ りょうへい) l 自動車業界約6年、IT業界約3年半のエンジニア l 大学:Java l 自動車会社:Matlab、C++ l
前職:PHP l 現職:TypeScriptでのバックエンド開発、AWSでのインフラ構築 l マラソン、サッカーが趣味 2
今日のお話 l FargateにログインできるECS Execが今年の3月にリリースされたので使っ てみたら、すごく簡単に設定できた l 心おきなくFargateを選択して、インフラ管理の手間を省きましょう 3
そもそも、なんでコンテナ使うんだっけ? l 不変の実行環境 l Aさんは動くけどBさんは動かないといったことが起きない l 本番でもそのまま動かせる l 充実したエコシステム l
Dockerfileはレイヤを追加していく書き方 l 自分で1から書かなくて良い l 各種クラウドベンダが持つマネージドサービス l 本番環境を簡単に作れる l サーバ管理の手間を省く選択肢が存在する → AWSのFargate 4
AWSにおけるコンテナ実行基盤(EC2 vs Fargate) l Fargateのメリット l インフラレイヤーの管理が不要 l 脆弱性対応のためのパッチ当て、OSアップグレード l
異常発生時のEC2インスタンスの再起動や入れ替え l Fargateのデメリット l 単価が少し高い l Windowsコンテナが使えない →10/28からサポートされるようになった l SSHによるローカルアクセスができない 5
SSHできなくて困ること l トラブルシューティング l コンテナではログを標準出力に出してCloudWatchで収集するのが定石だけど、、 l 実際にトラブルがおきて、この情報も見たかった!ってことありますよね 6
そこで、ECS Exec l Dockerでコンテナに入る時に使うdocker exec的なもの l ECS on EC2、Fargate両方に対応 l
Systems Managerのセッションマネージャーを使用 l 通信ポートを解放せずにアクセスできるのでセキュア、踏み台サーバ不要 l Linuxコンテナのみサポート、Management Consoleでの設定は現時点不可 7
実際の手順 l 前提 l AWS CLIのバージョン:v1.19.28以降 or v2.1.31以降 l セッションマネージャープラグインのインストールが必要
l CloudFormationで構築されたFargateのインフラが既に存在している (CLIを使用する場合も、同じくらい簡単に変更できます) l 流れ 1. ECSタスクロールの変更 2. サービスのEnableExecuteCommandオプションを有効にする 3. タスクの再デプロイ 4. コンテナへのログイン 8
手順1:ECSタスクロールの変更 l SSM関連のポリシーを作成して既存のロールにアタッチ 9
l 1行追記して、CloudFormationをデプロイ 手順2:サービスのEnableExecuteCommandオプションを有効にする 10
手順3:タスクの再デプロイ l CI/CDの仕組みも作っていたのでCodePipelineからデプロイ 11
手順4:コンテナへのログイン l 以下コマンドを実行 l 成功すると、コンテナ内でコマンドを実行できる 12 BXT FDT FYFDVUFDPNNBOEʘ DMVTUFSIJTBUFTUDMVTUFSʘ
UBTLYYYYYYYYYYYYYYYYYYYYYYY ʘ DPOUBJOFSIJTBUFTUDPOUBJOFSBQQʘ JOUFSBDUJWFʘ DPNNBOECJOTI 5IF4FTTJPO.BOBHFSQMVHJOXBTJOTUBMMFETVDDFTTGVMMZ6TFUIF"84$-*UPTUBSUBTFTTJPO 4UBSUJOHTFTTJPOXJUI4FTTJPO*EFDTFYFDVUFDPNNBOEYYYYYYYYYYY MT %PDLFSGJMF CVJMETQFDZNM JOGSB OPEF@NPEVMFT QBDLBHFMPDLKTPO QBDLBHFKTPO TFSWFSKT
まとめ l Fargateにログイン可能なECS Execはすごく簡単に設定できる 1. ECSタスクロールの変更 2. サービスのEnableExecuteCommandオプションを有効にする 3. タスクの再デプロイ
4. コンテナへのログイン l 心おきなくFargateを選択して、インフラ管理の手間を省きましょう l ただし、エラーログなどはこれまで通りCloudWatchなどに出力すべき l ヘルスチェックなどでコンテナが置き換わると、トラブルシューティングが困難に なるケースがあるため l ECS Execに頼りすぎるのではなく、最後の砦という位置付け 13
None