- 1. スクラム開発の現場にJoinして失敗した俺が悪い話
- 2. (個人的な)AWSとAzureを触ってみて感じる違い
- 3. S3オブジェクトのARNから、バケット名とオブジェクトキーを抽出するコマンド
- 4. CodeCommitのリポジトリを特定のIPアドレスのみアクセス許可する方法
- 5. AWS認定ソリューションアーキテクトプロフェッショナル 合格備忘録
- 6. 【検証用】User dataを利用してEC2インスタンスのWordPress構築を自動化する
- 7. AWSでデプロイしてみましたが忘れてしまうのでアウトプット。
- 8. CodeBuildのDownload Rate Limitエラー対策として、DockerIDを取得しユーザー認証してビルドする
- 9. RDS Proxyを払い出す
- 10. AWS Global Accelerator とは
- 11. VMware Cloud on AWS Outposts
- 12. AWS CDK オレオレベストプラクティス集
- 13. [AWS]SAMテンプレートの記述をサポートするVSCode拡張機能を作成した
- 14. Amazon linux2にdockerをインストール
- 15. Amplify Loggerの使い方
- 16. boto3でECSを使ってブログ開設するまでを自動化
- 17. 【とりあえずハンズオン】LINE×AWS LINE Notifyに触ってみよう
- 18. docker-composeでコンテナにローカルのAWS認証情報を渡す
- 19. AWSサービスLightsailのデータベース操作方法
- 20. SageMakerとMLflowの連携
スクラム開発の現場にJoinして失敗した俺が悪い話
ほぼノー知識でスクラム開発の現場に乗り込んで失敗した話を書き記します。
「なぜスクラムは上手くいかないのか」「スクラム開発のアンチパターン」などチームにフォーカスした記事はあれど、個人にフォーカスした失敗談が見当たらなかったので書こうと思いました。
## はじめに
大前提として、その現場が悪かったとかスクラム開発が悪いとかそういったネガティブキャンペーンをするつもりではありません。
ウォーターフォールと比較して、継続的にプロダクトを作って完成に近づけていくスクラムのメリットは十分理解しているつもりです。
その中で自分が「あ、無理かも」と感じてしまった理由を記して同じ立場に立ってしまった人の救いになれればいいなと思い記します。
## 概要
AWSを基盤とするインフラ開発の現場Joinし、スクラムメンバーとしてプロダクトを開発する役目を受けました。
結論から言うと2週間のスプリントでベロシティを上げることが出来ず周りに迷惑をかけ辞退してしまいました。
ざっくり原因は下記のようなことが考えられます。・一つのタスクの時間見積をすることが出来ない。
・タスク完了に直接関係ない作業に時間をかけ
(個人的な)AWSとAzureを触ってみて感じる違い
クラウド初心者がAWSとAzureを触っていて感じた個人の感想を連ねます。
#1.価格
オプションの選び方も項目も違い細かく比較するのは難しいが、体感AWSのほうが若干安い感じがする。**◆仮想マシンLinux**
– 2vCPU
– 8GB RAM
– 50GBストレージ
– オンデマンド利用(従量課金)|AWS|Azure|
|:–|:–|
|$69.07/月|$94.17/月|
|アジアパシフィック(東京)|Japan East|
|インスタンスタイプ:t4g.large|インスタンスタイプ:D2v3|
|使用率:100%/月|730時間(1カ月)|
|EBS(汎用SSD):50GB|D2v3インスタンスタイプに50GBの一時ストレージ付き|**◆仮想マシンWindows Server**
– 2vCPU
– 8GB RAM
– 50GBストレージ
– オンデマンド利用(従量課金)|AWS|Azure|
|:–|:–|
|$69.61/月|$161.33/月|
|アジアパシフィック(東京)|Japan East|
|インスタンスタイプ:t3a.lar
S3オブジェクトのARNから、バケット名とオブジェクトキーを抽出するコマンド
# 目的
S3オブジェクトのARN (例)`arn:aws:s3:::example-bucket/example-folder/example-subfolder/example-file.txt`から、
– バケット名:`example-bucket`
– オブジェクトキー:`example-folder/example-subfolder/example-file.txt`を抽出する。
# コマンド
事前準備として、`S3_OBJECT_ARN`にS3オブジェクトのARNを設定する。
“`bash
S3_OBJECT_ARN=arn:aws:s3:::example-bucket/example-folder/example-subfolder/example-file.txt
“``RESULT`に、`sed`で抽出したものを配列として設定する。
`S3_BUCKET_NAME`に`RESULT`配列の0番目を設定する。
`S3_OBJECT_KEY`に`RESULT`配列の1番目を設定する。“`bash
RESULT=($(echo ${S3_OB
CodeCommitのリポジトリを特定のIPアドレスのみアクセス許可する方法
#はじめに
CodeCommitでgit管理する際、どのIPアドレスでもコミットできると、ユーザー名とパスワードが漏れた場合、リポジトリがアクセスされる可能性がありますので、特定のIPアドレスのみが使用できるようにIAMロールを設定します。#CodeCommitのセットアップ
下記の記事を参考に、リポジトリをgit cloneできるところまで進めます。
一箇所変更点があり、IAMロールは、`AWSCodeCommitPowerUser`を使用しています。
[CodeCommitをHTTPSとパスワード認証で使いセットアップする](https://www.hacknotes.jp/blog/codecommit-guide/)#IAMポリシーにIP制限をかける
IP制限をかける方法は、`AWSCodeCommitPowerUser`のポリシー内容をベースに、IP制限をかけたポリシーを新たに作成し、commitユーザーにアタッチするだけです。新しくポリシーを作成します。
作成画面から、`管理ポリシーのインポート`をクリックし、`AWSCodeCommitPowerUser`管
AWS認定ソリューションアーキテクトプロフェッショナル 合格備忘録
# 概要
AWS認定ソリューションアーキテクトプロフェッショナルに合格したので、備忘録と次回に向けてのメモをする。
# 始めにやること
試験のページを見る。
https://aws.amazon.com/jp/certification/certified-solutions-architect-professional/
試験の予約、試験ガイド、試験のサンプル問題、無料の簡易的なデジタルトレーニングのリンクが記載されている。
あまり的確でないホワイトペーパーやよくある質問のリンクが記載されているが、公式から出ている情報のため試験のページ全体を一度見ておくとよい。## 試験の予約
試験の48時間前までなら試験の予約時間を変更可能で、予約日時変更は2回まで認められていると、申し込む際の `Amazon Web Servicesのポリシー` に記載されている。
取り敢えず予約して、不安なら後から試験日程を変えることが出来る。私は試験三日前に不安になって一週間試験日を遅らせた。
## 試験ガイドの確認
下記のPDFに試験ガイドが記載されている。結構大事なことが書いてある
【検証用】User dataを利用してEC2インスタンスのWordPress構築を自動化する
# 注意点
本番稼働する WordPress を想定していません。
検証してすぐにインスタンスを削除するような用途を想定しています。# 手動構築の流れ
1. Amazon Linux 2 でインスタンス起動
– インターネットゲートウェイが存在するパブリックサブネットで、パブリックIPを有効にして起動
– セキュリティグループのインバウンドルールで 80 番ポートを許可
– ssh接続ができるように 22 番ポートを自分のIPアドレスで許可 または Session Manager で接続できるようにインスタンスプロファイルに適切な権限を持つ IAM ロールをアタッチ
– インスタンスに接続してコマンドを入力し、 WordPress に必要な環境( DB , Apache , PHP )をインストール
– WordPress インストールパッケージをダウンロード
– ブラウザからインスタンスのパブリックIPを入力し、必要事項を入力してWordPress のインストールを開始する上記はほとんど以下のチュートリアルの内容に沿っています。
## 参考チュー
AWSでデプロイしてみましたが忘れてしまうのでアウトプット。
初めてAWSを使ってデプロイしてみましたが、設定するものが多くて困ることが多かったです、、、
いろんな記事やサイトを参考にしたので、それらを嚙み砕いて書けたらいいとおもいます。# デプロイをはじめるまえに
### AWSの理解
AWSにはたくさんのサービスがあります。全部覚える必要はないと思いますが、自分が使うサービスの理解はしたほうがいいと感じます。
・[AWS公式サイト](https://aws.amazon.com/jp/?nc2=h_lg)
### AWSでアカウントを作成しよう
・[アカウント作成手順](https://aws.amazon.com/jp/register-flow/)
### AWSバージョンの違い
作成時期によって画像中にあるものの配置が違う場合があります。
その際は、ご自身で調べてください。(2021年10月 作成)# EC2とは
EC2(Amazon Elastic Compute Cloud)は、AWSが提供する仮想サーバーです。EC2は仮想環境をクラウド上にすばやく作ることができます。
環境構築を素早くできるのですごく便利です。
・[E
CodeBuildのDownload Rate Limitエラー対策として、DockerIDを取得しユーザー認証してビルドする
#はじめに
CodePipelineのCodeBuildでの工程で、以下のエラーがたびたび発生しました。“`
toomanyrequests: You have reached your pull rate limit.
You may increase the limit by authenticating and upgrading:
https://www.docker.com/increase-rate-limit
“`DockerHubでは、匿名ユーザによるDockerHubからのコンテナイメージの呼び出し回数は、以下のような制限があります。
|設定 |意味|
|—|—|
| 無料プラン(匿名ユーザー) | 100 pull/6時間あたり|
| 無料プラン(認証ユーザー) | 200 pull/6時間あたり |
| Pro | 無制限 |
| Team | 無制限 |匿名ユーザーは、 IP アドレス単位で回数制限がかかるため、CodeBuildからの実行では自分が行った回数に関係なく制限に引っかかってしまうため、今回のようなエラーが出て
RDS Proxyを払い出す
# サブネットグループを作成
・RDSコンソールでサブネットグループを作成
・2つ以上のサブネットが必要# Aurora(MySQL)を払い出す
・データベース作成方法を選:標準作成
・エンジンタイプ:Aurora
・エディション:Amazon Aurora MySQL 互換エディション
・可用性と耐久性:Aurora レプリカを作成しない
・VPC:作成しているVPCを選択
・サブネットグループ:作成しているサブネットグループを選択
・セキュリティグループ:MYSQL/Aurora 3306ポートを開放しているセキュリティグループを選択# Secrets ManagerにAuroraへの接続情報を登録
・シークレットの種類を選択:RDSデータベースの認証情報
・Aurora作成時に設定したユーザー名とパスワードを指定# IAMロールを作成
・PDS ProxyからSecrets Managerのシークレットを取得できるようIAMポリシーを作成
“`
{
“Version”: “2012-10-17”,
“Statement”: [
AWS Global Accelerator とは
## 勉強前イメージ
リージョン超えてのLB的な?
## 調査
### AWS Global Accelerator とは
ALB、NLB、EC2の前段に置いてアプリケーションの可用性とパフォーマンスを改善するサービスです。
まず、ALB、NLB、EC2はGlobal Acceleratorにおいて `エンドポイント` として扱われ、
エンドポイントはエンドポイントグループというものに属します。
基本的には特定リージョンにエンドポイントグループを作成しますが、リージョンを跨いでバランシングすることも可能なので、
リージョン間でのアプリケーションのバランシングも可能です。
EC2に置いてALBなどがLBの役目をしますが、ALBに置いてはGlobal AcceleratorがLBのような役目を行います。### AWS Global Acceleratorの言葉(他のサービスでも使うことはあります)
– エンドポイント
上記に記載の通り、 `ALB、NLB、EC2` のこと
– エンドポイントグループ
上記に記載の通り、エンドポイント(ALB、NLB、EC2)のグループ
VMware Cloud on AWS Outposts
# はじめに
[VMworld 2021](https://blogs.vmware.com/cloud/2021/10/05/vmware-cloud-on-aws-whats-new-in-oct-2021/)でGAが発表されたVMware Cloud on AWS Outposts(以降VMC Outpostsと記載)について記事投稿時点での情報をまとめてみました!# 目次
1. [AWS Outposts](#aws-outposts)
1. [VMware Cloud on AWS Outposts](#vmware-cloud-on-aws-outposts)
1. [AWS Outpostsラック](#aws-outpostsラック)
1. [VMC Outpostsのユースケースと利点](#vmc-outpostsのユースケースと利点)
1. [EC2ベアメタルインスタンスタイプ](#ec2ベアメタルインスタンスタイプ)
1. [サイジング](#サイジング)
1. [費用試算](#費用
AWS CDK オレオレベストプラクティス集
仕事でAWS CDKを使っています(Python)。
とても便利なのですが、適当に書いていたのですぐツラくなりました。
そこでオレオレベストプラクティスをまとめました。誰かの参考になれば嬉しいです。
(あくまで俺のベストプラクティスです。他の人にとってベストかどうかわかりません。公式と意見が違うかもしれません。話半分に聞いてください。)
# CDK以外のドキュメントも参照する
[公式ドキュメント](https://docs.aws.amazon.com/cdk/api/latest/python/modules.html)だけでは説明が不十分なことがあります。[CloudFormation](https://docs.aws.amazon.com/cloudformation/)はもちろん[boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)のドキュメントも参照しましょう。例えば[SageMakerCreateTrainingJob](https://docs.aws.amazo
[AWS]SAMテンプレートの記述をサポートするVSCode拡張機能を作成した
# 成果物
![使い方のgif](https://storage.googleapis.com/zenn-user-upload/893d87f42267ec05ccd0d557.gif)
github:https://github.com/engineer-taro/aws-sam-snippets-VSCode
VSCode:https://marketplace.visualstudio.com/items?itemName=engineer-taro.aws-sam-snippets# 前提
## SAMのtemplate.yamlを書くのが大変
AWS SAMを利用してデプロイしているのですが、SAMのテンプレートを書くとき、毎回過去に使っていたテンプレートを参考にしながら書くか、公式ドキュメントを参考に書くか、非効率な方法を取っていました。
これを機に、どうせならVSCodeの拡張機能を作ってみるか、と思い立った次第です。## SAMテンプレートを書くときどうしているか聞いてみた
ひとまず、他の方にSAMテンプレートの記述の効率化について聞いてみたところ、以下の様で
Amazon linux2にdockerをインストール
個人開発のデプロイにAWSをEC2を使用する予定だが、そういやdocker入れてなかったのでInstallした。
コマンドもある程度理解して打つようにしたので、その備忘録。参考
[Amazon Linux2にDockerをインストールする – Qiita](https://qiita.com/reoring/items/0d1f556064d363f0ccb8)“`jsx
sudo yum install -y docker
“`-yはインストール時に yse or noを聞かれることがあるけど、-yつけると、それら全てにyesと自動で答える設定。
なくても困らんけど、あると楽って解釈。yumは、rpmベースの対話型パッケージマネージャ。
依存関係の分析やシステムの更新を自動的に行ってくれる。“`jsx
sudo usermod -a -G docker ユーザー名
# usermodはユーザー情報を変更するコマンド。
“`usermodはユーザー情報を変更するコマンド。
-a -Gの部分グループ指定のことらしいが、このコマンドをここで打つ意味はよく
Amplify Loggerの使い方
AWS Amplifyの utilitiesに loggerがある。
https://docs.amplify.aws/lib/utilities/logger/q/platform/js/## 使い方
“`javascript
import { Logger } from ‘aws-amplify’;const logger = new Logger(“my-logger”);
logger.warn(“warning message”);
“`デバッグコンソールにはこのように出力される。
“`terminfo
[WARN] 56:32.69 my-logger – warning message
“`注意点としては、インスタンスに指定されているレベル以上のログしか出力されないということ。
ログレベルは上から順に以下のようになっている。– ERROR
– WARN
– INFO
– DEBUG
– VERBOSEデフォルトのログレベルはWARN。
例えば、以下のようなloggerがある場合、WARN・ERRORのログでないと出力されないので
boto3でECSを使ってブログ開設するまでを自動化
# 開発前の状態
* 今後の仕事でAWSを触ると聞き,知識ゼロなのでヤバみを感じた
* とりあえず本を買って勉強して雰囲気は掴んだ気になっている
* https://www.amazon.co.jp/Amazon-Web-Services-基礎からのネットワーク-サーバー構築/dp/4822237443
* GUIぽちぽちすればやりたいことはできると感じたが,さらなるステップアップをするためにはどうしたらいいか悩んだ
* これまでの仕事でAnsibleなどによる環境構築自動化や,dockerなどのコンテナ技術のありがたみは非常に実感していた
* なので,
* 環境設定をすべて自動化し
* EC2上での作業を予めDockerImage化しておいてデプロイところまで頑張ってみたいと思った# コード
https://github.com/fugashy/aws_network_and_server_sample
## やっていること
* VPCからECSのサービス開始までを全自動化
* VPC,Subnetなどを依存関係に注意して作成していく
【とりあえずハンズオン】LINE×AWS LINE Notifyに触ってみよう
# LINE Notify に QiitaのRSSを流してみよう!!!
## はじめに
この記事では
AWS のサービスと LINE Notify 連携させて
Qiita の RSS を返してくれる LINE bot を作成するハンズオンです。ベストプラクティスや間違いがあれば書き直していく予定です。
今回は前回の Bot の製作でお世話になりました
[LINE Developers Community](https://linedevelopercommunity.connpass.com/)
協力の元、ハンズオンを作成しております。
ご協力ありがとうございます。ご興味のある方はぜひ、お気軽にご参加ください!!!
## 解説動画
記事の解説動画です。
AWSサービスLightsailのデータベース操作方法
#AWSサービスLightsail
Amazon Lightsailは、AWSが提供しているVPS(Virtual Private Server:仮想プライベートサーバー)サービスです。#データベースの操作方法
Linux/Unix OSとLAMP(PHP 7)アプリのインスタンスを作成している前提です。まずは、インスタンスにアクセスします。
ターミナルでもいいしLightsailの管理画面でもOKです。そこで、下記のコマンドを実行して、データベースのパスワードを調べます。
出てきたパスワードをコピーします。“`terminal:コマンド
cat bitnami_application_password
“`
![スクリーンショット-2021-10-22-18.43.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710589/5b235c5a-e579-58a6-e815-f0d666fb0d97.png)
パスワードがわかったら、mysqlコマンドを使ってアクセスします。
SageMakerとMLflowの連携
# はじめに
こちらは、 [Managing your machine learning lifecycle with MLflow and Amazon SageMaker](https://aws.amazon.com/blogs/machine-learning/managing-your-machine-learning-lifecycle-with-mlflow-and-amazon-sagemaker/)を参考にして実際に作成したものです。
**ただし、このブログの紹介で作成しているのは、MLflowをECS上にDeployし、S3とRDSをそれぞれArtifact store、backendストアにするところまでなので、 SageMakerもまとめて作りたい場合は[こちら](https://qiita.com/nakamasato/items/feb91c806225df98180a)を!**
MLflow初であれば→[MLflow 基礎](https://qiita.com/nakamasato/items/6337e7f543535ecb9062)
![im