- 1. 今さら聞けないAWSでロードバランサーを使ったWEBサイト構築手順(DNS設定&SSL証明書発行編)
- 2. AWS App RunnerとAmazon ECRでGeoServerを構築してみた
- 3. ラズパイとAWS IoTを使った見守りシステム自作で学んだこと(8)template.yamlで定義するAWSリソースの説明とsam deploy
- 4. [IT系用語] スループットとレイテンシ
- 5. GCPの主要サービスをAWSに当てはめて考えてみた。
- 6. AWSでWindowsサーバを1からたててMacからRDP接続してみるまで
- 7. 【AWS/Docker】AWS上のUbuntuサーバーにDocker Engineをインストールする
- 8. 停止したEC2の情報取得
- 9. 【AWS】.syncを使わずにStep FunctionsからGlueJobを実行してみた【性能改善】
- 10. STAGING環境でデプロイした時のSSHKit::Command::Failed: git ls-remote git@github.com:velljp/circus-vell.git 解決法
- 11. AWS認定クラウドプラクティショナー試験のためにやったこと
- 12. AWS Lambda を時刻起動する
- 13. docker-compose + capistrano
- 14. AWS-SAA(C03)試験の対策
- 15. AWS lambda nodeをローカルでdocker開発して、イメージデプロイする
- 16. AWS Organizationsの使用事始め
- 17. デフォルトVPCとは
- 18. EC2上にrailsアプリをデプロイするまで~puma起動で躓いた所を整理
- 19. Amazon S3からのスクリプトの実行をやってみた。
- 20. AWSアソシエイト勉強でつまづいた点 part6
- 21. DAX(DynamoDB Accelerator)
- 22. Redshift クロスリージョンスナップショット
- 23. リザーブドキャパシティユニット
今さら聞けないAWSでロードバランサーを使ったWEBサイト構築手順(DNS設定&SSL証明書発行編)
AWSでロードバランサーを使ったWEBサイト構築手順を記載していきます。
私自身つい1年前まではオンプレばかりでAWSをほとんど触ったことがなかったのですが、オンプレ時代にAWSで躓いたところを中心に丁寧に解説できればと思いこの記事を作成しました。## 今回のやりたいこと
・ロードバランサー配下にWEBサーバを配置して基本的なWEBサイトを作る
・SSL証明書はACM(AWS Certificate Manager)を使って無料で発行する
・WEBサーバは外部から直接SSHできないようにするがApacheのパッケージは取得できるようにする
・最終的にブラウザでWEBサイト(独自ドメイン)が閲覧できるようにする## 構成図
以下のような構成を想定しています。
![ksawada1979.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101744/657d4461-0da5-9158-1f69-f136c01e376d.png)丁寧に解説していくと長くなるので
・DNS設定編
・ネットワーク設定
AWS App RunnerとAmazon ECRでGeoServerを構築してみた
![img](https://day-journal.com/memo/images/try-094_01.png)
### AWS App RunnerとAmazon ECRでGeoServerを構築してみました :tada:
詳細として下記について説明します。
– [リポジトリ作成](https://qiita.com/dayjournal/items/0897862d2f85d25caad0#%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E4%BD%9C%E6%88%90)
– [イメージ登録](https://qiita.com/dayjournal/items/0897862d2f85d25caad0#%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E7%99%BB%E9%8C%B2)
– [デプロイ](https://qiita.com/dayjournal/items/0897862d2f85d25caad0#%E3%83%87%E3%83%97%E3%83%AD%E3%82%A
ラズパイとAWS IoTを使った見守りシステム自作で学んだこと(8)template.yamlで定義するAWSリソースの説明とsam deploy
[(2)見守りProjectの設計(名前の設定)の最後に出てきた./template/template.yaml](https://qiita.com/nsaito9628/items/da402829316549853d0f#templatetemplateyaml)の説明です。
「[(4)cliでAWS IoTに新しいモノを登録し証明書を発行](https://qiita.com/nsaito9628/items/2ff6ab6d471537270e68)」で行うモノの登録と証明書の発行以外の全てAWSリソースをSAMで実装します。
前稿まで以上に理解が浅い部分で、見落とせない間違いがありましたらご指摘頂けると幸いです。検証を繰り返してブラッシュアップは継続します。
## 実行環境
今回はS3、CloudFront
[IT系用語] スループットとレイテンシ
## 最初に
9月にAWS SAAを受験することで学習を進めていたが「スループット」と「レイテンシー」というワードが頻出したため備忘録としてまとめさせていただきます。## スループット
端的にいうと「単位時間あたりに処理ができる量」のこと。
今回のように ITの分野でいくのであれば、コンピュータシステムが単位時間に実行できる処理の件数や、通信回線の単位時間あたりの実効伝送量などを意味します。高ければ高いほど、単位時間あたりの処理件数が増えるので性能が良いと言える。
## レイテンシ
端的にいうと「リクエストしたときにレスポンスが帰ってくるまでの時間」のこと。
つまり、通信の遅延時間のことです。つまりレイテンシが低いほど、遅延時間が少なくなるので高性能と言えます。
Webサイトのゲームやアプリなどのは即効性を求められるので、スループットよりもレイテンシが重要となってきます( ~~実際ゲームで遅延時間長いとイライラしますしね~~ )。
## 最後に
基本的にはスループットとレイテンシはトレードオフの関係にあります。
SAAで頻出するワードですね、AWSのサービス以外にも
GCPの主要サービスをAWSに当てはめて考えてみた。
## 前置き
マルチクラウド体制でサービス運営されている会社さん、増えていますよね。
ご縁があってGCPを利用することとなり、焦って各サービスで実現できることを調べています。
考えているうちに、**「これAWSのサービスに当てはめて考えたら、理解が早いんじゃないか。」**
と思い至りました。
AWSとGCP、登場するサービスを紐づけて解説してみます。## Google Compute Engine
AWSで言うところのEC2(Elastic Compute Cloud)に当たる。
仮想マシンサービス。(VM)Googleの強固なインフラ環境で動作するため高いネットワーク機能が担保されている。
セキュアに利用できる点も利点の一つ。
後に紹介するGAEと比較して、OSやミドルウェアを選択して、細かい設定を入れることができる。
インスタンスサイズのレコメンド機能が搭載されており、利用状況に応じて適切なインスタンスサイズをレコメンドしてくれるため、オーバースペックなサーバを契約してしまって、無駄なコストをかけるといった心配をしなくて良い
AWSでWindowsサーバを1からたててMacからRDP接続してみるまで
久しぶりにWindowsサーバをたてることにしたので、忘備録も兼ねて1からAWSにサーバをたてる方法を書いていこうと思います。
*2022/8月の段階ですので、マネジメントコンソールは変化している可能性がありますので、ご了承ください## 前提として
– VPCの設定はハンズオン等と同じように設定するため、業務用として使うとセキュリティがガバガバで怒られると思います。
– AWSのアカウント作成はしてあるものとします。
– Windowsサーバをたてて使えるところまでがゴールです
– 初めての人向けなので、冗長なところがあります## VPCを作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483933/242b2c03-b489-8a12-28d6-15cb676b55fe.png)
[AWSマネジメントコンソールの画面](https://console.aws.amazon.com/)にログインし、上の検索窓に「VPC」と打ち込むと管理画面が出てきます。そこから「VP
【AWS/Docker】AWS上のUbuntuサーバーにDocker Engineをインストールする
この記事では、AWS上のUbuntuサーバーにDocker Engineをインストールする方法について解説します。
# 全体の流れ
以下の流れでインストールを進めます1. パッケージをアップデートする
2. 必要なパッケージをインストールする
3. DockerのオフィシャルGPGキーを追加する
4. Dockerダウンロードサイトをaptレポジトリに追加する
5. Docker Engine一式をインストールする
6. ubuntuユーザーでdockerを利用できるようにする
7. Docker Engineがインストールされたかどうかの確認## 0. サーバーにログインする
“`bash:
$ ssh ubuntu@[IPアドレス] -i [ 秘密鍵ファイル ]
“`## 1. パッケージをアップデートする
“`bash:
$ sudo apt-get update
“`## 2. 必要なパッケージをインストールする
“`bash:
$ sudo apt-get -y install apt-transport-https ca-certi
停止したEC2の情報取得
# はじめに
教育環境として使用しているVPC内のサブネットの空きIPがほとんどなくなってしまい、検証したいのにできない状況でした。
使用していないEC2インスタンスが大量にあり、所有者に削除をお願いするためにも、まずは一覧で取得できないかを検証してみました。# 実行環境
* Windows 10 Pro
* Python 3.9.6
* AWS CLI 2.7.27# 流れ
IAMユーザの作成
↓
AWS CLIのインストール
↓
aws configureで認証情報の設定
↓
Pythonのインストール
↓
Boto3ライブラリのインストール
↓
ソースコードを書いて情報取得!
※当記事ではPythonで情報取得の部分以外の詳細を省きます## IAMユーザ作成
IAMユーザは情報の読み取りができればよいので、AWS管理のポリシー「ReadOnlyAccess」を選択し、作成。
作成時にアクセスキーとシークレットアクセスキーが表示されます。
認証情報の設定時に使用するので、csvファイルとしてDLするか、メモしてください。
![image.png](https://qi
【AWS】.syncを使わずにStep FunctionsからGlueJobを実行してみた【性能改善】
# 背景
Step Functionsで「StartJobRun.sync」を用いてGlueJobの実行をする場合、
ジョブの完了からStep Functions側でその完了を確認するまで、最大5分ほどかかる場合があります。(AWSサポートで確認済み:2022/7/23)今回は「StartJobRun.sync」を使用しないことで、この遅延の短縮を試みました。
# StartJobRun.syncを使用しないステートマシンの作成(改善案)
改善案として、「StartJobRun」でジョブを実行した後に「GetJobRun」APIを定期実行し、
ジョブのステータスチェックを実施するステートマシンを作成しました。
今回は10秒おきにジョブのステータスをチェックする設定としています。定義は以下の通りです。
・ワークフロー図
![stepfunctions_graph2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2728075/2b164fb2-82a6-c68b-1ef8-a936b2a415
STAGING環境でデプロイした時のSSHKit::Command::Failed: git ls-remote git@github.com:velljp/circus-vell.git 解決法
# エラー内容
https://gyazo.com/02b8cf241cc1f370a5635ea6fb236e2c
“`
リンクの内容[cvsys@ip-10-1-0-21 ~]$ sh dist.sh
Permission denied (publickey).
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
INFO [c61e9b14] Running rsync -az -e ssh /home/cvsys/.rbenv/ 127.0.0.1:/home/cvsys/.rbenv as cvsys@localhost
DEBUG [c61e9b14] Command: rsync -az -e ssh /home/cvsys/.rbenv/ 127.0.0.1:/home/cvsys/.rbenv
INFO [a483de23] Finished in 0.4
AWS認定クラウドプラクティショナー試験のためにやったこと
AWS認定クラウドプラクティショナー試験に合格したので、断片的な情報になりますが、やってみたことを記録しておきます。
インスタンスを削除したので合格記録以外の記録はもうここにしか残っていません。### EC2のインスタンスを起動
オレゴンのリージョンでAWS EC2のインスタンスを起動し、秘密鍵を使ってパブリックのIPアドレスにアクセスするところまでやってみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/a9470473-18db-49d7-77b7-d7c62809eb31.png)### Webサーバを構築
むらびとにいろいろ聞いてみて、どうぐもそろったのでWebサーバを構築してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/97f661e0-99f7-3185-5c4b-d887af48e600.png)### VPCをやって
AWS Lambda を時刻起動する
EventBridgeの時刻起動ルールを作成して、指定時刻にAWS Lambdaを起動する方法を解説します。
## Lambda関数のアクセス権限を設定する
EventBridgeからLambda関数を起動できるよう、アクセス権限を設定します。
– [設定]から[アクセス権限]を選択します。
![image](https://user-images.githubusercontent.com/38905609/187126403-5a8ef77e-653d-4513-9d22-b136be7c2a3d.png)
– [アクセス権限を追加]を選択します。
![image](https://user-images.githubusercontent.com/38905609/187126658-ebfdeaea-677f-4eca-af19-14645c9b3346.png)
– ポリシーステートメントを指定します。
1. [AWS]のサービスを選択
1. サービスに[EventBridge]を選択
1. ステートメントIDは任意のIDを指定
1. プリンシパルは初期表示値
docker-compose + capistrano
## 前置き
一応、AWSにデプロイすることを想定しています
すでに手動デプロイが成功している前提で行います## 構成
本番環境用にふたつ用意する
– docker-compose.production.yml
– Dockerfile.production## コンテナ内にキーを保存
ローカルで下記コマンドを実行し、キーをコピー。
ローカルで起動するコンテナにコピーすること
“`
$ docker container cp ~/.ssh/<秘密鍵名> <コンテナ名>:/root/.ssh/<秘密鍵名>
“`
コンテナ内で下記コマンドを実行し、EC2にログインできるか試す
“`
$ ssh -i ~/.ssh/<秘密鍵> ec2-user@EC2IPアドレス
“`
できたらおk
ローカル環境用のdocker-compose.dev.ymlに、キーを保存するよう記述
“`
web:
# 省略
volumes:
– ~/.ssh:/root/.ssh
# 省略
“`## Gem追加
“`Gemfile
group :deve
AWS-SAA(C03)試験の対策
2022 年 8 月 30 日からAWS SAAの新試験が開始されます。
https://aws.amazon.com/jp/certification/coming-soon/
8月からちょこちょことSAAの勉強をしていたのですが、新試験に変わることを知らず旧形式の教材を使っていました。。。
無理をして旧形式の試験受験にも滑り込めたのですが、どうせなら新しいサービスも合わせて知っておきたいと思い、新試験で受験することに決めました。
何が変わったのか、追加されたサービスが何なのかまとめていきます。## 試験ガイドの比較
AWSの新試験についての案内を読んでみると試験ガイドをよく読んでねって書いてありましたので詳しく比較してみました。
試験ガイドは以下から確認できます。
##### SAA-C02の試験ガイド
https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-assoc/AWS-Certified-Solutions-Architect-Associate_Exam-Guide.pdf
###
AWS lambda nodeをローカルでdocker開発して、イメージデプロイする
https://aws.amazon.com/jp/builders-flash/202103/new-lambda-container-development/?awsf.filter-name=*all
AWS lambdaの開発にSAMを使用していましたが、ローカルでdocker開発して、そのままデプロイできるようになったらしいので手順の確認。
dockerのイメージ生成→AWSのECRリポジトリにPUSH→AWS Lambda にECRからデプロイ。
https://qiita.com/rei-ta/items/e86546130d157561ba8e
Dockerfile
docker-compose.yml
package.json
app.jsDockerfile
“`
FROM public.ecr.aws/lambda/nodejs:16
COPY app.js package*.json ./
RUN npm install
CMD [ “app.lambdaHandler” ]
“`ecrイメージでのdockerを作成。public.ec
AWS Organizationsの使用事始め
# はじめに
組織内で複数のAWSアカウントを所有している場合、[AWS Organizations](https://aws.amazon.com/jp/organizations/)を使用することで、AWS環境の一元管理やガバナンスを効かせることが可能になりますが、業務でAWS環境の管理者経験のある方でなければ、AWSを触ってる方でもおそらくは数多くのAWSサービスの中でも使用する機会のないサービスかと思います。とはいえ、AWS Organizationsは無料で使用できますし、いつ何時業務でAWS環境管理を任されないとも限りません。(そもそも業務でAWSを使う機会があるのかというのもありますが、とりあえずそれは置いておきます。)そこで、今回は個人で利用しているAWSアカウントを使用して、AWS Organizationsサービスを使って、アカウントの招待や組織単位(Organizational Unit)の作成などをしてみました。以下にそのときの手順を備忘録的にまとめておきます。
# 事前準備
* 複数のAWSアカウントの準備
* AWS Organizations
デフォルトVPCとは
# デフォルトVPCとは
AWSではネットワークが詳しくない人でも利用できようにリージョンごとに**デフォルトVPC**が用意されている。
デフォルトVPCは選択したら、使用できる城田になっているので、個別に設定をする必要がない。基本的な要件の場合デフォルトVPCを使うと便利。
# デフォルトVPCの構成
デフォルトVPCとは**サブネットやインターネットゲートウェイが予め設定されているVPC**。EC2およびRDS作成画面で確認できる。
ネットワークの範囲は、プライベートIPアドレスの172.31.0.0/16が振られている。デフォルトのVPCでは「デフォルトのサブネット」と呼ばれるサブネットが、それぞれのAZに1つずつ作成される。東京リージョンだと、全てで4つ用意される。**デフォルトVPCのネットワーク構成**
|ネットワーク|CIDR|ネットワークの範囲|
|-|-|-|
|VPC全体のネットワークの範囲|172.31.0.0/16|172.31.0.0~172.31.255.255|
|サブネット1|172.31.0.0/20|172.31.0.0~172.31.15.2
EC2上にrailsアプリをデプロイするまで~puma起動で躓いた所を整理
アプリケーションのpumaの起動で起きたエラーとその解決策を記録。
もろもろの設定を終えた後に
bundle exec pumactl start
で起動しようとすると、
! Unable to load application: Aws::Sigv4::Errors::MissingCredentialsError: missing credentials, provide credentials with one of the following options:
– :access_key_id and :secret_access_key
– :credentials
– :credentials_provider
missing credentials, provide credentials with one of the following options:
– :access_key_id and :secret_access_key
– :credentials
– :credentials_providerという謎エラー。数日前に
Amazon S3からのスクリプトの実行をやってみた。
# はじめに
`AWS Systems Manager`のユーザーガイドを眺めていたところ、「**Amazon S3からのスクリプトの実行**」という内容が目に留まったので実際にやってみました。– [Amazon S3 からのスクリプトの実行](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/integration-s3.html)
# AWS Systems Managerとは
`SSM Agent`と呼ばれるエージェントソフトがインストールされているノードに対して、パッケージ・パッチの適用管理を行ったり、対象ノードにリモートログインしたり、今回のように対象ノードに対してスクリプトを実行したりするサービスです。別々のサービスに分けてもいいんじゃないかと思われるほど`Systems Manager`は様々な機能を提供しているサービスですが、特にリモートログイン機能は、セキュリティグループで`SSH`を許可しなくてもアクセスでき、`Systems Manager`側で操作ログや権限制御を行うこ
AWSアソシエイト勉強でつまづいた点 part6
DAX(DynamoDB Accelerator)
DynamoDBのインメモリのキャッシュクラスタ
DAXを利用することにより、ミリ秒(千分の一秒)だったレスポンスをマイクロ秒(百万分の一秒)レベルのパフォーマンスまで向上させることができるRedshift クロスリージョンスナップショット
Amazon Redshiftでは、スナップショットを採取することでバックアップをとる。スナップショットは、 RedshiftのディスクイメージをAmazonS3へ保存する。
スナップショットは異なるリージョンへ保存することもできる。これを「クロスリージョンスナップショット」と呼ぶ
異なるリージョンへ取ったスナップショットから Redshiftクラスタを再構築できるので、大規模な災害への対策(Disaster Recovery:ディザスタリカバリ)や異なるリージョンで Redshiftクラスタを構築する場合に有効リザーブドキャパシティユニット
Amazon DynamoDBにおけるプロビジョニングモードの書き込み・読み込みの単位