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
CloudFormationを用いた簡単なAWSネットワーク構築.pdf
Search
Shun Kawamoto
February 25, 2025
Technology
0
19
CloudFormationを用いた簡単なAWSネットワーク構築.pdf
AWS CloudFormationを用いた簡単なAWSネットワーク構築方法及び、プロビジョニング時の躓きを共有する資料です。
Shun Kawamoto
February 25, 2025
Tweet
Share
More Decks by Shun Kawamoto
See All by Shun Kawamoto
IAMロール再作成時の罠とインスタンスプロファイルの仕組み
kwmoon911
0
20
オンプレDNSでAWSサービスの名前解決にハマった話
kwmoon911
0
11
Other Decks in Technology
See All in Technology
第64回コンピュータビジョン勉強会@関東(後編)
tsukamotokenji
0
220
Devinを使ったモバイルアプリ開発 / Mobile app development with Devin
yanzm
0
150
AIは変更差分からユニットテスト_結合テスト_システムテストでテストすべきことが出せるのか?
mineo_matsuya
5
3.2k
キャリアを支え組織力を高める「多層型ふりかえり」 / 20250821 Kazuki Mori
shift_evolve
PRO
2
280
kintone開発チームの紹介
cybozuinsideout
PRO
0
73k
あとはAIに任せて人間は自由に生きる
kentaro
3
1.1k
知られざるprops命名の慣習 アクション編
uhyo
7
750
生成AI活用のROI、どう測る? DMM.com 開発責任者から学ぶ「AI効果検証のノウハウ」 / ROI of AI
i35_267
4
150
どこで動かすか、誰が動かすか 〜 kintoneのインフラ基盤刷新と運用体制のシフト 〜
ueokande
0
170
サイボウズフロントエンドの横断活動から考える AI時代にできること
mugi_uno
4
1.4k
イオン店舗一覧ページのパフォーマンスチューニング事例 / Performance tuning example for AEON store list page
aeonpeople
1
170
KiroでGameDay開催してみよう(準備編)
yuuuuuuu168
1
110
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
820
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Language of Interfaces
destraynor
160
25k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
890
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Being A Developer After 40
akosma
90
590k
How STYLIGHT went responsive
nonsquared
100
5.7k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Transcript
© JSOL CORPORATION 0 プレゼンテーションタイトル © JSOL CORPORATION CloudFormationを用いた簡単なAWSネットワーク 構築と躓きの共有
河本 瞬 豊洲会 #LT大会
© JSOL CORPORATION 1 © JSOL CORPORATION 1 自己紹介
© JSOL CORPORATION 2 自己紹介 河本 瞬(かわもと しゅん) プラットフォーム事業本部 プラットフォームビジネス部
SAP basis・インフラ領域を担当 社会人歴:1年目(現場配属3か月) 好きなAWSのサービス:Amazon Route 53 趣味:筋トレ、カメラ
© JSOL CORPORATION 3 © JSOL CORPORATION 3 現場配属後の業務
© JSOL CORPORATION 4 現場配属後の業務 1か月目 AWS パラメータ設計書の作成 • ネットワーク
• IAM • S3, SNS , CloudTrailなど
© JSOL CORPORATION 5 現場配属後の業務 2か月目 できました!
© JSOL CORPORATION 6 現場配属後の業務 2か月目 できました! ありがとうございます!
© JSOL CORPORATION 7 現場配属後の業務 2か月目 できました! ありがとうございます! 次はCloudFormationで これをプロビジョニング
してください。
© JSOL CORPORATION 8 現場配属後の業務 2か月目 できました! ありがとうございます! 次はCloudFormationで これをプロビジョニング
してください。 承知しました!
© JSOL CORPORATION 9 現場配属後の業務 2か月目 できました! ありがとうございます! 次はCloudFormationで これをプロビジョニング
してください。 承知しました! CloudFormationを用いたリソースの作成
© JSOL CORPORATION 10 現場配属後の業務 2か月目 できました! ありがとうございます! 次はCloudFormationで これをプロビジョニング
してください。 承知しました! CloudFormationを用いたリソースの作成 (いきなりCloudFormationか...。難しそうやな...。)
© JSOL CORPORATION 11 © JSOL CORPORATION 11 CloudFormationで簡単なAWS ネットワークを作ってみる
© JSOL CORPORATION 12 CloudFormationとは • 設定ファイル(テンプレート)を元にAWSの構築を自動化できるサービス • テンプレートにはJSONやYAML形式でリソースの情報を記述する •
作成したリソースの集合体をスタックという単位で管理できる Templateに作成する リソースを定義 ClourdFormation Templateの解釈 AWSリソースを操作 (作成/変更/削除) Stack リソースを集合体と してまとめて管理
© JSOL CORPORATION 13 CloudFormationでAWSネットワークを作成 Virtual private cloud (VPC) AZ:ap-northeast-1a
Public subnet RouteTable 構成図 • Virturl private cloud (VPC) • Public subnet • Route table • Internet gateway Internet gateway
© JSOL CORPORATION 14 CloudFormationでAWSネットワークを作成 テンプレート AWSTemplateFormatVersion: "2010-09-09" Description: "CloudFormation
template for a VPC with Multi-AZ subnets and VPC Endpoint." #VPC作成 Resources: VPC: Type: "AWS::EC2::VPC" Properties: CidrBlock: "10.0.0.0/16" #サブネット作成 Subnet: Type: "AWS::EC2::Subnet" Properties: VpcId: !Ref VPC CidrBlock: "10.0.1.0/24" AvailabilityZone: "ap-northeast-1a" #インターネットゲートウェイ作成 InternetGateway: Type: AWS::EC2::InternetGateway Properties: Tags: - Key: Name Value: MyInternetGateway VPCGatewayAttachment: Type: AWS::EC2::VPCGatewayAttachment Properties: VpcId: !Ref VPC InternetGatewayId: !Ref InternetGateway #ルートテーブル作成 RouteTable: Type: "AWS::EC2::RouteTable" Properties: VpcId: !Ref VPC #ルート追加 #インターネットへのルートを追加 RouteAZ1Internet: Type: "AWS::EC2::Route" Properties: RouteTableId: !Ref RouteTable DestinationCidrBlock: "0.0.0.0/0" GatewayId: !Ref InternetGateway VPCGatewayEndpoint: Type: "AWS::EC2::VPCEndpoint" Properties: VpcId: !Ref VPC ServiceName: "com.amazonaws.ap-northeast-1.s3" RouteTableIds: - !Ref RouteTable #ルートテーブルをサブネットに紐づける SubnetRouteTableAssociationAZ1: Type: "AWS::EC2::SubnetRouteTableAssociation" Properties: SubnetId: !Ref Subnet RouteTableId: !Ref RouteTable
© JSOL CORPORATION 15 CloudFormationでAWSネットワークを作成 テンプレート AWSTemplateFormatVersion: "2010-09-09" Description: "CloudFormation
template for a VPC with Multi-AZ subnets and VPC Endpoint." #VPC作成 Resources: VPC: Type: "AWS::EC2::VPC" Properties: CidrBlock: "10.0.0.0/16" #サブネット作成 Subnet: Type: "AWS::EC2::Subnet" Properties: VpcId: !Ref VPC CidrBlock: "10.0.1.0/24" AvailabilityZone: "ap-northeast-1a" #インターネットゲートウェイ作成 InternetGateway: Type: AWS::EC2::InternetGateway Properties: Tags: - Key: Name Value: MyInternetGateway VPCGatewayAttachment: Type: AWS::EC2::VPCGatewayAttachment Properties: VpcId: !Ref VPC InternetGatewayId: !Ref InternetGateway #ルートテーブル作成 RouteTable: Type: "AWS::EC2::RouteTable" Properties: VpcId: !Ref VPC #ルート追加 #インターネットへのルートを追加 RouteAZ1Internet: Type: "AWS::EC2::Route" Properties: RouteTableId: !Ref RouteTable DestinationCidrBlock: "0.0.0.0/0" GatewayId: !Ref InternetGateway VPCGatewayEndpoint: Type: "AWS::EC2::VPCEndpoint" Properties: VpcId: !Ref VPC ServiceName: "com.amazonaws.ap-northeast-1.s3" RouteTableIds: - !Ref RouteTable #ルートテーブルをサブネットに紐づける SubnetRouteTableAssociationAZ1: Type: "AWS::EC2::SubnetRouteTableAssociation" Properties: SubnetId: !Ref Subnet RouteTableId: !Ref RouteTable ちょっと難易度が高いのでは
© JSOL CORPORATION 16 テンプレートの記述例(yaml) VPCの定義
© JSOL CORPORATION 17 テンプレートの記述例(yaml) VPCの定義 たったの4行!!
© JSOL CORPORATION 18 テンプレートの記述例(yaml) VPC サブネット VPC・サブネット
© JSOL CORPORATION 19 テンプレートの記述例(yaml) VPC サブネット VPC・サブネット
© JSOL CORPORATION 20 テンプレートの記述例(yaml) VPC サブネット VPC・サブネット 参照 論理ID
© JSOL CORPORATION 21 テンプレートの記述例(yaml) VPC サブネット テンプレートはシンプルな構造でわかりやすい。 簡単に記述できる!! VPC・サブネット
参照 論理ID
© JSOL CORPORATION 22 © JSOL CORPORATION 22 躓き
© JSOL CORPORATION 23 スタック作成時のエラー どうやらルートテーブル関連でリソースに重複があるとのこと (Resource handler returned message
:”Already Exsists”) 実業務での最初のスタック作成ではエラーが発生...
© JSOL CORPORATION 24 スタック作成時のエラー どうやらルートテーブル関連でリソースに重複があるとのこと (Resource handler returned message
:”Already Exsists”) 実業務での最初のスタック作成ではエラーが発生... 解決に約1時間を要してしまった。
© JSOL CORPORATION 25 エラーの原因 エラー原因箇所 local宛のエントリを記載している
© JSOL CORPORATION 26 エラーの原因 エラー原因箇所 local宛のエントリを記載している AWSのルートテーブルは作成される際に デフォルトでローカル宛のエントリが追加 される。
© JSOL CORPORATION 27 エラーの原因 エラー原因箇所 local宛のエントリを記載している AWSのルートテーブルは作成される際に デフォルトでローカル宛のエントリが追加 される。
競合が発生し、エラーとなってしまった
© JSOL CORPORATION 28 教訓 ルートテーブルの仕様を把握していれば躓かなかった
© JSOL CORPORATION 29 教訓 ルートテーブルの仕様を把握していれば躓かなかった が、私のような経験が浅い人にとっては難しい
© JSOL CORPORATION 30 教訓 ・基本的な仕様を把握するために自分で情報を取りに行く ・AWS認定資格の勉強だけでなく、普段から手を動かすこと。 持つべき意識 ルートテーブルの仕様を把握していれば躓かなかった が、私のような経験が浅い人にとっては難しい
© JSOL CORPORATION 31 使ってみてわかったCloudFormationのメリット •テンプレート構造がシンプルで分かりやすい 初心者でも直感的に扱える。 •別アカウントや環境での再利用性が高い 複数のアカウントや環境で簡単に同一構成を作成可能 •手作業ミスを防げる
コードで定義するため、ヒューマンエラーを大幅に減らせる。
© JSOL CORPORATION 32 CloudFormationをまだ使ったことがない方... ぜひ、気軽に使ってみてください!!