こんにちは、SAの舟崎です。
2017年5月24日に開催いたしましたAWS Black Belt Online Seminar AWS 体験ハンズオン~AWS Elastic Beasntalk デプロイ編~ 資料を公開いたしました。
また頂いたご質問と回答も併せてご覧ください。
Q: Elastic Beanstalkを使用する場合はS3を使用するということが前提ということでしょうか?コードをGitなどのリポジトリで管理している場合は使用できないということでしょうか?
A: いいえ、Git などのリポジトリと連携してご利用いただくことが可能です。ただし、その場合でも AWS Elastic Beanstalk へデプロイするソースコードは、Amazon S3 にアップロードされ、バージョンとして管理されます。Git との連携についての詳細は以下のドキュメントをご確認ください。
- Git での EB CLI の使用
http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb3-cli-git.html
また、フルマネージド型の Git レポジトリである AWS CodeComit を連携いただくことも可能です。
- AWS CodeCommit での EB CLI の使用
http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb-cli-codecommit.html
Q: ebコマンドが見つからないというエラーが出ます。どうしたらよいでしょうか?
A: pip install --upgrade --user awsebcli
は実行済でしょうか?こちらでebコマンドがインストールされます。
Q: keypairの選択を間違えました。やり直すにはどうしたらよいでしょうか?
A: keypairの選択を間違えた場合ですと、申し訳ございませんが、インスタンスを作り直し頂く必要があります。
Q:EB CLIを使用してデプロイする場合、どこまで自動化することが可能なのでしょうか。(例えば、今回の使用しているコマンドそのものをLambda等を使用して自動化する等)
A: はい、EB CLIを使って実行された内容は自動化が可能ですが、今回対話形式で実行した部分を対話形式ではなく、事前にオプション等で指定することで自動実行が可能です。Lambdaをお使いになる場合は、Lambdaのタイムアウトが5分のため、その時間で収まる範囲であれば可能と考えております。また、EB CLI以外でもさまざまな言語に対応したAWS SDKもありますので、Lambdaで使う場合は、そちらのAPIを使う方法もあるかと存じます。
Q: 「Select a load balancer type」の選択がありましたけど、ワーカー環境の場合LBは不要かと思いますが、LBなしは選択できるのですか?
A: ワーカー環境の場合は、ロードバランサーは作成されません。 ウェブサーバー環境の場合でも、開発環境などで ELB がふようのばあい 、eb createコマンド実行時に--singleオプションを付けることで、LBなしで作成可能です。
Q: eb createコマンドを実行することで、ローカルのソースがアップロードされ、PHPアプリケーションが公開されているということでしょうか?
A: はい、ローカルのソースコードがzipで圧縮され、S3にアップロードされ、こちらをBeanstalk環境から取得しにくる形となります。
Q: Elastic Beanstalkで作成したEC2はデフォルトでは、パブリックサブネットで作成されるのでしょうか。プライベートサブネットで作成することは可能でしょうか?
A: はい、可能です。eb create実行時にオプションでサブネットを指定可能ですので、そちらでプライベートサブネットを指定頂く形です。ただ、プライベートサブネットに配置した場合でもアウトバウンドでインターネットに通信できる必要がありますので、その場合にはNAT等ご利用頂くなどする必要があります。
Q: Elastic Beanstalk で古いバージョンにロールバックもできますか?
A: はい、可能です。バージョンを指定することでロールバックが可能です。
Q: Elastic BeanstalkでS3にアップロードしたコードはマネジメントコンソール上のS3で確認することは可能でしょうか?
A: はい、S3のマネージメントコンソールでコードを確認可能です。コードとバージョンの関連付けは、Elastic Beanstalkのサービス側で保持しています。そのため、Elastic BeanstalkのマネジメントコンソールやAPIで確認頂く形となります。
Q: CloudFormationを利用していますが、Elastic Beanstlkの優位性は、アプリのバージョン管理が可能と認識していますけど、その他、何かありますか?
A: AWS Elastic Beanstalk ではご認識の通り、ソースコードのデプロイ、バージョン管理などが可能です。それに加えて、Web サーバ、アプリケーションサーバなどのミドルウェアの設定、Amazon EC2 や Auto Scaling 設定、拡張モニタリングのサポートなどもあらかじめ行ってくれます。ですので、AWS Elastic Beanstalk が提供する定番構成にフィットするのであれば、AWS Elastic Beanstalk のご利用をお勧めします。
Q: アプリケーションの作成(eb init)は、例えば、Apacheのドキュメントルート配下にアプリをデプロイする場合、Apacheのドキュメントルート直下でアプリケーションの作成(eb init)を実行する認識で正しいですか?
A: ドキュメントルート配下にデプロイするコードが、プロジェクトディレクトリ(eb init によって設定を行うディレクトリ)にあればよいので、必ずしも Apache のドキュメントルートにて eb init を行う必要はございません。
Q: eb create実行後、EC2インスタンスが作成されましたが、NameタグにはApplicationnameが適用されるのでしょうか?また、別のタグを付与することは可能なのでしょうか?
A: デフォルトで、Key=Name に対して、Values=「環境名」が付与されます。その他のタグをご利用いただく場合は、eb create 時に --tag オプションをご使用ください。
- Elastic Beanstalk 環境リソースのタグ付け
http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.tagging.html
Q: Elastic Beantalkでのアプリケーションのデプロイ(eb deploy)にかかる所要時間は、何に依存しますか?
A: デプロイにかかる時間としては、デプロイするコードやデプロイポリシーなどに依存します。下記のドキュメントに各デプロイポリシーの比較について記載がありますので、ご確認ください。
http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.deploy-existing-version.html#w28aac17c37c31
Q: eb terminateで削除を行った時、マネジメントコンソール上では(終了済み)となっておりますが、こちらは時間経過で消える形になるのでしょうか?
A: はい、マネジメントコンソール上にも記載があるかと思いますが、約1時間表示されます。
Q: Elastic Beanstalkで本番環境で利用している事例はありますか?
A: はい、多くの事例がございます。例えば、AWS 導入事例のページにて Retty 様の事例が紹介されていますので、ご覧ください。
- AWS 導入事例:Retty株式会社
https://aws.amazon.com/jp/solutions/case-studies/retty/
今後のオンラインセミナーのスケジュールは こちら です。多くの方のご参加をお待ちしております。