- 1. AWSのECインスタンスのSSHポートフォワーディングに対する振る舞いメモ
- 2. ECS Execする時のコマンドをちょっと簡単にする
- 3. Docker 1.7環境下でのECRのプライベートリポジトリの利用方法
- 4. DVA対策としてのDynamoDB掘り下げ基本編
- 5. Solutions Architect – Professional (SAP-C01) を取得しました
- 6. AWS Certificate ManagerでSSL証明書を発行したい
- 7. CloudWatchのアラートをSNS経由でLambdaを実行し、Slack通知
- 8. AWS Route53でドメインを取得したい
- 9. Gluejob pythonScriptでmongo Atlasからデータ取得をしてみた
- 10. AWS EC2とS3でライブ配信環境構築
- 11. AWSのアナリティクス系サービスの学習(Amazon Athena編)
- 12. AWS Route53を使ったGithub Pagesのカスタムドメイン設定
- 13. ECS Fargateのコンテナ内にECS Execでアクセスする方法
- 14. スクラム開発の現場にJoinして失敗した俺が悪い話
- 15. (個人的な)AWSとAzureを触ってみて感じる違い
- 16. S3オブジェクトのARNから、バケット名とオブジェクトキーを抽出するコマンド
- 17. CodeCommitのリポジトリを特定のIPアドレスのみアクセス許可する方法
- 18. AWS認定ソリューションアーキテクトプロフェッショナル 合格備忘録
- 19. 【検証用】User dataを利用してEC2インスタンスのWordPress構築を自動化する
- 20. AWSでデプロイしてみましたが忘れてしまうのでアウトプット。①
AWSのECインスタンスのSSHポートフォワーディングに対する振る舞いメモ
# AWS EC2にSSHでリモート/ローカルフォワーディングして気づいたこと
プライベートアドレスで立ち上げた`計算機1(Ubuntu)のHTTP(80)`を、SSH(22)だけ開いている`AWS EC2の8080ポート`へリモートフォワーディングして、そこへプライベートアドレスの`計算機2(Windows)の8080ポート`へローカルフォワーディングしようと考えた。– 計算機1:Ubuntu ← private address(IP1)
– 計算機2:Windows ← private address(IP2)
– 計算機3:AWS EC2 ← グローバルIP(外向き:IP_AO)+private IP(内向き:IP_AI)
– EC2はUbuntuを採用、SSH(22)しかポートは開いてない
– EC2のセキュリティポリシー(インバウンド) もSSH(22)しか開いてない## 実験1
まずはリモートフォワーディング:
“`shell_session:計算機1(Ubuntu)
$ ssh -R IP_AO:8080:localhost:80 user
ECS Execする時のコマンドをちょっと簡単にする
# 使用方法
“`bash
aws-ecs-exec Sample-Cluster task-id container-name
“`# bash関数
“`bash
function aws-ecs-exec() {
command aws ecs execute-command –cluster $1 \
–task $2 \
–container $3 \
–interactive \
–command “/bin/sh”
}
“`# 説明
毎回コンテナに入るときのコマンドをぐぐりながらやってたので、bash関数化したら楽かなと思いました。
subnetの指定はいるんだっけ?とrun-taskとごっちゃになったりしてたので。。`–command “/bin/sh”`この箇所は動いているDockerイメージによって変わると思うので適宜変更してください。
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/ecs-exec.html
Docker 1.7環境下でのECRのプライベートリポジトリの利用方法
Docker 1.11 以上なら
https://github.com/awslabs/amazon-ecr-credential-helper を使うことで、docker-login が 普通にECRに対しても認証できます。今回の方法は、一旦 `docker login` したあとも、12時間経過したら再度 `docker login`を叩かないといけません。
本当になんらかの理由でアップデートできない場合、というのが今回の内容です。### get-login-password を使った方法
aws-cliをv2にあげるのは簡単なのでとりあえずaws-cli2をあげておく
docker 1.7 だと `-password-stdin` というオプションは存在しないが、こんな感じでいける“`
docker login –username=AWS –password=`aws ecr get-login-password –profile profile` –email=shida@example.com 0123456789.dkr.ecr.ap-north
DVA対策としてのDynamoDB掘り下げ基本編
## はじめに
DVA取得に向けてのDynamoDBをBlack Beltや過去のセッション等を参考に少しまとめてみました。
## DynamoDB とは?
フルマネージドな NoSQLDB。
特徴としては以下の通り。– 3 箇所の AZ にデータが自動的にレプリケーションされる仕様(=Single Point Of Failure の心配がない)
– データは必要に応じて自動的にパーティショニングされる
– ストレージの容量制限なし(=従量課金制であるが、ディスクやノードの増設は自動で行われる)
– スループットはそれぞれ読み書きごとにキャパシティを割り当てる方式(プロビジョンドスループット)でその割り当ての総量で従量課金、オートスケーリングも可。
– 基本的にはプロビジョンドで使うが、オンデマンドでの利用も可。主にどうしてもキャパシティを予測できない場合のサンプル期間としての利用に適している
– トランザクション機能や多少のクエリ機能はあるが、RDB に比べるとそれらの点では劣る反面上記のようにスケーラビリティの面では優れている## DB としての特徴
![2021
Solutions Architect – Professional (SAP-C01) を取得しました
2021/10/23に SAP を受験し、ぎりぎりで合格できました。
![Desktop-screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780549/9b71b504-b46d-9d8b-8374-2857d6bc7b52.png)試験対策としては、「WEB問題集で学習しよう」と「AWS認定ソリューションアーキテクト-プロフェッショナル ~試験特性から導き出した演習問題と詳細解説」をそれぞれ解いて、分からなかったサービスについてあとで復習するといった感じでした。DOP や specialty で問われるサービスも、難易度を下げて出題されるので、SAP を受ける前にそれらの資格を取っておくと、SAP 試験で点数を稼ぐことができるのではないでしょうか。
## Kinesis Data Streams
– [「Amazon Kinesis Data Streams のよくある質問」](https://aws.amazon.com/jp/kinesis/data-streams/
AWS Certificate ManagerでSSL証明書を発行したい
# 実現したいこと
Route53でドメインを取得したので、AWS Certificate ManagerでSSL証明書を発行したい
# 手順
1. AWSのコンソールでCertificate Managerを開く
2. 「証明書をリクエスト」をクリック
3. 今回は「パブリック証明書」の発行を選択して、「次へ」をクリック
4. 完全修飾ドメイン名(例: `www.example.com`)を入力。検証方法はDNS検証を選択
5. 「リクエスト」をクリックすれば証明書の申請ができる
6. 証明書一覧から作成した証明書詳細画面を確認し、ドメインからRoute53でCNAMEのレコードを作成しておく
7. 証明書のステータスが発行済になったら完了# 備考
## DNSとは
– **Domain Name System**の略
– IPアドレスとドメイン名の紐付けする仕組み## CNAMEとは
– **Canonical Name record**の略
– DNSで定義されるそのドメインについての情報の種類の一つ
– あるドメイン名やホスト名の別名を定義する
– 別名は「
CloudWatchのアラートをSNS経由でLambdaを実行し、Slack通知
#はじめに
今回はメモ書き程度になります。
題名の通り、構築していきます。`Webhook URL`をKMSで暗号化する場合は、下記の記事通りにできます。
[【AWS】CloudWatchアラーム通知をLambdaでSlack投稿する](https://www.geekfeed.co.jp/geekblog/aws_cloudwatch_to_slack/)ただ、KMSはお金がかかりますし、それほどセキュリティー対策が必要なければ、Lambdaの環境変数に、`Webhook URL`を設定します。
その場合のコードのみ参考記事とは異なりますので、コードを記載しておきます。
また、参考記事の①KMSを作成、②IAMを作成は不要です。#コード
環境変数
`slackChannel`:`slackのチャンネル名`
`hookUrl `:`Webhook URL`“`python
import boto3
import json
import logging
import osfrom base64 import b64decode
from urllib.reques
AWS Route53でドメインを取得したい
# 実現したいこと
個人開発でドメインはRoute53を利用して取得したい
# 手順
1. ダッシュボードでドメインの登録を選択
2. ドメイン名で検索して「チェック」をクリック。「利用できるかどうか」と「お値段」をチェック
3. 選択したドメインで良ければ「カートに入れる」をクリック
4. 登録期間と料金を確認して、「続行」をクリック
5. 「ドメインのお問い合わせ詳細」で必要事項をすべて入力。入力が完了したら「続行」をクリック
6. 「連絡先の詳細の確認」で入力内容に間違いがないか確認。ドメインの自動更新は有効化。規約に同意
7. 登録したメールアドレスにメールが届いているので認証確認。ステータスを更新
8. 「注文を完了」をクリックするとドメインの手続きが保留中に。ゆっくり待ちましょう
9. 「登録済みドメイン」にドメインが追加されているのを確認できたら手続き完了# 備考
## 「Route53」でドメインを取得するメリットとデメリット
### メリット
– なんといっても**Amazon**であること(可能な限り使う会社をインフラを統一したいが、特に他のサービス
Gluejob pythonScriptでmongo Atlasからデータ取得をしてみた
## 本記事について
この記事では, AWS GlueJobでmongoDBに接続してデータを取得し, s3に保存する処理をまとめて
記述していきたいと思います.## 前提条件
本来glueでmongo Atlasを接続する際, その旨を設定する必要がありますが
本記事ではできていることを前提とします.(後日詳しく記入)## アーキテクチャ図
![スクリーンショット 2021-10-24 14.27.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567360/efe12789-ac9b-1dc7-12df-6bbccc0a26ab.png)## gluejobで作成したコード
“`python:glue_sample.py
import pandas
import pymongo
import boto3
from pymongo import MongoClient”’s3に送るプログラム”’
def upload_data(dist_bucket, s3_file_p
AWS EC2とS3でライブ配信環境構築
# 内容
– EC2インスタンスにnginx rtmpモジュールインストール
– hlsでブラウザから見れるように
– nginxをhttps化
– 配信用静的ページをS3にホスト# EC2インスタンス構築
– パブリックサブネットにEC2インスタンスを作成したらSSHログインして以下の通りnginx rtmpモジュールを使えるように構築する。(詳しくは参考記事参照)
“`bash
sudo su
yum update
yum groupinstall “Development Tools”
yum -y install pcre-devel zlib-devel openssl-develcd /usr/local/src/
wget http://nginx.org/download/nginx-1.8.0.tar.gz
sudo wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -zxvf nginx-1.8.0.tar.gz
wget https://github.com/arut/nginx-rtmp-
AWSのアナリティクス系サービスの学習(Amazon Athena編)
# この記事の目的
学習用に、AWSのアナリティクス系サービスの概要を整理しました。
わたしがクラウドエンジニアとして、該当サービスを使ってシステムを構築するために最低限抑えておこうと思ったことを中心に記載しています。
参考にした情報は、最後にリストしましたので、もっと詳しい情報や網羅的な情報を知りたい方の参考になれば幸いです。* Amazon Athena(この記事)
* Amazon EMR(記事を書いたらリンク追記します。)
* Amazon Kinesis Data Streams(記事を書いたらリンク追記します)
* Amazon Kinesis Fire Hose(記事を書いたらリンク追記します。)
* Amazon QuickSight(記事を書いたらリンク追記します。)# Amazon Athena
## どんなサービス?
S3にあるデータ(およびさまざまなデータソース)に対して標準SQLを使用して簡単に分析可能とするインタラクティブなクエリサービス。## 主なユースケース
### 1.データアナリストによるアドホックな分析
アドホック(ad hoc)な分析
AWS Route53を使ったGithub Pagesのカスタムドメイン設定
# Prerequisite
自分でGithub Pagesを持っている
https://github.com/nakamasato/nakamasato.github.io/tree/ead78609599ff6de87a877cd2d6143e6f2304f11
自分のドメインをGithub Pagesに設定する
# 1. Domain購入
お名前ドットコムで買った。
https://www.onamae.com/
nakamasato.com
# 2. Github PagesのDomain設定
https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site
この中でDNSレコードの設定があるので、[AWSのRoute53](https://aws.amazon.com/route53/)を使用
# 3. AWSのRoute53でHostedZ
ECS Fargateのコンテナ内にECS Execでアクセスする方法
#はじめに
ECS Execの機能を使って、Fargateのコンテナにアクセスする方法を記載します。ECS Execによるコンテナへのアクセスは、以下の4つを行うことで実行できます。
– クライアントサーバーには、ECS Exec コマンドを実行するための AWS CLI がインストールされていること
– クライアントサーバーには、AWS CLI 用の `Session Manager plugin` がインストール
– `enable-execute-command`を使い、Fargateのタスク定義の`enableExecuteCommand `を有効にすることで、ECS Exec の機能が有効になります。
– コンテナがSystems Managerと連携するため、FargateのタスクロールにIAM権限を付与します。
下記に記事に、詳細な理由が記載されています。https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/ecs-exec.html
>ECS Exec 機能には、マネージド型 SSM エ
スクラム開発の現場にJoinして失敗した俺が悪い話
ほぼノー知識でスクラム開発の現場に乗り込んで失敗した話を書き記します。
「なぜスクラムは上手くいかないのか」「スクラム開発のアンチパターン」などチームにフォーカスした記事はあれど、個人にフォーカスした失敗談が見当たらなかったので書こうと思いました。
## はじめに
大前提として、その現場が悪かったとかスクラム開発が悪いとかそういったネガティブキャンペーンをするつもりではありません。
ウォーターフォールと比較して、継続的にプロダクトを作って完成に近づけていくスクラムのメリットは十分理解しているつもりです。
その中で自分が「あ、無理かも」と感じてしまった理由を記して同じ立場に立ってしまった人の救いになれればいいなと思い記します。
## 概要
AWSを基盤とするインフラ開発の現場Joinし、スクラムメンバーとしてプロダクトを開発する役目を受けました。
結論から言うと2週間のスプリントでベロシティを上げることが出来ず周りに迷惑をかけ辞退してしまいました。
ざっくり原因は下記のようなことが考えられます。・一つのタスクの時間見積をすることが出来ない。
・タスク完了に直接関係ない作業に時間をかけ
(個人的な)AWSとAzureを触ってみて感じる違い
クラウド初心者がAWSとAzureを触っていて感じた個人の感想を連ねます。
#1.価格
オプションの選び方も項目も違い細かく比較するのは難しいが、体感AWSのほうが若干安い感じがする。**◆仮想マシンLinux**
– 2vCPU
– 8GB RAM
– 50GBストレージ
– オンデマンド利用(従量課金)|AWS|Azure|
|:–|:–|
|$78.27/月|$94.17/月|
|アジアパシフィック(東京)|Japan East|
|インスタンスタイプ:m6g.large|インスタンスタイプ:D2v3|
|使用率:100%/月|730時間(1カ月)|
|EBS(汎用SSD):50GB|D2v3インスタンスタイプに50GBの一時ストレージ付き|**◆仮想マシンWindows Server**
– 2vCPU
– 8GB RAM
– 50GBストレージ
– オンデマンド利用(従量課金)|AWS|Azure|
|:–|:–|
|$154.92/月|$161.33/月|
|アジアパシフィック(東京)|Japan East|
|インスタンスタイプ:m5a.la
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