Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
IaCからAWSに入門した初心者が CloudFormationを通して考えた「AWS操作」の...
Search
maimyyym
May 05, 2024
Technology
1.3k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
IaCからAWSに入門した初心者が CloudFormationを通して考えた「AWS操作」の使い分け
2024/05/05 JAWS-UG初心者支部#60 初心者向けLT大会
https://jawsug-bgnr.connpass.com/event/316727/
maimyyym
May 05, 2024
More Decks by maimyyym
See All by maimyyym
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
710
少人数チームで実現する、大規模AWSサーバーレス基盤における"揺らがない"信頼性運用
maimyyym
1
150
組織内の開発ポリシーを 整えるはじめの一歩
maimyyym
1
93
未来の自分と明日の誰かへ繋ぐ、非連続的なキャリアと再現性の分析
maimyyym
0
190
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
3
2.5k
大規模サーバーレスAPIの堅牢性・信頼性設計 〜AWSのベストプラクティスから始まる現実的制約との向き合い方〜
maimyyym
11
6.5k
Amazon Inspector コードセキュリティで手軽に実現するシフトレフト
maimyyym
1
1k
組織とセキュリティ文化と、自分の一歩
maimyyym
3
1.7k
大規模サーバーレスプロジェクトのリアルな零れ話
maimyyym
3
480
Other Decks in Technology
See All in Technology
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
sanghyuk
0
210
Amazon Bedrock Agents ClassicからAmazon Bedrock AgentCoreへ移行した際、ガードレール設定が2箇所に割れた話
matsunobu
0
120
AI感のないAWS構成図をAIエージェントに描かせたい!
sagochiko
2
440
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
3.2k
AI coding 整合正規方法
philipz
0
550
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
1
600
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
460
Datadog で始める トークンセーフティなAI 導⼊と定着
vkbaba
1
110
DORA_Metrics.pdf
wagnerfusca
1
110
企業の現実世界をグラフで写し取る
sansantech
PRO
0
100
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
180
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
180
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
23k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
490
BBQ
matthewcrist
89
10k
Optimising Largest Contentful Paint
csswizardry
37
4k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
Bash Introduction
62gerente
615
220k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
Raft: Consensus for Rubyists
vanstee
142
7.7k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
680
Transcript
©Fusic Co., Ltd. 1 *B$͔Β"84ʹೖͨ͠ॳ৺ऀ͕ $MPVE'PSNBUJPOΛ௨ͯ͠ߟ͑ͨʮ"84ૢ࡞ʯͷ͍͚ 2024.05.05 Mai Miyazaki @maimyyym
JAWS-UG初⼼者⽀部#60 初⼼者向けLT⼤会
©Fusic Co., Ltd. 2 宮崎 真⾐ Miyazaki Mai @maimyyym ◉
I am - IDDM(Insulin Dependent Diabetes Mellitus)3歳発症 〜 Now - 元百貨店スタッフ(Beauty Counselor) - 管理栄養⼠(養成校卒業・資格保持のみ) ◉ Skill - PHP / TypeScript / Python / AWS ◉ Comment - AWS歴:約1年 - 2023年10⽉より株式会社Fusicにjoin🎉 ⾃⼰紹介 はじめに 技術開発部⾨ エンジニア 株式会社Fusic at 福岡
©Fusic Co., Ltd. 3 話すこと・話さないこと はじめに # 話すこと - 個⼈的な体験談を通して考えてみたAWSの触り⽅
- マネコンもCLIもIaCもいいね、という話 # 話さないこと - CloudFormationの詳しい使い⽅や各ツールの具体的な操作⽅法
©Fusic Co., Ltd. 4 CONTENTS ⽬次 1. AWSの触り⽅ 2. CloudFormationで⾒るAWS操作
3. 感じたこと、改めて考えるAWS操作 4. まとめ
©Fusic Co., Ltd. 5 CONTENTS ⽬次 1. AWSの触り⽅ 2. CloudFormationで⾒るAWS操作
3. 感じたこと、改めて考えるAWS操作 4. まとめ
©Fusic Co., Ltd. 6 AWSの触り⽅ マネジメントコンソールとAWS CLIとIaCツール 1
©Fusic Co., Ltd. 7 主な操作⽅法 AWSの触り⽅ マネジメント コンソール AWS CLI
IaCツール
©Fusic Co., Ltd. 8 主な操作⽅法 AWSの触り⽅ マネジメントコンソール AWS CLI IaCツール
AWS クラウドにアクセスして 管理するために必要なものすべてを 1 つのウェブインターフェイスに集結 [引⽤元]https://aws.amazon.com/jp/console/ AWS のサービスを管理するための統合ツールです。 ダウンロードおよび設定⽤の単⼀のツールのみを 使⽤して、コマンドラインから AWS の複数のサー ビスを制御し、スクリプトを使⽤してこれらを⾃動 化することができます。 [引⽤元] https://aws.amazon.com/jp/cli/ ⼿動のプロセスや設定の代わりにコードを使⽤ してコンピューティングインフラストラクチャ をプロビジョニングおよびサポートできること [引⽤元] https://aws.amazon.com/jp/what-is/iac/ (例)AWS CloudFormation / AWS CDK / Terraform
©Fusic Co., Ltd. 9 私のAWS⼊⾨ AWSの触り⽅ IaCツール! 【Terraformを触ってみた研修期間】 【AWS CDKによるサーバーレス開発】
©Fusic Co., Ltd. 10 私のAWS⼊⾨ AWSの触り⽅ IaCツールのここが嬉しい! 簡単!すぐに動く! でもサービスの理解は必要。 →程よい達成感をすぐに得られる・効率よく学べる
©Fusic Co., Ltd. 11 私のAWS⼊⾨ AWSの触り⽅ 課題 マネジメントコンソールやAWS CLIによる操作をほぼ経験していない EC2を⽴てたこともほぼなく、多くの⼈が⼊⾨時に触れるものに慣れていない
動いて嬉しい! 本当にそれでいいの? ⾃分のキャリアやロールによる・・・
©Fusic Co., Ltd. 12 私のAWS⼊⾨ AWSの触り⽅ 課題 マネジメントコンソールやAWS CLIによる操作をほぼ経験していない EC2を⽴てたこともほぼなく、多くの⼈が⼊⾨時に触れるものに慣れていない
動いて嬉しい! 本当にそれでいいの? ⾃分のキャリアやロールによる・・・ 私はNo!
©Fusic Co., Ltd. 13 私のAWS⼊⾨ AWSの触り⽅ そんな時、 CloudFormationを触る機会がありました (実はあまり使ったことがなかった)
©Fusic Co., Ltd. 14 CloudFormationで⾒るAWS操作 既存リソースのインポート作業をAWS CLIとマネジメントコンソールで⾏う 2
©Fusic Co., Ltd. 15 CloudFormationとは CloudFormationで⾒るAWS操作 AWSリソースの設定をテンプレートに記述 →リソース⾃動作成・管理を⾏う = AWS提供のIaCサービス
AWSTemplateFormatVersion: "2010-09-09" Description: A sample template Resources: MyEC2Instance: Type: "AWS::EC2::Instance" Properties: ImageId: "ami-0ff8a91507f77f867" InstanceType: t2.micro KeyName: testkey BlockDeviceMappings: - DeviceName: /dev/sdm Ebs: VolumeType: io1 Iops: 200 DeleteOnTermination: false VolumeSize: 20 https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/template-formats.html 【YAMLテンプレートの例】 (AWS CloudFormationユーザーガイドより) 【テンプレートをもとにスタックを作成】 テンプレート スタック テンプレートに定義したリソースのコレ クション。スタック操作によりリソース をまとめて作成・更新・削除ができる。 【リソース⾃動作成】
©Fusic Co., Ltd. 16 CloudFormationの操作⽅法 CloudFormationで⾒るAWS操作 マネジメントコンソール AWS CLI 【テンプレートの配置場所】
S3バケット ローカルファイル →アップロード コンソールに 直接⼊⼒ $ aws cloudformation create-stack \ --stack-name teststack \ --template-body \ file:///home/testuser/template.yaml 【テンプレートの配置場所】 【例:スタック作成】 S3バケット ローカルファイル
©Fusic Co., Ltd. 17 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 CloudFormationテンプレートで未定義の AWSクラウド上に既にあるリソースを CloudFormationで管理したい →
既存リソースのインポート機能! Amazon DynamoDB
©Fusic Co., Ltd. 18 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 CloudFormationテンプレートで未定義の AWSクラウド上に既にあるリソースを CloudFormationで管理したい →
既存リソースのインポート機能! Amazon DynamoDB コンソール上またはCLIでしか 操作・管理できないものを どうやってコード(IaC)に取り込むの?
©Fusic Co., Ltd. 19 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 # マネジメントコンソールを使⽤ # AWS
CLIを使⽤
©Fusic Co., Ltd. 20 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 # マネジメントコンソールを使⽤ # AWS
CLIを使⽤ テンプレートをローカル(コンソール以外の場所)で管理 →リソース管理はコードで完結させたい =コンソール上の操作を避けたい
©Fusic Co., Ltd. 21 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 # マネジメントコンソールを使⽤ # AWS
CLIを使⽤ テンプレートをローカル(コンソール以外の場所)で管理 →リソース管理はコードで完結させたい =コンソール上の操作を避けたい
©Fusic Co., Ltd. 22 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 # AWS CLIを使⽤ 1.
インポートしたいリソースの設定内容をテンプレートに定義 2. インポート設定ファイル(ex. import.txt )を作成(CLIで直接⼊⼒も可) 3. CLI操作でインポート実⾏ $ aws cloudformation create-change-set \ --stack-name TargetStack \ --change-set-name ImportChangeSet \ --change-set-type IMPORT \ --resources-to-import file://import.txt \ --template-body file://template.yaml $ aws cloudformation execute-change-set \ --change-set-name ImportChangeSet \ --stack-name TargetStack 【変更セットを作成】 【変更セットを実⾏】 【詳しくは】https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/resource-import-existing-stack.html
©Fusic Co., Ltd. 23 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 # AWS CLIを使⽤ 1.
インポートしたいリソースの設定内容をテンプレートに定義 2. インポート設定ファイル(ex. import.txt )を作成(CLIで直接⼊⼒も可) 3. CLI操作でインポート実⾏ $ aws cloudformation create-change-set \ --stack-name TargetStack \ --change-set-name ImportChangeSet \ --change-set-type IMPORT \ --resources-to-import file://import.txt \ --template-body file://template.yaml $ aws cloudformation execute-change-set \ --change-set-name ImportChangeSet \ --stack-name TargetStack 【変更セットを作成】 【変更セットを実⾏】 【詳しくは】https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/resource-import-existing-stack.html 変更セット を確認
©Fusic Co., Ltd. 24 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 # 変更セットの確認 【詳しくは】https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/resource-import-existing-stack.html マネジメントコンソール
AWS CLI $ aws cloudformation describe-change-set --change-set-name ImportChangeSet --stack-name TargetStack { "Changes": [ { "Type": "Resource", "ResourceChange": { "Action": "Import", // 略 } } ], "ChangeSetName": "ImportChangeSet", // 略 "ExecutionStatus": "AVAILABLE", "Status": "CREATE_COMPLETE", // 略 }
©Fusic Co., Ltd. 25 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 # 変更セットの確認 【詳しくは】https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/resource-import-existing-stack.html マネジメントコンソール
AWS CLI $ aws cloudformation describe-change-set --change-set-name ImportChangeSet --stack-name TargetStack { "Changes": [ { "Type": "Resource", "ResourceChange": { "Action": "Import", // 略 } } ], "ChangeSetName": "ImportChangeSet", // 略 "ExecutionStatus": "AVAILABLE", "Status": "CREATE_COMPLETE", // 略 } コンソール上での確認が 分かりやすい!
©Fusic Co., Ltd. 26 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 # マネジメントコンソールで「確認」する分かりやすさ - 直感的で分かりやすい
→ 「確認」に適している - 何らかのエラー(状態=Status)が必ず表⽰されている - (CloudFormationの場合)やり直し操作などはコンソール操作が速い - ※コンソールとコードで競合発⽣など影響がない場合
©Fusic Co., Ltd. 27 CloudFormationによる既存リソースのインポート CloudFormationで⾒るAWS操作 # マネジメントコンソールで「確認」する分かりやすさ - 直感的で分かりやすい
→ 「確認」に適している - 何らかのエラー(状態=Status)が必ず表⽰されている - (CloudFormationの場合)やり直し操作などはコンソール操作が速い - ※コンソールとコードで競合発⽣など影響がない場合 私がCLI操作に慣れていない・複雑な操作を⾏わない等の条件下で マネジメントコンソールの利点を感じた。 操作者や開発状況によって何が適しているかは変わる。
©Fusic Co., Ltd. 28 感じたこと、改めて考えるAWS操作 役割を理解して使い分けよう 3
©Fusic Co., Ltd. 29 ここまでのまとめ 感じたこと、改めて考えるAWS操作 # CloudFormationによる既存リソースのインポート コード でリソース定義
マネジメントコンソール で確認 AWS CLI で操作 AWSTemplateFormatVersion: '2010-09-09' Description: test Resources: MyTable: Type: AWS::DynamoDB::Table DeletionPolicy: Retain Properties: TableName: my-table AttributeDefinitions: - AttributeName: id AttributeType: S BillingMode: PAY_PER_REQUEST KeySchema: - AttributeName: id KeyType: HASH $ aws cloudformation execute-change-set \ --change-set-name ImportChangeSet \ --stack-name TargetStack
©Fusic Co., Ltd. 30 感じたこと 感じたこと、改めて考えるAWS操作 # 改めて、私のステータス - IaCツール(CDK,
terraform)でAWS⼊⾨ - マネコン、AWS CLIにはあまり慣れていない # CloudFormationでの作業を通して感じたこと - AWS CLIでの操作は⾃分が何をしようとしているか慎重に理解できる。速い。 今ではちょっとした検証時にも使⽤するように。 - マネジメントコンソールは直感的で分かりやすいことはもちろん、隅々まで注意深く⾒ると サービスを構成するコンポーネントを知ることができる。 - その上で、IaCでリソースを管理する開発・運⽤上のメリットと学習・開発効率の良さがある。
©Fusic Co., Ltd. 31 役割を理解して使い分けよう 感じたこと、改めて考えるAWS操作 マネジメントコンソール AWS CLI IaCツール
【開発⾯】状態の確認・デバッグ 【学習⾯】ある⼀つのサービスを 構成するコンポーネントを理解 【開発⾯】APIに直接アクセス CLIを利⽤した複雑な操作 【学習⾯】APIの理解 検証の効率化 【開発⾯】リソースの可視化 運⽤上の管理しやすさ 【学習⾯】サービス・構成全体を俯瞰 構成要素、関連性を理解 IaCの良さは過去LTでも発表!
©Fusic Co., Ltd. 32 まとめ 『 IaCからAWSに⼊⾨した初⼼者がCloudFormationを通して考えた「AWS操作」の使い分け 』 AWSの主な操作⽅法はマネジメントコンソール、AWS CLI、IaCツール
Point 01 IaCツールであるCloudFormationの既存リソースインポートにおいては、AWS CLI+マネコンの両⼑使いが有⽤ Point 02 マネコンは分かりやすい、CLIは慣れると⼿軽で速い、IaCは全体を俯瞰できる・管理しやすい Point 03 ユースケースに適した操作⽅法を選んで、開発も学習も最適化・効率化! Point 04
©Fusic Co., Ltd. 33 Thank You We are Hiring! https://recruit.fusic.co.jp/
ご清聴いただきありがとうございました