週末趣味のAWS
Elastic Beanstalk 編
免責事項
本資料並びにセッションでの発言は私個人の調査や情報
収集および実践に基づいて構成したものです
したがって所属企業やAWS等、私個人以外の如何なるも
のの意見を代表するものではありません
本セッションでの内容に起因して損害が生じた場合におい
ても、発表者はその責任を負うことができません
自己紹介
氏名:難波 和生
株式会社リゾーム 所属
Twitter:@kazu_0
職業:ネットワークオペレータ
:サーバ・NWのインフラ担当
:レイヤー4までの人です
趣味:車の運転
:映画鑑賞・音楽鑑賞
:「週末趣味のAWS」「週末趣味のAzure」など
週末趣味シリーズ
Elastic Beanstalk
• 使うようになったキッカケ
• 新しい案件でコンテナを使ってみることに
• そういえば Beanstalk が ECS を使ったマルチコンテナ構成
が可能になったらしいよ
• じゃ、Beanstalk 使ってみよっか
Elastic Beanstalk
• その頃のクラウドインフラのトレンドは。。
• CloudFormation とか terraform などが話題に
• きっと Beanstalk って便利ツールに違いない
• AWS環境にとっても詳しい人とお話してみると。。
Elastic Beanstalk
自分でEC2を
ローンチしたら
負けなのさ
Elastic Beanstalk
• 実際のところ、、
• AWSリソースの構成管理をしてくれる、とっても便利なツール
• ただ、とっても簡単ではない。。
• 最低限のECSやELB、CloudFomation Stack の知識があった方が
幸せになれます
Elastic Beanstalkって?
• AWSが提供するクラウド環境作成・構成管理ツール
• Beanstalkを使うとAWSのサービスを組み合わせて環境を構築
してくれます
• Beanstalkで作成された個々の環境を確認することで、AWS
サービスの学習することもできます
• EC2、Security Group、ELB、ECS、Cloudformation
Elastic Beanstalkって?
• Application 内で異なるバージョンの Enviroment
Elastic
Beanstalk
Application 01
Environment 01
Application 02
Environment 02 Environment 03
Environment 01 Environment 02 Environment 03
Environment 02
Nginx Proxy PHP-fpm
(Version 8.2)
Nginx Proxy PHP-fpm
(Version 9.1)
Environment 03
Elastic Beanstalkって?
• Application 内で異なる機能の Enviroment
Elastic
Beanstalk
Application 01
Environment 01
Application 02
Environment 02 Environment 03
Environment 01 Environment 02 Environment 03
Environment 01
Nginx Proxy PHP-fpm
(nextcloud)
Private registry
(docker private registry)
Environment 02
環境構築の方針
• カスタムAMI ではなく .ebextentions で環境を作成
• コンテナイメージはオフィシャルを使う
• できるだけ AWS Well-Architected Framework に沿った環境
今回の環境構成
• Multicontainer Docker Environments
• Application Load Balancer(ELB)
• Beanstalk の構成管理は「CodeCommit」
今回のBeanstalk環境構成
• アプリケーションは「Nextcloud」
• データベースはRDS(Amazon Aurora)
• 永続性データの保存にEFS( Elastic File System)
• ユーザ管理に「AWS Directory Service」
構成図です
Oreg-VPC218-Ap2-2b
application
Amazon EFS
Oreg-VPC218-ap1-2c
application
Elastic Load Balancing
AWS Elastic Beanstalk AWS Elastic Beanstalk
/efs (Host NFS)
/var/www/html/config
/var/www/html/data
/var/www/html/apps
/efs (Host NFS)
/var/www/html/config
/var/www/html/data
/var/www/html/apps
Amazon Aurora
certificate manager
*.std-adhocracy.net.
AWS Directory Service
AWS WAF
Amazon Route 53
事前準備リスト
• VPC・サブネット と RDS を作成
• EFS( Elastic File System)を作成
• 「AWS Directory Service」で simple AD を作成
事前準備リスト
• ACM ( AWS Certificate Manager )でSSL証明書作成
• ECR(EC2 Container Registry)準備
• Beanstalk にデプロイするファイル準備
事前準備(VPC・RDS)
サブネット IPアドレスプレフィックス アベイラビリティゾーン
subnet-97aa55cf | Oreg-VPC218-ap1-2c 172.22.218.64/26 c
subnet-d7d47fa1 | Oreg-VPC218-ap2-2b 172.22.218.128/26 b
subnet-cc097594 | Oreg-VPC218-db1-2c 172.22.218.192/27 c
subnet-710c0107 | Oreg-VPC218-db2-2b 172.22.218.224/27 b
• RDSを作成
• VPCとサブネットを作成
DB Engine Multi AZ
Aurora No
事前準備(EFS)
• EFS( Elastic File System)を作成
Mount Point(/efs)
Amazon EFS config
application
Auto Scaling group
Mount Point(/efs)
Data Volume
data apps
application
EC2 compute
container
EC2 compute
container
NFS
Data Volume
Data Volume
事前準備(EFS)
• EFS( Elastic File System)を作成
• Multi-AZ構成で複数のサブネットにマウントターゲットを作成
事前準備 (Directory Service)
Details
Directory name jaws-ug.ok2017.local
NetBIOS name JAWSUG
Subnets Oreg-VPC218-ap1-2c | subnet-97aa55cf
Oreg-VPC218-ap2-2b | subnet-d7d47fa1
DNS Address 172.22.218.163 172.22.218.111
• 「Simple AD」で認証環境を作成
• VPCの「DHCP Option Set」 を設定
事前準備 (AWS Certificate Manager)
Details
Domain name *.your-domain.net(wild card)
ARN arn:aws:acm:us-west-2:your-id:certificate/Identifier
• SSL証明書作成
• ARNをBeanstalk環境(ebextentions)へ設置します
• ACMあるある
• 自動更新には条件があります
• 証明書に記載されているFQDNが名前解決可能
• 証明書がAWSリソースに関連付けされており使用されている
• 関連付けしているAWSリソースがインターネットから接続できる
事前準備 (AWS Certificate Manager)
• 内部向けELBに割り当てしている
ACMは自動更新されないので注意
• 手動更新はメールが届きます
• 英語メールなので見落とし注意
• http://qiita.com/kazu_0/private/072e716d7e7352d4015e
内向きELB
事前準備 (Identity and Access Management)
• 「role」を設定
aws-elasticbeanstalk-ec2-role
AWSElasticBeanstalkWebTier
AWSElasticBeanstalkWorkerTier
AWSElasticBeanstalkMulticontainerDocker
AmazonEC2ContainerServiceforEC2Role
CloudWatchLogsFullAccess
AmazonEC2RoleforSSM
aws-elasticbeanstalk-service-role
AWSElasticBeanstalkEnhancedHealth
AWSElasticBeanstalkService
事前準備 (EC2 Container Registry)
• Docker logon の認証なしでコンテナイメージをpull
できるように「elasticbeanstalk-ec2-role」に
「permissions」を設定
Beanstalk環境の作成
• Beanstalk にデプロイするファイル準備
• .ebextensions
• EB環境の設定、AWSリソースのカスタマイズ
• .elasticbeanstalk config.yml
• EB環境設定時(eb init)に自動生成
• Dockerrun.aws.json
• 設定ファイルやコンテンツと組み合わせて、Docker
プラットフォーム上に環境を作成
• デプロイ時に展開したいコンテンツ
• ローンチされるEC2の /var/app/current/ に展開
環境の作成 ( .elasticbeanstalk )
• config.yml
• Beanstalk 環境設定
• eb init コマンド実行時に作成
• Aplication名
• 使用プラットフォーム
• AWSリージョン
• AWS CLI プロファイル
などが設定されます
環境の作成 (.ebextentions)
• 00.storage-efs-
mountfilesystem.config
• EFS(Elastic File System)のマウント
• This ebextentions includes the work that is distributed
in the Apache License 2.0
• https://github.com/awslabs/elastic-beanstalk-
docs/blob/master/configuration-files/aws-
provided/instance-configuration/storage-efs-
mountfilesystem.config
環境の作成 (.ebextentions)
• 01.set-env.config
• RDSの接続情報を環境変数として
Beanstak環境へ登録
• eb-setenv.ps1
• eb set env コマンドでも
設定可能
環境の作成(.ebextentions)
• 03.sg.config
• 特定IPからのSSH・HTTP接続を許可する
環境の作成(.ebextentions)
• 11.autoscaling-trigger.config
• Enviroment を構成するEC2の最大数・
最小数を設定(MaxSize,MinSize)
• スケールアウト、スケールインの閾値を
設定
• cooldown: Auto Scaling が新しいイン
スタンスを起動した後、次のスケーリン
グアクティビティを再開するまでに待機
する時間
• Period:トリガのメトリクスを測定する頻
度(minutes)
• Breach duration:トリガが発せられる
まで待機する限度時間(minutes)
環境の作成(.ebextentions)
• 12.application-load-balancer.config
• ALB(Application Load Barlncer)を構成
• ALBは Enviroment 構築時のみ構成可能
• 「eb create」 コマンド実行時でも設定可能
• --elb-type application
環境の作成(.ebextentions)
• 13.alb-default-process.config
• DeregistrationDelay:
• 登録解除前にアクティブなリクエスト
が完了するまでの待機時間
• HealthyThresholdCount:
• ELBがインスタンスのヘルスステータ
スを変更するために必要な、連続し
て成功したリクエストの数。
• StickinessEnabled:
• スティッキーセッションを有効
• StickinessLBCookieDuration:
• スティッキーセッション Cookie の
有効期間 (Second)
環境の作成(.ebextentions)
• 14.alb-secure-listener.config
• ALB(Application Load Balancer)にACM(AWS Certificate Manager)を設定
環境の作成(Dockerrun.aws.json)
• "AWSEBDockerrunVersion": 2,
• 複数コンテナの Docker 環境はVer2になります
• “volumes”
• コンテナホストのボリュームを定義
• name:ボリュームの名前を設定
• sourcePath:実体のフォルダ
• 同じ階層に設置した「フォルダ」や「ファイル」は
「/var/app/current/」に展開
環境の作成(Dockerrun.aws.json)
• containerDefinitions
• コンテナの定義の配列
• name:コンテナ名
• Image:pullする
image
• mountPoints:
• sourceVolume
設定したボリューム
• containerPath
コンテナ上の
マウントパス
• readOnly
trueでreadonly
環境の作成(Dockerrun.aws.json)
• containerDefinitions
環境の作成(Dockerrun.aws.json)
• "containerDefinitions“
• Nginx-proxy コンテナの定義
• コンテナ名「php-app」とリンク
環境の作成(eb-create.ps1)
• コンテナ作成コマンド
(eb create)のスクリプトを
作成
• スクリプトを実行すると環境
が構築されます
今回使った他のAWSサービス
時間があれば
ご紹介
VPC Flow Logs
• https://aws.amazon.com/jp/blogs/big-data/analyzing-vpc-flow-logs-with-amazon-kinesis-firehose-
amazon-athena-and-amazon-quicksight/
• Serverless Architecture for Analyzing
VPC Flow Logs
ALB Log Analysis with Athena
https://aws.amazon.com/jp/blogs/news/analyzing-data-in-s3-using-amazon-athena/
IPv4/IPv6 Dual Stack
• 今回の環境は「IPv4/IPv6デュアルスタック」対応してます
IPv4/IPv6 Dual Stack
• AWSでのIPv6はとっても簡単
• VPCの設定
• VPCで「Edit CIDRs」
• 「Add Ipv6 CIDR」
• /56のIPv6プレフィックス
IPv4/IPv6 Dual Stack
• AWSでのIPv6はとっても簡単
• /56のIPv6プレフィックスって?
• 「2の64乗(=1844京6744兆0737億0955万1616)個のアドレスを
持つサブネット」を256個作れるグローバルアドレス
IPv4/IPv6 Dual Stack
• AWSでのIPv6はとっても簡単
• Subnets の設定
• 「Edit IPv6 CIDRs」
• Add IPv6 CIDR
• /64のIPv6プレフィックス
IPv4/IPv6 Dual Stack
• AWSでのIPv6はとっても簡単
• Route Tables の設定
• 「::/0」 Ipv6 デフォルトルート設定
IPv4/IPv6 Dual Stack
• AWSでのIPv6はとっても簡単
• ELB の設定
• 「Edit IP address type」
• 「dualstack」を選択
IPv4/IPv6 Dual Stack
• AWSでのIPv6はとっても簡単
• ELB の設定 の設定
「Security Group」
HTTP(80) ::/0
HTTPS(443) ::/0
SGでは
Permit ip any any
接続制限はWAFの
IP match conditions
IPv4/IPv6 Dual Stack
• AWSでのIPv6はとっても簡単
• R53 の設定
• 「Type:AAAA」
• Aliasレコードをターゲット
ELBに設定
IPv4/IPv6 Dual Stack
• 会場にIPv6接続
環境をご用意で
きず。。
• WAFのログです
Elastic Beanstalk
• まとめ
• Elastic Beanstalk は便利なシステム構成管理ツール
• 学習コストはそれなりに必要
• IPv4/IPv6 Dual Stack 対応も簡単
Elastic Beanstalk
ご清聴ありがとうございました

