- 1. 【AWS】ElastiCache
- 2. EC2 のオートスケーリング設定 (ハンズオン)
- 3. APIサーバが不要!Hasuraを導入してみた結果と本番運用について
- 4. ブログサイトをAWSで公開する
- 5. AWSのアカウント間で定期的にS3オブジェクトをコピー
- 6. AWSアソシエイト 未経験者がつまづいたポイントpart4
- 7. Well-Architected Framework 「セキュリティ」の設計原則
- 8. Inspector v2の脆弱性診断内容を「Slackベース」で管理する
- 9. AWS Hands-on for Beginners 〜Serverless 編〜 #2
- 10. AWS: Amplify の使い方 (その2)
- 11. MySQL上のデータをDash+plotlyで可視化
- 12. 【AWS】CloudFront
- 13. Amazon Redshift
- 14. 【CDK】 色んな言語でCRUD API作る【TypeScript】
- 15. Route53
- 16. AWS: Amplify で React をデプロイ
- 17. 【Terraform】terraform importを試す
- 18. 「AWS Lambda実践ガイド 第2版」をレビューしてみる
- 19. 【AWS】SWF, SNS, SES
- 20. GithubActions → Amazon ECR → AppRanner デプロイ
- 21. 【AWS】SQS
【AWS】ElastiCache
# ElastiCache
AWSが提供するインメモリ型データベースサービスのこと。
高頻度で参照するデータや検索に時間がかかるデータセットをメモリ上に保持するもの。
毎回ネットワーク経由でアクセスすることを避けられるのでパフォーマンス向上につながる。# インメモリ型とは?
>コンピューターのメモリ(主記憶装置)上でデータを管理するデータベースです。ハードディスクやSSD(補助記憶装置)上にデータを保管する従来のデータベースよりも高速にデータの読み書きが出来るのが特徴。
しかしメモリには大きな弱点もあります。現在のコンピューターで主に使われているメモリであるDRAMは電源の供給がなくなる、つまりコンピューターの電源がオフになると保存されているデータが消失することです。引用:[インメモリデータベースのメリット・デメリットとは](https://products.sint.co.jp/siob/blog/in-memory-databases)
# Memcached版
簡易版。メンテナンスや障害による再起動が行われた場合は全てのデータが削除されてしまう。# Redis
EC2 のオートスケーリング設定 (ハンズオン)
## はじめに
この記事はAWS Hands on for BeginnersのEC2 Auto Scaling基礎編を参考に記事にしました。## 1.AWS Cloudformation を利用してリソースを構築
ハンズオンに必要なリソースをCloudformationによって構築する。
CloudformationはAWS環境のコードによる管理を実現することができ、テンプレートで定義した環境を作成・変更・削除できる。
これを利用することで下記の項目を手作業でやる手間なく一括で構築できる。・Amazon VPC
・サブネット
・インターネットゲートウェイ
・ルートテーブル
・セキュリティーグループ
・Application Load Balancer,ターゲットグループ
事前準備で出来上がるリソース↓![AWS Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2040882/a88e5ac3-18c0-1c09-9727-e8a61f072c20.png)
マネジメントコーン
APIサーバが不要!Hasuraを導入してみた結果と本番運用について
# はじめに
今回商用プロダクトに、[Hasura](https://hasura.io/ “Hasura”) という **GraphQL APIサーバを自動生成** してくれるツールを活用しました。
初期フェーズのプロダクト開発で、開発コスト削減にすごく貢献してくれたツールなので大変気に入ってます。とはいえ、使い方などで多少ハマったり、難しさもあったので実際に使ってみてどうだったのかを中心に書いていけたらと思います。
全体のインフラについてはこちらにまとめています。
https://qiita.com/yoshinori_hisakawa/items/23dad9d4c65d13c1b785
# そもそもHasuraを使うことが適しているのか?
問答無用で使わず、まずは本当にHasuraを使う必要があるのか?は、検討する余地があると思います。
実際に私が使うに至る理由がプロダクト要件と、組織全体の開発スピードでした。### プロダクト要件の話
:::note info
**プロダクト要求を満たすために、高度な条件Filterをデータベースに求められるか?**
:::
が
ブログサイトをAWSで公開する
– ブログサイトの公開方法は、`GitHub Pages` やその他無料サービスなどあるようですが、
ここではAWSを使ってブログサイトを公開する方法を紹介します。
– AWSを使う理由は、自由度の高さと運用費用の安さです。
– AWS利用開始1年未満であれば無料枠で運用できますし、1年経過後でも月額10円未満程度で運用できます。## この記事の目的
– ブログサイトをAWS のS3とCloudFrontを利用して公開します。
– 公開中のサイトが以下です。
## ?これより先は下記記事の内容を前提とします
– [Docusaurus でブログサイトを作成する](https://docusaurus.plant11.com/docusaurus/docusaurus)
## 導入手順
– 本家AWSの説明サイトがあります。
[CloudFront を使用して、Amazon S3 でホストされた静的ウェブサイトを公開するにはどうすればよいですか?](https://aws.amazon.com
AWSのアカウント間で定期的にS3オブジェクトをコピー
# はじめに
今回やりたいことは、
「**あるAWSアカウントのS3バケットにあるオブジェクトを、異なるAWSアカウントのS3バケットに、毎日特定の時刻にコピーする**」
内容はすごく単純だけど、実際の中身はS3だけでなくIAM周りやEventBridgeなど複数要素が必要になり勉強になったのでまとめます。ポイントは、
– コピー処理:コピーするプログラムをどう書く?
– 権限周り:異なるアカウントのS3オブジェクトにどうやってアクセスする?
– 定期実行:どうやって定期実行させる?なおこの記事は、作業手順をまとめたものであり各要素技術について詳細に説明するものではありません(AssumeRoleは[この記事](https://dev.classmethod.jp/articles/iam-role-passrole-assumerole/)が個人的に面白かったです)。とはいえ、ここに記述する手順を踏んで実際に手を動化してみると色々勉強になりますのでトライしてみてください。
# 実現方法
今回はLambda関数を用いた方法について言及する。コピー先にLambda関数を作成し
AWSアソシエイト 未経験者がつまづいたポイントpart4
Well-Architected Framework 「セキュリティ」の設計原則
セキュリティの設計原則は以下の7つ
・強力なアイデンティティ基盤を実装する
最小権限の原則を実装し、AWSリソースの使用に適切な認証をする。
最小権限の原則とは、ユーザーやプログラムが作業を完遂するために必要な最低限の権限で操作を行うこと
・トレーサビリティを実現する
システムに対してリアルタイムでの監視、通知、監査を行うことにより、問題が発生した場合に素早く対応できる
・全レイヤーでセキュリティを適用する
一部の機能に対して重点的にセキュリティを実装するのではなく、仮想サーバー、ネットワーク、ロードバランシング、アプリケーション、コードなど、利用するすべてのレイヤーに渡ってセキュリティを実装する。
・セキュリティのベストプラクティスを自動化する
セキュリティの仕組みをソフトウェアベースで自動化することによって、安全にシステム化を迅速にしつつコスト効果を高くする。
・転送中および保管中のデータを保護する
データの機密性レベルに応じた、暗号化、トークン分割、アクセスコントロールなどを適用
Inspector v2の脆弱性診断内容を「Slackベース」で管理する
# はじめに
ご覧いただきありがとうございます。
以前[Amazon Inspector Classic](https://qiita.com/gahirosan/items/7a95ccc86e1cec205859)について記事を書きました。
最近 現行バージョンであるInspector v2で検知を行ったところ、検知精度に差があることがわかり、「Classic⇒v2」への移行を行っているところです。
今回はSlack画面で、Inspector v2の脆弱性検知結果を管理できるようにしたいと思います。
# 概要
1. 事前準備
2. Slack ~ Lambda間の連携
3. Lambda ~ Slack間の連携
4. Lambda関数の作成
5. 動作確認![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697264/95a99621-0a5e-55c7-ffd3-3703d08dbdbe.png)
Slackのプライベートチャンネルでコマンドを実行すると、La
AWS Hands-on for Beginners 〜Serverless 編〜 #2
## はじめに
勉強していて気になった部分をなんとなくメモっていきます。行うこと
https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/
AWSSAMを定義テンプレートからワンレスな環境をする本人情報
IT現場雑用員(一生Excel触ってる人)
社会人2年目、脳死資格取得男、最近SAPに受かった。## AWS SAM
AWS Serverless Application Modelの略称です。AWS CloudFormationの拡張機能で、スタック内にコードを記載するよりも簡潔にテンプレートを記載することができます。
リソースタイプを指定するTypeと、その詳細を記載するPropertiesによって記述され、公式のデベロッパーズガイドから確認することができます。https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/sam-specification-reso
AWS: Amplify の使い方 (その2)
こちらのプログラムを改造しました。
[AWS: Amplify の使い方](https://qiita.com/ekzemplaro/items/83eb098bd116340f96df)次のような表示をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/f17b1561-d63d-597e-b583-a184d7becbfc.png)フォルダー構造
“`text
$ tree dist
dist
├── fetch.js
├── index.html
└── tochigi.json
“`“`html:dist/index.html
AWS Amplify
MySQL上のデータをDash+plotlyで可視化
# 初めに
AWSのデータベース(MySQL on RDS)に作成したテーブルの内容を、Pythonのデータ化しかフレームワークDashを使用してWeb上に表示します。
※ 今回はdashのコードが中心です。EC2やRDSのインスタンス作成、TeraTermでの接続等は省略します。
# 環境
### データベース
– RDSにMySQLインスタンスを生成(最小構成)
– インスタンスクラス:db.t3.micro
– ストレージ:20GiB
– マルチAZ:なし
– Serverバージョンは8.0.28だが、AWSがメンテナンスしているので変わるかも。### サーバー
– EC2インスタンスを起動
– AMI:Ubuntu Server 20.04 LTS (HVM), SSD Volume Type
– インスタンスタイプ:t2.micro
– ストレージ:汎用SSD 8GB# EC2からデータベースへの接続
RDSのデータベースは、デフォルトでdefault(という名前の)セキュリティグループが設定されているインスタンスからのみ接続を受け付けます。
このため、E
【AWS】CloudFront
# CloudFrontとは
CDN(Content Delivery Network)のこと。
HTMLファイル,CSS,画像と言った静的コンテンツをキャッシュして、オリジンサーバの代わりに配信するもの。画像や動画といった容量の大きいコンテンツをユーザーからのアクセスのたびにオリジンサーバーが処理してしまうと、サーバの負荷が高くなってしまう。
そこでその負担を肩代わりしてくれる「影武者」を用意するのだが、それが「エッジサーバ」と呼ばれるもの。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665477/1e981a42-ad3e-c2cb-14e8-2aed8c548ffa.png)
エッジサーバは現2022年7月時点で[47か国、90都市、310台](https://aws.amazon.com/jp/cloudfront/features/?whats-new-cloudfront.sort-by=item.additionalFields.postDateTime&w
Amazon Redshift
# Redshiftとは?
AWSが提供するデータウェアハウス向けのデータベースサービス。
これまで一般的に提供されてきたデータウェアハウスの導入コストと比較して10分の1~100分の1程度で始めることができる。参入障壁を大きく下げてくれた。# AWSサービスにおける立ち位置
全体像の一例として以下が挙げられる。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665477/426855a8-4ee6-be47-1643-784b6507464a.png)
S3はAWSが提供するインターネット用ストレージサービスで、AWSのあらゆるサービスで利用されている。上のデータ分析環境においては、Redshiftにデータを取り込むための「データ置き場」として利用します。
# 参考
・[Amazon Redshiftで構築するビッグデータ分析環境の構成要素と全体像](https://codezine.jp/article/detail/7774)
【CDK】 色んな言語でCRUD API作る【TypeScript】
# この記事について
[AWS CDKv2](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html)でCRUD操作ができるAPIを作る
今回はTypeScriptを使う# アプリの構成図
![infra (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2533663/06475e56-a024-719f-f594-47bcfae07c71.png)API Gateway + Lambda + DynamoDBでTODOオブジェクトのCRUD操作ができるAPIを作る
# プロジェクト初期化
## CLIのインストール
まずはCDK CLIをインストールする“`bash
npm install -g aws-cdk
cdk –version
“`バージョンが表示されればOK
## CDK Toolkitのデプロイ
初回のみCDKを利用する際に必要となるファイル群のデプロイが必要“`b
Route53
# Route53
ドメイン管理機能や権威DNS機能を持つサービス。# トラフィックルーティング
異なるネットワークにパケットを送信するときに最適な配達経路を決めること。経路選択、経路制御とも呼ばれる。いわゆるルータが担っている機能のこと。
Route53にゾーン情報を登録する際、名前解決の問合せに対してどのように応答するかを決める7種類のルーティンポリシーがある。1. シンプルルーティングポリシー
1. フェイルオーバールーティングポリシー
1. 位置情報ルーティングポリシー
1. 地理的近接性ルーティングポリシー
1. レイテンシールーティングポリシー
1. 複数値回答ルーティングポリシー
1. 加重ルーティングポリシー## 加重ルーティングポリシー
指定した比率で複数のリソースにトラフィックをルーティングする際に利用する。
>ABテストとは、「ある特定の期間にページの一部分を2パターン用意して、どちらがより効果の高い成果を出せるのかを検証すること」です。
例えば以下の2パターンにおいてボタンの色はAの方がいいか?Bの方がいいか?を検証するもの。
![image.
AWS: Amplify で React をデプロイ
React を S3 にデプロイする方法です。
Amplify を使います。プロジェクトの作成
“`bash
npx create-react-app react05
cd react05
yarn start
“`ページを修正
“`src/App.js
import ‘./App.css’;function App() {
return (Edit
src/App.js
and save to reload.こんにちは
Jul/17/2022 PM 12:25
);
}export default App;
“`Amplify の設定
“`bash
ampli
【Terraform】terraform importを試す
## はじめに
以前、業務で`terraform import`コマンドを利用してAWSの既存インフラストラクチャをimportする機会があったので、知識定着のためにも記事にしてみたいと思います。## `terraform import`とは?
既存のインフラストラクチャをTerraformの管理下に置くためのコマンドになります。AWS上で変更した内容をTerraform上にも反映させる時に使用します。
## 前提
今回は事前に作成したこちらのTerraformのコードを利用しております。https://github.com/masato930/ec2_create_code
こちらの記事でご紹介しているコードと同様のものになります。
https://qiita.com/masato930/items/7db361ad875b778a456a
Terraformのバージョン情報は、以下になります。
“`zsh
% terraform –version
Terraform v1.1.8
on darwin_amd64
+ provider registry.te
「AWS Lambda実践ガイド 第2版」をレビューしてみる
# AWS Lambda実践ガイド 第2版
久しぶりの3連休を生かして、少し前に購入し放置していた本書を取り組んでみた。
自分自身Lambdaは業務内で「アカウントがログインした時に通知がなる仕組み」を導入した時に使用した程度なので、Lambdaの理解をより深めたいなと思っていました。
# A. ずばり買いですか?
Q. 目的によります。■本書で学べること
・Lambdaを業務で使用するにあたり必要な仕様や構成の知識
・現場にてよく使われるLambdaの利用方法
・サーバーレスな構成と関連サービス(DynamoDB、SQS、SNS、SAMなど)の知見
・上記を生かした3~4つのハンズオン上記を目的にするならば十分買いだと思います。
※レベル感としてはサーバーレス初級者~中級者レベル自分自身は非常に満足しており、Lambdaの基礎知識はもちろんDynamoDBやSQSといった個人では勉強し辛い箇所もまとめ
【AWS】SWF, SNS, SES
# SWFとStep Functions
Amazon Simple Workflowの略。
システムの一連の処理の流れのことを「ワークフロー」と呼ぶ。
単純に「1→2→3」と処理が順番に流れていくものもあれ「1→2→3or4」といったように分散するケースもある。
Step Functionsには可視化機能があり便利。最近はSWFに代替されることが多い。# SNS (Simple Notification Service)
多くのアプリで通知機能を搭載しているが、通知機能を構築するには多くのコストがかかってしまう。それらを一括に請け負ってくれるサービス。SESとの違いは以下
>クライアントに通知をするサービスは、Amazon SNSの他にAmazon SESがあります。SESがEメールの送信のみ利用できることに対して、SNSはプッシュ型の通知が利用可能でEメールだけでなく、AWS Lambdaなど他のAWSサービスに送ることができます。しかし長文には対応しておらず、長文対応が必要な時はSESがおすすめです。# SES (Simple Email Service)
基
GithubActions → Amazon ECR → AppRanner デプロイ
# 概要
どうも、こんにちは。今回は、GithubActions で dockerImage(Nginx) を Amazon ECR へプッシュして、そのイメージを AppRanner へ自動デプロイする方法を書いてきます。
# 前提
– Github アカウントを作成済み
– AWS アカウント作成済み
# やってみる
## 構成
“`text:構成
.
|– .github — workflows — ecr_push.yml
|– default.conf
|– Dockerfile
|– index.html
“`
## 各ファイルを記述
– Nginx の dockerfile
“`dockerfile:Dockerfile
FROM nginx:latestEXPOSE 80
COPY ./default.conf /etc/nginx/conf.d/
COPY ./index.html /var/www/html/RUN service nginx start
“`
“`text:default.conf
server {
list
【AWS】SQS
# Amazon Simple Queue Service(SQS)
AWSが提供するMQサービスのこと。
AWSのサービス群の中では最古の歴史を誇り2004年からサービス開始している。EC2やS3は2006年。# メッセージキューイング(MQ)
好きなタイミングで非同期で、異なるソフトウェアに対するデータ送受信を行うための「データの預け先」>メッセージキューイングとは、異なるソフトウェア間でデータを送受信する手法の一つで、直接データを渡すのではなく一旦第三者のソフトウェアに預けることで、送信側も受信側も好きなタイミングで送受信処理をおこなうことができるようにする方式。
# 参考
・[メッセージキューイング 【MQ】 Message Queueing](https://e-words.jp/w/%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%AD%E3%83%A5%E3%83%BC%E3%82%A4%E3%83%B3%E3%82%B0.html)https://www.acrovision.jp/servi