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
IaCからAWSに入門した初心者が CloudFormationを通して考えた「AWS操作」の...
Search
mai miya
May 05, 2024
Technology
4
1.1k
IaCからAWSに入門した初心者が CloudFormationを通して考えた「AWS操作」の使い分け
2024/05/05 JAWS-UG初心者支部#60 初心者向けLT大会
https://jawsug-bgnr.connpass.com/event/316727/
mai miya
May 05, 2024
Tweet
Share
More Decks by mai miya
See All by mai miya
Amazon Inspector コードセキュリティで手軽に実現するシフトレフト
maimyyym
0
99
組織とセキュリティ文化と、自分の一歩
maimyyym
3
1.5k
大規模サーバーレスプロジェクトのリアルな零れ話
maimyyym
3
340
ABWG2024採択者が語るエンジニアとしての自分自身の見つけ方〜発信して、つながって、世界を広げていく〜
maimyyym
1
460
re:Invent2024で広がった AWS Verified Accessの可能性を探る
maimyyym
1
190
“自分”を大切に、フラットに。キャリアチェンジしてからの一年 三ヶ月で見えたもの。
maimyyym
0
440
IAM JSON ポリシーと仲良くなろう
maimyyym
3
140
2年目エンジニアが過ごしたre:Invent、私にできる明日からのEverything starts with security
maimyyym
0
140
"とにかくやってみる"で始めるAWS Security Hub
maimyyym
2
440
Other Decks in Technology
See All in Technology
2025新卒研修・HTML/CSS #弁護士ドットコム
bengo4com
3
13k
Segment Anything Modelの最新動向:SAM2とその発展系
tenten0727
0
740
Eval-Centric AI: Agent 開発におけるベストプラクティスの探求
asei
0
120
[OCI Technical Deep Dive] OracleのAI戦略(2025年8月5日開催)
oracle4engineer
PRO
1
160
金融サービスにおける高速な価値提供とAIの役割 #BetAIDay
layerx
PRO
1
830
ファッションコーディネートアプリ「WEAR」における、Vertex AI Vector Searchを利用したレコメンド機能の開発・運用で得られたノウハウの紹介
zozotech
PRO
0
260
猫でもわかるQ_CLI(CDK開発編)+ちょっとだけKiro
kentapapa
0
3.4k
AI時代の経営、Bet AI Vision #BetAIDay
layerx
PRO
1
2k
オブザーバビリティプラットフォーム開発におけるオブザーバビリティとの向き合い / Hatena Engineer Seminar #34 オブザーバビリティの実現と運用編
arthur1
0
380
【CEDEC2025】『Shadowverse: Worlds Beyond』二度目のDCG開発でゲームをリデザインする~遊びやすさと競技性の両立~
cygames
PRO
1
360
MCP認可の現在地と自律型エージェント対応に向けた課題 / MCP Authorization Today and Challenges to Support Autonomous Agents
yokawasa
5
2.3k
九州の人に知ってもらいたいGISスポット / gis spot in kyushu 2025
sakaik
0
150
Featured
See All Featured
The Language of Interfaces
destraynor
158
25k
Speed Design
sergeychernyshev
32
1.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Docker and Python
trallard
45
3.5k
Optimizing for Happiness
mojombo
379
70k
It's Worth the Effort
3n
185
28k
The Pragmatic Product Professional
lauravandoore
36
6.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
4 Signs Your Business is Dying
shpigford
184
22k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.4k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
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/
ご清聴いただきありがとうございました