More Related Content

PDF
ElasticBeanstalkでのRailsアプリ運用
PPTX
AWS Elastic Beanstalk のススメ
PDF
Aws elastic beanstalk-handson-summit2012
PPT
Jawsug elastic beanstalk_150207
PDF
華麗なるElastic Beanstalkでの環境構築
PPTX
AWSのElastic BeanstalkでWordPressを 構築レスで導入してみる。
PPTX
サーバ構築・デプロイが簡単に!Elastic beanstalk
PDF
[AWSマイスターシリーズ] AWS Elastic Beanstalk
ElasticBeanstalkでのRailsアプリ運用
AWS Elastic Beanstalk のススメ
Aws elastic beanstalk-handson-summit2012
Jawsug elastic beanstalk_150207
華麗なるElastic Beanstalkでの環境構築
AWSのElastic BeanstalkでWordPressを 構築レスで導入してみる。
サーバ構築・デプロイが簡単に!Elastic beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk

What's hot (20)

PPTX
AWS Elastic BeanstalkとAWS Lambdaのご紹介
PDF
AWS as code_and_test
PDF
はじめての Elastic Beanstalk
PDF
Awsでword pressを作ってみよう(ハンズオン)
PDF
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
PDF
Elastic beanstalk と Docker と Play
PPTX
KUSANAGIユーザグループ東京 第1回勉強会 資料
PDF
第5回rest勉強会 ログイン編
PDF
【改訂版】Amazon Web Service 基本の「き」 ~Amazon EC2でWebサーバを公開してみよう!~
PDF
Ansible night
PPTX
自社クラウドサービスをAnsibleで作った話
PDF
S16 Microsoft Azure 上での Chef 環境の構成
PDF
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
PDF
Systems manager 入門 ops jaws
PPTX
AWSマイスターシリーズ(Elastic Beanstalk)
PDF
Amazon Web Service 基本の「き」 ~Amazon EC2でWebサーバを公開してみよう!~
PDF
Chef(Server)と AWS OpsWorks(tm)の比較
PDF
AWS Systems manager 入門
PPTX
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
PPTX
Microsoft Love Java & OSS
AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS as code_and_test
はじめての Elastic Beanstalk
Awsでword pressを作ってみよう(ハンズオン)
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
Elastic beanstalk と Docker と Play
KUSANAGIユーザグループ東京 第1回勉強会 資料
第5回rest勉強会 ログイン編
【改訂版】Amazon Web Service 基本の「き」 ~Amazon EC2でWebサーバを公開してみよう!~
Ansible night
自社クラウドサービスをAnsibleで作った話
S16 Microsoft Azure 上での Chef 環境の構成
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
Systems manager 入門 ops jaws
AWSマイスターシリーズ(Elastic Beanstalk)
Amazon Web Service 基本の「き」 ~Amazon EC2でWebサーバを公開してみよう!~
Chef(Server)と AWS OpsWorks(tm)の比較
AWS Systems manager 入門
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
Microsoft Love Java & OSS
Ad

