AWS基礎&ベストプラクティス&CDK

421 Views

February 09, 25

スライド概要

専門学校講座で使用しました資料です

profile-image

 開発ベンダーに5年、ユーザ企業システム部門通算9年を経て、2018年よりトレノケート株式会社でAWS Authorized InstructorとしてAWSトレーニングコースを担当し、毎年1500名以上に受講いただいている。プロトタイプビルダーとして社内の課題を内製開発による解決もしている。 AWS認定インストラクターアワード2018・2019・2020の3年連続受賞により殿堂入りを果たした。 APN AWS Top Engineers、APN ALL AWS Certifications Engineers、AWS Community Buildersに数年にわたり選出。 個人活動としてヤマムギ名義で執筆、勉強会、ブログ、YouTubeで情報発信している。 その他コミュニティ勉強会やセミナーにて参加、運営、スピーカーや、ご質問ご相談についてアドバイスなどをしている。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

AWS基礎 & ベストプラクティス & CDK 2025/2/8-9 山下 光洋

2.

自己紹介 ●山下 光洋 トレノケート株式会社 AWS認定インストラクター (ATP Award 2018,2019, 2020, 2023 最優秀インストラクター 2021,2022,2023,2024 Japn AWS Top Engineers) クラウドトレーニングアドボケイト プロトタイプビルダー ●経歴 ・SI ソフトウェアエンジニア ・ユーザー企業 IT部門 ●好きなAWSサービス AWS Lambda X @yamamanx 2

3.

AWSアカウントの作成 学生さんは説明だけ聞いて下さい。 社会人さんですでにAWSアカウントをお持ちの方で 未設定のものがあれば設定してください。 【アカウント作成後にやること】 ● ルートユーザーのMFA設定、パスワードの複雑化 ● パスワードポリシーの設定 ● 管理者用IAMユーザーグループの作成 ● IAMユーザーの作成 ● 請求アラームの設定

4.

API(Application Programming Interface) リクエスト 処理 レスポンス ミーティングを作って ミーティング 予約作成処理 予約を作成しました

5.

AWS 開発者 パラメータシートの内容で サーバーがほしい できました! アクセス方法はこちらです。 インフラ部門 サーバー調達 キッティング ラッキング ネットワーク/電源

6.

AWS 開発者 パラメータをつけて EC2インスタンス起動を リクエスト AWS API 自動起動 必要な情報をレスポンス

7.

AWS API Management Console API CLI SDK ec2.ap-northeast-1.amazonaws.com ec2.us-east-1.amazonaws.com

8.

リージョンとアベイラビリティゾーン 東京リージョン AZ-b AZ-a AZ-d AZ-c

9.

署名バージョン4

10.

CloudShellをローカル端末として AssumeRole CloudShell S3FullRole .aws/credentials VPCDescribeUser AssumeRole .aws/config EC2CreateUser AWS IAM Identity Center

11.

aws configure CloudShell default .aws/credentials VPCDescribeUser –profile ec2 .aws/config EC2CreateUser

12.

AssumeRole CloudShell sts:AssumeRole .aws/credentials VPCDescribeUser S3FullRole .aws/config アクセスキーID シークレットアクセスキー セッショントークン

13.

CloudShellをローカル端末として AssumeRole CloudShell AWS IAM Identity Center .aws/config アクセスキーID シークレットアクセスキー セッショントークン

14.

認証と認可の課題 (認証キー ) IAMユーザー 何かのシステム アクセスキーID シークレットアクセスキー AWS SDK for PHP $result = $this->s3Client->putObject('Bucket' => 'xxxxxxx', 'Key' => 'xxxxxxx') リージョン アベイラビリティゾーン VPC インターネットゲートウェイ パブリックサブネット EC2 S3 アクセスキーID シークレットアクセスキー Apache PHP セキュリティグループ Amazon Linux 2023 EC2インスタンス t4g.micro MySQL

15.

