- 1. 【AWS】CloudTrailとCloudWatch Logsを連携しCloudWatchにてAWS管理イベントを監視する方法
- 2. 【AWS】Amazon RDS
- 3. 【AWS】サービス一覧
- 4. 【AWS】VPC、サブネット
- 5. 【AWS】リージョンとアベイラビリティゾーン
- 6. Unity Catalogにおける外部ロケーションとストレージ認証情報の管理
- 7. 踏み台サーバーを経由してSSHで接続する
- 8. 別アカウントからスイッチしたユーザで、Cloud9で共有する場合に指定するユーザ名
- 9. Amazon Linux 2 に MySQL 8 / Apache / PHP 8 をインストール
- 10. AWSマネージドを利用し、はじめてのWEB API開発をしてみた話
- 11. CloudFormationでRDSのセキュアな構築
- 12. 【完全初心者向け】AWS CDKに入門してみた
- 13. WordPressを静的サイト化してslackからDeployできるようにしてみた
- 14. 【AWS】CloudFormationでEC2インスタンスを構築
- 15. Laravel AWS デプロイ
- 16. pythonで書いたlambdaのreturnはjson.dumps()されている
- 17. EC2の起動テンプレートってどういうときに使うの?
- 18. AWSを基本からまとめてみた【AWS Amplify入門】
- 19. AWSではマルチテナントの公平性をどう実現しているのか?
- 20. DNS名を付けるように構成する
【AWS】CloudTrailとCloudWatch Logsを連携しCloudWatchにてAWS管理イベントを監視する方法
# 目的
CloudTrailとCloudWatch Logsを連携しCloudWatchにてAWS管理イベントを監視する方法を記載する。
AWS管理イベントとしては、セキュリティグループの作成、削除を例とする。# 想定読者
CloudTrailでモニタリングしたAWS管理イベントを監視してメールで通知させたい方# 手順
手順としては以下を想定しております。1. 証跡の作成
1. メトリクスの作成
1. アラームの作成# 1. 証跡の作成
CloudTrailを開き、「証跡の作成」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429119/9d2524ac-c7a2-b434-2a97-190653788bf7.png)S3バケットが必要になるため、新規作成または既存のS3バケットを利用します。
「ログファイルの SSE-KMS 暗号化」、「SNS通知の配信」は検証では不要ですのでチェックを外します。
![image.png](https://qii
【AWS】Amazon RDS
# RDS (Relational Database Service)
AWSが提供するマネージドRDB(Relational Database)サービスのこと。
MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Serverなどのオンプレ環境でもお馴染みデータベースエンジンから好きなものを選択できる。2014年からAmazon AuroraというAWSが独自開発したRDSも提供されている。
・バックアップ
・ハードウェアメンテナンス
・障害時の復旧作業といった面倒なデータベース運用もAWSがやってくれるため、運用の効率化の観点から超便利。
【AWS】サービス一覧
# コンピューティングサービス
・EC2 (Amazon Elastic Compute Cloud)
・ECS (Amazon Elastic Container Service)
・Lambda (AWS Lambda)※Elastic (≒flexible) 「柔軟性のある、拡張性のある」
# ストレージサービス
・Amazon EBS (Elastic Block Store)
・Amazon EFS
・Amazon S3 (Simple Storage Service)
・Amazon S3 Glacier
・AWS Storage Gateway# データベースサービス
・[Amazon RDS (Relational Database Service)](https://qiita.com/morinskyy/items/76445a11415aa2e2447b)
・Amazon Redshift
↑の2つがRDB(Relational Database)のサービス。つまりSQLを使用したサービスってこと。・Amazon DynamoDB (NoSQL
【AWS】VPC、サブネット
# 1. VPC (Virtual Private Cloud)
VPCはAWS専用の仮想ネットワークのこと。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665477/f8bbf307-c320-6c2c-6676-2f65b3806826.png)
はい、ピンとこないですね。
要はこれと同じこと。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665477/42ea0950-b5dc-f61d-dc4e-2495f2e36bc6.png)
画像引用:[今さらですが、自宅にネット環境あるならWifiでスマホ代節約。](https://kaizen.hatenablog.jp/entry/wi-fi-internet-setsuyaku)集合住宅の中で自宅という空間でネットワークを作成するときと同じ。
ルータやゲートウェイ等のネットワーク機器が必要となるが、そこはAWS内で
【AWS】リージョンとアベイラビリティゾーン
# リージョンとアベイラビリティゾーン
リージョンはアベイラビリティゾーン(AZ)の集合体のこと。AWSがサービスを提供している拠点(国と地域)のことを指している。(東京、ソウル、、、、など)
AZは複数のデータセンターから構成されている。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665477/85750120-2e75-a24d-6a63-31e394760c09.png)
# AZが満たしているべき条件
AZは地理的・電源的に独立した場所に設置されている必要がある。
落雷や洪水、大雨といった局所的な災害に耐えうるようにAZ間は数十キロ程度離れて配置されている。
各AZは高速なネットワーク回線で接続されているため遅延はほとんどない。(なんと2ミリ秒以下)
電源的にも一箇所が停電したことで一斉にダウンすることがないようにしている。AZの中にはAWS自身が作成した発電所を使用しているところもある模様。# マルチAZ
上記を読んで「もしユーザが単一のAZしか利用していなかった
Unity Catalogにおける外部ロケーションとストレージ認証情報の管理
[Manage external locations and storage credentials \| Databricks on AWS](https://docs.databricks.com/data-governance/unity-catalog/manage-external-locations-and-credentials.html) [2022/6/21時点]の翻訳です。
:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::外部ロケーション(external location)とストレージ認証情報(storage credential)を用いることで、Unity Catalogがユーザーの代わりにクラウドテナントにデータを書き込めるようになります。これらのオブジェクトは以下の目的で使用されます。
– [外部テーブル](https://docs.databricks.com/data-governance/unity-catalog/create-tables.html#crea
踏み台サーバーを経由してSSHで接続する
# 秘密鍵ファイルをアップロードする
ターミナルを起動してください。
ターミナルで以下のコマンドを実行してください。
my-key.pemは、EC2インスタンス作成時にダウンロードしたpemファイルです。
XXX.XXX.XXX.XXXは、EC2インスタンスのパブリックアドレスです。
“`
% scp -i my-key.pem my-key.pem ec2-user@XXX.XXX.XXX.XXX:~
“`# 踏み台サーバーから別のインスタンスにSSHで接続する
踏み台サーバーにログインしてください。
アップロードした秘密鍵ファイルのパーミッションを自分しか読めないように変更します。
“`
$ chmod 400 my-key.pem
“`踏み台サーバーから別のインスタンスにログインします。
XXX.XXX.XXX.XXXは、ログインするEC2インスタンスのローカルアドレスです。
“`
$ ssh -i my-key.pem ec2user@XXX.XXX.XXX.XXX
“`以上です。
別アカウントからスイッチしたユーザで、Cloud9で共有する場合に指定するユーザ名
# はじめに
Cloud9にある共有機能ですが、別のアカウントからスイッチしたユーザをどう設定するかわからなかったので、記事にしました。# まとめ
– 別アカウントからスイッチしたユーザを、Cloud9の共有時に指定する場合は、`arn:aws:sts::123456789012:assumed-role/MyAssumedRole/MyAssumedRoleSession`を使う
– `123456789012`は、スイッチ先のアカウントID
– `MyAssumedRole`は、スイッチ先のロール名
– `MyAssumedRoleSession`は、(だいたい)スイッチ元のユーザ名
– 自分でセッション名を指定している場合はその文字列
– `aws sts get-caller-identity`で表示されるArn# 経緯
公式に記載されている方法は以下になります。
https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/share-environment
Amazon Linux 2 に MySQL 8 / Apache / PHP 8 をインストール
まず、最新状態へアップデート
“`bash
sudo yum update -y
sudo yum update -y amazon-linux-extras
“`## MySQL 8.0 のインストール
“`bash:レポジトリ
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
“`
“`bash:インストール
sudo yum install mysql-community-server -y
“`鍵に関する問題でインストールできなかったら下記を実行後、再度インストール
“`bash
sudo rpm –import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
“`“`bash:インストールバージョン
mysql –version
“`“`bash:確認
mysql Ver 8.0.29 for Linux on x86_64 (MySQL Community
AWSマネージドを利用し、はじめてのWEB API開発をしてみた話
## はじめに
最近WEB APIやRESTについて学習中なので、AWSのマネージドを利用してWEB APIの開発をしてみました。
構成の概要や、開発中に参考になった記事、便利だなと思ったツールやデバックについて紹介したいと思います。
AWSマネージドでのWEB API開発に興味のある方に読んでもらえると嬉しいな、と思っています。
—
### 採用技術
– API Gateway
– Lambda
– DynamoDB「まずは動くAPIを!」という事で、サーバーサイドの実装のみ行っています。
LambdaはPythonで実装しています。—
### その他
– VSCode拡張機能
– REST Client(テスト用)
– Swagger Viewer(ドキュメント生成用)
– CloudWatch(デバック用)「VSCodeの拡張機能を色々お試ししたい!」という目的もあったので、テストやドキュメント生成用としてVSCodeの拡張機能を利用しています。
—
### 構成
今回はシンプルなCRUD機能の実装という事で、辞書アプリケ
CloudFormationでRDSのセキュアな構築
## はじめに
RDSをCloudFormationで作成し、構築できるようにする## 目次
– RDS作ってみる
– ユーザ名とパスワードのパラメータを直接設定
– SSMを使用
– SecretsManagerを使用
– 最後に## RDS作ってみる
最低限の設定をして、作成してみる。
このままでは、ユーザ名・パスワードが誰にでも見えてしまう“`
Resources:
RdsMsSql:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: “db.t2.micro”
AllocatedStorage: 20
Engine: MySQL
EngineVersion: 8.0.16
MasterUsername: admin
MasterUserPassword: secret_password
DeletionProtection: false
DeleteAutomatedBackups: t
【完全初心者向け】AWS CDKに入門してみた
## 目次
– [目次](#目次)
– [はじめに](#はじめに)
– [AWS CDKの使い方](#aws-cdkの使い方)
– [準備](#準備)
– [CDK APPの作成](#cdk-appの作成)
– [CDK AppへのS3バケットの追加](#cdk-appへのs3バケットの追加)
– [CloudFormationテンプレートへの変換](#cloudformationテンプレートへの変換)
– [スタックのデプロイ](#スタックのデプロイ)
– [CDK Appの修正](#cdk-appの修正)
– [CDK Appの削除](#cdk-appの削除)
– [まとめ](#まとめ)
– [参考](#参考)## はじめに
業務でAWS CDKを使っていますが、すでに構築済のコードを使っているだけだったので、勉強のためにAWS CDKに入門してみました。## AWS CDKの使い方
### 準備
typescriptのインストール
“`bash
npm init
npm install typescript
“`バージョンの確認
WordPressを静的サイト化してslackからDeployできるようにしてみた
## はじめに
WordPressでサイトを公開していて、以下のような課題に悩まされた経験はありませんか?
– 脆弱性を狙った攻撃の対象になる **セキュリティ** の課題
– 負荷対策が必要となる **パフォーマンスとスケーラビリティ** の課題
– DBが落ちて `データベース接続確立エラー` となったり EC2のリタイアメント等の必須メンテナンスの発生による **運用** の課題
– サーバ費用等の **コスト** の課題このような課題をシンプルに解決するため、[コーポレートサイト](https://www.vega-c.com)のリニューアルを機に、WordPressを静的サイト化してみました。
## 全体像
![undefined__5__png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38574/21097f02-b479-36bd-1fab-79b094d4ad73.png)## この構成がもたらす課題解決
– セキュリティ
– OriginがEC2上のWord
【AWS】CloudFormationでEC2インスタンスを構築
# はじめに
CloudFormationを使って、Nginxが動作するEC2インスタンスを作成しました。
作成したテンプレートファイルは以下のGithubリポジトリにアップロードしています。
https://github.com/nkserveren26/ec2-cloudformation# インフラ構成図
作成するインフラ構成図を以下に示します。
EC2はAmazon Linuxです。
# 事前準備
リソースを作成できるIAMユーザー
キーペア# 参考にした記事
・CloudFormationによるネットワークリソース(VPC、Internet Gatewayなど)の作成
https://dev.classmethod.jp/articles/c
Laravel AWS デプロイ
# 参考にした記事
* [AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得](https://www.udemy.com/course/aws-and-infra/)
* [AWS EC2 に Nginx + PHP8 で Laravel8 環境を構築する](https://knmts.com/become-engineer-30/)
* [【デプロイマスター#1】LaravelアプリをAWSのEC2にインストール](https://www.youtube.com/watch?v=npUakPK61CM)
* [【AWS入門】EC2+NGINX+MySQL環境へLaravelをデプロイする手順](https://brainlog.jp/server/aws/post-2808/)
## 手順(重要なところ抜粋)結果これで行けた : [【AWS入門】EC2+NGINX+MySQL環境へLaravelをデプロイする手順](https://brainlog.jp/server/aws/post-2808/)
1. Laravelのプロジ
pythonで書いたlambdaのreturnはjson.dumps()されている
# はじめに
もうタイトルがそのまんま結論なんですけど、
色々読んで試してやっと自分の中で解決したので記事にします。対象読者は
+ 公式ディベロッパーズガイドを読んでもあまりピンと来なかった方
+ lambdaからの返り値に無駄にバックスラッシュついてて困ってる方です。
# 結論
pythonで書いたlambdaのreturnはjson.dumps()されています。
なので一度json.dumps()したものを要素として渡すと
意図しないバックスラッシュがついてきます。公式のディベロッパーズガイドの「値の返し(Returning a value)」のところ読むと書いてあるんですが、
最初は日本語版読んでも意味わかんなくて
英語で読んでやっとあれ?となって
いろいろ試してやっと「そういうことか!」となりました。公式のディベロッパーズガイドはこちら
日本語版:[https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/python-handler.html#python-handler-return](https://docs
EC2の起動テンプレートってどういうときに使うの?
## 勉強前イメージ
AutoScalingとかに使われる系?
## 調査
### EC2の起動テンプレート とは
EC2からインスタンスを作成する際に、
インスタンスを作成するときに設定する項目をあらかじめ指定しておいて作成する手間を省くことが出来ます。### 設定する内容
– 起動テンプレートに関する名前や説明
![1起動テンプレートを作成 _ EC2 Management Console – Google Chro.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/cca49213-3d2c-b780-1475-e152d404a2f5.png)
– 起動するEC2のインスタンスタイプやキーペアの指定
![2起動テンプレートを作成 _ EC2 Management Console – Google Chro.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/0208bd0
AWSを基本からまとめてみた【AWS Amplify入門】
## AWSAmplifyとは
Web及びMobileアプリ開発のためのフレームワーク
## AWSAmplifyのメリット
– AWSのクラウドサービス上にモバイルアプリケーションを構築するための最も速く、簡単な方法。
– 利用者はクラウドサービスのバックエンドの構築をツールに任せ、アプリケーション実装に集中できる。
– ポピュラーなバックエンドの構成とそれを利用するためのフロントエンドの統合を自動で構築できる。## 参考サイト
[AWS Amplifyとはなんなのか3行で表現する](https://qiita.com/laha/items/1e0805edacce111e9332)
[【AWS Amplify入門】第1回:Amplifyの理解](https://www.youtube.com/watch?v=aNtcomPtfhI&t=13s)
[【AWS入門】AWSを使ってReactアプリをデプロイしてみよう ~AWS Amplifyを使用~](https://www.youtube.com/watch?v=m9ZjW1md_OQ&t=224s)
AWSではマルチテナントの公平性をどう実現しているのか?
# 概要
* 今回は、AWSではマルチテナントの公平性をどう実現しているのかについて記事にしていこうと思います。
* なおこちらの記事については、[Amazon Builders’ LibraryにあるFairness in multi-tenant systems](https://aws.amazon.com/jp/builders-library/fairness-in-multi-tenant-systems/)を基に個人の解釈でまとめていったものになります。# AWSにおいてのマルチテナントの公平性
* AWSの各種サービスはものすごい数生まれ、提供されている中でAWS自体の普及も拡大し、その分利用に関してAWSのアカウントが作成されていると思います。
* 今回お話していくのはそんなAWSがどうやってAWSを利用するユーザに対しサービス利用の公平性を実現しているのかについてを深ぼっていくという内容になります。
* またここで述べている公平性というのは、**AWSにおいてはすべてのクライアントにシングルテナントと同等の体験が提供できることを公平性**としています。#
DNS名を付けるように構成する
# DNS名を付けるように構成する
AWSマネジメントコンソールでVPCダッシュボードを表示します。左メニューの「お使いのVPC」をクリックしてください。
DNS名を設定するEC2インスタンスのあるVPCをチェックし、アクションの「DNSホスト名の編集›」をクリックしてください。
![スクリーンショット 2022-06-25 7.00.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/ae2c723a-ddb5-50ac-c0b7-72225c0b563e.png)
DNSホスト名の編集ページが表示されます。
「有効化」をチェックし、「変更を保存」をクリックしてください。
![スクリーンショット 2022-06-25 7.00.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/c4e0b299-631f-7d82-71c4-c4ad891ecc08.png)# 割り当てられたDN