Similar to ドキュメント週末趣味のAWS Elastic Beanstalk 編 (20)

PPTX
ドキュメント週末趣味のAWS ElasticBeanstalk編 Health Cheack Type
PDF
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
PDF
20201017 JAWS-UG Fukuoka AWS Storage Gateway
PPTX
Azure/GCP使いの人にも知って欲しい(?) AWS Elastic Beanstalk
PDF
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
PDF
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
PDF
20130403 teamlab
PDF
Amazon Simple Workflow Service (SWF)
PDF
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
PDF
AWS Black Belt Online Seminar Amazon EC2
PDF
Wakame Tech #1
PDF
Ansible 2.0 のサマライズとこれから
PDF
AWS Black Belt Techシリーズ Amazon EBS
PDF
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
PDF
AWSクラウドデザインパターン(CDP) - Eコマース編 -
PDF
AWS初心者向けWebinar AWSクラウドでのWindowsの実行
PDF
勉強会1
PDF
Ansible AWXで一歩進んだプロビジョニング
PDF
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
PPTX
Elastic Beanstalkでアプリ/インフラかんたん一括管理
ドキュメント週末趣味のAWS ElasticBeanstalk編 Health Cheack Type
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
20201017 JAWS-UG Fukuoka AWS Storage Gateway
Azure/GCP使いの人にも知って欲しい(?) AWS Elastic Beanstalk
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
20130403 teamlab
Amazon Simple Workflow Service (SWF)
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
AWS Black Belt Online Seminar Amazon EC2
Wakame Tech #1
Ansible 2.0 のサマライズとこれから
AWS Black Belt Techシリーズ Amazon EBS
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWS初心者向けWebinar AWSクラウドでのWindowsの実行
勉強会1
Ansible AWXで一歩進んだプロビジョニング
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
Elastic Beanstalkでアプリ/インフラかんたん一括管理
Ad

More from Namba Kazuo (6)

PPTX
Don't think about the difficulty Let's try to connect easy to IPv6 network w...
PPTX
AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink.
PPTX
週末趣味のAWS VPC Traffic Mirroring
PPTX
週末趣味のAWS Transit Gatewayでの経路制御
PDF
Aws of the_weekend_hobby
PDF
Azure of the_weekend_hobby
Don't think about the difficulty Let's try to connect easy to IPv6 network w...
AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink.
週末趣味のAWS VPC Traffic Mirroring
週末趣味のAWS Transit Gatewayでの経路制御
Aws of the_weekend_hobby
Azure of the_weekend_hobby

ドキュメント週末趣味のAWS Elastic Beanstalk 編