認証と認可の課題 2(OSへの侵入 ) IAMユーザー リージョン アベイラビリティゾーン VPC インターネットゲートウェイ Invalid User パブリックサブネット EC2 セキュリティグループ 22: 0.0.0.0/0 80: 0.0.0.0/0

16.

認証と認可の課題 2 IAMロール リージョン Systems Manager アベイラビリティゾーン VPC インターネットゲートウェイ パブリックサブネット SSM Agent セキュリティグループ セッション マネージャー 22: 0.0.0.0/0 80: 0.0.0.0/0

17.

Docker on EC2 アプリケーション 1 アプリケーション 2 アプリケーション 3 Bin/Lib Bin/Lib Bin/Lib Docker Docker EC2 EC2 ハイパーバイザー サーバー

18.

Docker on EC2 ECR パブリックレジストリ docker build FROM public.ecr.aws/nginx/nginx HTML CSS JavaScript

19.

ECR(Elastic Container Registry) ECR プライベートレジストリ aws ecr get-login-password docker login リポジトリ docker push docker build docker tag

20.

AWS App Runner ECR プライベートレジストリ リポジトリ AWS App Runner

21.

オーケストレーションサービス ECS (Elastic Container Service) Application Load Balancer Role Fargate Task Service ECR プライベートレジストリ EC2 リポジトリ EKS (Elastic Kubernetes Service) Application Load Balancer Role Ingress Fargate Pod Service EC2 Deploy ServiceAccount Role

22.

ECS(Elastic Container Service)

23.

EKS EKSクラスター (Kubernetes 1.30) eksctl ECR プライベートレジストリ リポジトリ Application Load Balancer kubectl EC2 game-2048 IAMロール

24.

AWS CDKとは AWS Cloud Development Kit AWS CloudFormation Template Stack 使い慣れたプログラミング言語を使用して、AWSリソースをプロビジョニング するためのオープンソースソフトウェア開発フレームワーク 。

25.

AWS CDKのメリット ・使い慣れたプログラム言語(TypeScript,Python)をそのまま活用。 ・統合開発環境(IDE)、リポジトリの使用が可能。 ・ベストプラクティスに基づく、デフォルト設定により構築が簡単。 ・オブジェクト思考、ループ、条件分岐による動的なインフラストラクチャ構築が 可能。 ・レイヤーごとの共有コンポーネントを、共有クラスや関数として組織内で再利 用。

26.

CDKで構築する VPCのベストプラクティス from aws_cdk.aws_ec2 import Vpc VPC Availability Zone Availability Zone Public subnet Public subnet Private subnet Private subnet vpc = Vpc(self, "TheVPC", cidr="10.0.0.0/16" ) 1行のコードを書くだけで、高可用性とセキュリティを備えたVPCのテンプ レート340行とそのスタックが作成される。

27.

AWS CDKのしくみ AWS Cloud Development Kit AWS CloudFormation Template Stack TypeScript, Pythonで記述したコードをCDK CLIでデプロイすることで、 CloudFormationスタックが構築される。

28.

AWS CDK CLI cdk init CDKプロジェクトのスケルトンを作成します。 テンプレートプロジェクトの選択や言語の選択ができます。 例 cdk init sample-app –language python sample-app テンプレート名 --language python 言語指定

29.

AWS CDK CLI cdk list(ls) プロジェクトに含まれるスタックを一覧表示し ます。 例 cdk ls

30.

AWS CDK CLI cdk deploy プロジェクトに含まれるスタックをデプロイします。 引数で単一のスタックを指定することも可能。 例 cdk deploy hello-cdk1

31.

AWS CDK CLI cdk synthesize(synth) CDKのコードをテンプレートにして表示します。 単一スタックの指定も可能です。 例 cdk synth hello-cdk1

32.

AWS CDK CLI cdk diff CDKのコードとスタックで差異がないか表示します。 単一スタックの指定も可能です。 例 cdk diff hello-cdk1

33.

AWS CDK CLI cdk destroy スタックを削除します。 単一スタックの指定も可能です。 例 cdk destroy hello-cdk1