- 1. Well-Architectedを再度学習して内容をまとめてみる(運用上の優秀性の柱)
- 2. EC2にPHP8.0をセットアップする
- 3. AWSのアーキテクチャ図を書く
- 4. Qiitaの人気記事を検索できるサービス「Qiitank」を作りました
- 5. 【AWS】Account Factory for Terraformを実装してみた – GLOBAL CUSTOMIZATIONSの書き方
- 6. はじめまして
- 7. SAA-C03に落ちた話
- 8. NATゲートウェイが高いのでNATインスタンスを立てる【金欠シリーズ】
- 9. 【AWS】S3に格納したExcelファイルをLambdaで読み込んでEC2にタグ付けする
- 10. amazon light sail ポート開放 sslタイムアウト
- 11. 【超初心者のAWS道場①】新規プロジェクトの立ち上げ時に、既存のAWSアカウントの請求に紐付ける方法
- 12. 【AWSセキュリティ基礎】AWS WAF・Shield・Firewall Manager
- 13. 【AWSセキュリティ基礎】AWS Config
- 14. 【AWSセキュリティ基礎】AWS Artifact
- 15. 【AWSセキュリティ基礎】AWS Key Management Service(KMS)
- 16. 【TransitVIF】TGW+DxGWの構成案【未対応でも大丈夫】
- 17. IAM – MFA を有効化しないと、自身の認証設定以外は何もできなくなる IAM ポリシーサンプル
- 18. インスタンスユーザーデータ とは
- 19. AWS Session Manager ことはじめ
- 20. AWS Lambda Function URLを利用して、Amazon Timestreamにデータを書き込む
Well-Architectedを再度学習して内容をまとめてみる(運用上の優秀性の柱)
# 内容
Well-Architectedで何を言っているのかを図解化、噛み砕いて説明する内容となっています。# 資料
https://speakerdeck.com/toru_kubota/well-architected
“`運用上の優秀性の柱“`と“`セキュリティの柱“`についてまとめた資料になっていますが、今回は“`運用上の優秀性の柱“`について記載します。
# 「運用上の優秀性の柱」の概要
AWSの運用以外にも適用出来そうな素晴らしい“`設計の原則“`が5つあります。各柱の中にいくつか“`定義“`と言うトピックがあり、設計の原則を実現するために具体的に何をやれば良いかの記載があります。運用上の優秀性の柱の場合は“`組織“`、“`準備“`、“`運用する“`、“`進歩する“`が定義されているので具体的に解説していきます。![スクリーンショット 2022-10-03 5.56.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/12f
EC2にPHP8.0をセットアップする
以前、EC2にPHP7.4をインストールする方法を投稿しましたが、今回はPHP8.0をインストールする方法のメモです。
EC2のインスタンスを立ち上げてからの手順をまとめておこうと思います。
(`Amazon Linux 2` へのインストール方法です。)# インスタンスのアップデート
`yum update`を実行し、インスタンスをアップデートします。“`common_lisp
$ sudo yum update
“`# リポジトリの確認
以下のコマンドを実行し、リポジトリの状態を確認します。“`common_lisp
$sudo amazon-linux-extras0 ansible2 available \
[ =2.4.2 =2.4.6 =2.8 =stable ]
2 httpd_modules available [ =1.0 =stable ]
3 memcached1.5 available \
AWSのアーキテクチャ図を書く
AWS上でサービスを構築初めて、大体終わってきたのでアーキテクチャ図を描きたくなりまとめてみました。
ほんとは実装する前にやるべきかなと思うのですが、今回は練習ということで書いてみました。## ・前提
* 特になし。## ・まず初めに
以下のリンクを読みます。こちらには書く前の心構えのようなものが書いてあります。https://aws.amazon.com/jp/builders-flash/202204/way-to-draw-architecture/?awsf.filter-name=*all
## ・AWSサービスの位置関係を把握する。
自分が使っているサービスが
エッジロケーションで利用しているののか。
リージョンの内なのか外なのか。
AZの内なのか外なのか。自分の場合は以下になるかなと
“`
エッジロケーションで利用しているのか:Route 53, Cloud Front
リージョンの内でAZの外:S3, Internet Gateway, NLB
AZの内:ECS
“`## ・どのツールで書くか
上記リンクないにPowerPointやSk
Qiitaの人気記事を検索できるサービス「Qiitank」を作りました
## 概要
私は Qiita で面白い記事を見つけることが日課です。
Qiita 標準では、トレンドしか確認できなくて困っていました。
過去 1 年の人気記事をまとめて読むことはできないものかと思っておりました。ストック数が多い記事は興味がない分野でも面白い記事が多く、新しい学びのきっかけとなります。
以前 Qiita の殿堂というサービスがありましたが、更新が止まってしまったため、類似のサービスを自作しました。それが、qiita の人気記事を検索できるサービス [Qiitank](https://qiitank.r-nakaishi.com/) です!
Qiita の人気記事を貯めておくタンクのようなサービスを目指し、このような名前となりました。
自分が効率よく記事検索をおこなうために作成したものですが、せっかくなので同じような悩みを持つ方のために公開に踏み切りました。
Qiita サーフィン好きの方は是非使ってみてください。## 使用技術
| 主な使用技術 | 用途 |
| ———— | ————-
【AWS】Account Factory for Terraformを実装してみた – GLOBAL CUSTOMIZATIONSの書き方
# はじめに
こんにちは。「[【AWS】Account Factory for Terraformを実施してみた](https://qiita.com/Soojin/items/a1240df60f555b8b3422)」 シリーズを書いています。
もし良かったら他の投稿も見てみてください。(^^)本日の投稿は、**Account Factory for Terraform(以下、AFT)のグローバルカスタマイズ**について説明します。
AFTって何なの?、カスタマイズって何?っていう方は上のURLや[AFT公式ドキュメント](https://learn.hashicorp.com/tutorials/terraform/aws-control-tower-aft)をご参照ください!さて、
アカウント発行の自動化自体はAFTの公式ドキュメントの手順そのままでいけますが、
以下のようなアカウント内の細かーい設定(カスタマイズ)まで自動化したかったら、自分でコードを書かないといけません。
– XXXっていうIAMロールとポリシーを作成したい
– 初期IAMユーザを作りたい
–
はじめまして
はじめまして!:ramen:
今までQiitaは他人のをみているだけでしたが、自分でもやってみようと決心し始めました!
Qiitaを始めた理由は、自分の行ってきた学習の復習、思ったことなどの備忘録、自分がどのようなことをやってきたか他の方に知ってもらうためです!
このQiitaでは、主に数か月前から行っているAWSの構築学習や資格勉強について発信していこうと思います、よろしくお願いします!
こういったブログのようなものは初めてで文才もないので見づらいと思いますが、そこの成長も含めてみて頂ければなと思います笑
SAA-C03に落ちた話
# 目次
* はじめに
* 良かったところ
* 悪かったところ
* 次回への反省# はじめに
今回はあまりよくない話です。
端的に言うと「**調子に乗ったら爆散した話**」です。
[前回](https://qiita.com/Daha/items/d44ff912ab736bdf70bb)は2週間でクラウドプラクティショナーを取れてしまったので、一段上のSAAは2倍の時間でいけるだろう、と鷹をくくっていました。
しかし段違いに難しく、見事不合格を持ち帰ってきました。# 良かったところ
* 興味をもったことはとことん調べておく
CLFを学習した際にかなり深堀りしたので、各種サービスの特徴やメリットは大まかに理解したつもりでした。
これが良かったのか、SAAについてインストールを要することは少なく済みました。
(例:S3の種類、Well-Architectなど)
それでもEC2のインスタンスタイプやCloud watch派生など新しく覚えることは多く、心底「CLFで色々興味持っておいて良かったなー」と思っています。* 自分の感情を大事にする
また、お金が関わる話はお得感があって
NATゲートウェイが高いのでNATインスタンスを立てる【金欠シリーズ】
# 前書き
AWSを使用してシステム構築する多くの場合、プライベートサブネットを作成しインターネットから隔離することでアタックサーフェスの減少させます。
その場合は、パブリックサブネットでNATゲートウェイを作成しプライベートサブネットに紐づいたルートテーブルを変更することで、プライベートサブネットからパブリックサブネットを介してインターネット接続します。
しかしながら、小規模な開発環境でNATゲートウェイを使用するには高価である可能性があります。この記事では、一般的なVPC構成でNATゲートウェイの代わりにNATインスタンスを構築する方法を解説します。# 構築
NATインスタンスを構築するVPCとして、一般的なマルチAZ構成で各AZにパブリックサブネットとプライベートサブネットがあり、インターネットゲートウェイがVPCに既にアタッチされている想定です。
その上で、NATインスタンスをパブリックサブネットに起動します。記事に記載のないパラメータはデフォルト値を使用しています。また、この記事で利用する情報はすべて2022年10月時点のものとなります。![image.png](
【AWS】S3に格納したExcelファイルをLambdaで読み込んでEC2にタグ付けする
# はじめに
久しぶりにコードを書く機会があったのでそこで使用したコードの一部をテンプレートっぽく記事として残そうと思います。
エクセルファイルを読み込んで、その他のサービス(SystemsManagerやEventBridgeなど)に対して処理を行う場合のコードとかも
別のタイミングで記事として残そうと思っていますので興味がある方は読んでみてください。今回の検証では以下のサービスを使用します。
* S3
* EC2
* Lambda(python3.9)# 目次
1. [処理の概要](#処理の概要)
1. [インプットデータを作成する](#インプットデータを作成する)
1. [IAMロールを作成する](#iamロールを作成する)
1. [Lambda関数を作成する](#lambda関数を作成する)
1. [Iamロールを作成する](#iamロールを作成する)
1. [Lambdaを実行する](#lambdaを実行する)
1. [タグの確認](#タグの確認)
1. [さいごに](#さいごに)# 処理の概要
S3に格納したエクセ
amazon light sail ポート開放 sslタイムアウト
amazonlinux2にはfirewall、iptablesがない。
ポートの開放は管理画面から。letsencryptを導入してSSL設定したが、タイムアウトになる。
ということで許可の方法amazon ssl 通らない
lightsailにログインして、 networkingを選択。HTTPS TCP
443
Any IPv4 addressipv4だけを上記の設定にすれば、ipv6もSSL通信できるようになる。
IPv6にも同様にやっておこうHTTPS TCP
443
Any IPv6 address
【超初心者のAWS道場①】新規プロジェクトの立ち上げ時に、既存のAWSアカウントの請求に紐付ける方法
# はじめに
転職前の会社だとインフラ周りの開発に携わることが出来なかったため、現在の会社に転職しました。
面接過程でもその話は何度も質問していて経験できるということで転職を決めたのに、実際に入って見ると「**今は**インフラ・バックエンドの開発要件はない」とのこと・・・!(おいおい!!)
しかし!現在の会社のインフラ全般を構築し、インフラエンジニアとして独立した師匠に弟子入りをし、1から教えてもらえることになったのでその内容を備忘録として残します。
(この記事を書いているちょうど今、バックエンドとインフラでの新規開発要件がきたので業務+勉強でハードな毎日です・・・)私のAWSのレベル感としては、静的Webサイトのホスティング・WPを使用したインフラ構築、資格はAWS Cloud Practitionerは保有している程度(=超初心者)です。
# 今回やりたいこと
– 既存であるAWSのリソースに影響が出ないよう、勉強用の組織(AWSアカウント・IAMユーザー×3)を作る
– 請求は既存のアカウントにまとめる# 概要
師匠からこれから課題を色々出す前作業として↑をやっておい
【AWSセキュリティ基礎】AWS WAF・Shield・Firewall Manager
#AWS WAFとは
– AWSで提供されているWAF(Web Application Firewall)のマネージドサービス
– 通常のファイアウォールが、送信元/宛先のCIDRやポート番号で通信の許可/拒否を判断するのに対し、WAFはクライアントからWEBアプリケーションへのリクエスト内容を見て、通信の許可/拒否を判断する
– SQLインジェクションやクロスサイトスクリプティングなどの攻撃に対するルールが提供されており、ALBやAPIGatewayなどの保護に利用することが可能##攻撃検知のルール
– AWS WAFのルールには「マネージドルール」と「ユーザー定義ルール」の2種類があり、組み合わせて使用することにより、効果的に攻撃から保護することができる。###マネージドルールとは
– 複数のルールを組み合わせてセットにしたもの
– AWSや各セキュリティベンダより提供されている
– 専門知識や検証などを必要とせず、容易に利用することができる
– 更新は各ベンダにより自動的に適用されるため、運用コストの削減が可能###ユーザー定義ルールとは
– ユーザ独自で作成するルー
【AWSセキュリティ基礎】AWS Config
#AWS Configとは
AWSリソースやオンプレミスサーバの設定変更管理、変更履歴のモニタリングを行うためのサービス。
以下のようなことが実現できる。– Configルールと呼ばれる、事前に定義した「あるべき設定」と実際の設定との乖離を評価すること
– 変更の発生時にCloudWatch Eventsをトリガしたり、SNSを用いてメール通知すること
– 変更履歴の記録をコンプライアンス監査やセキュリティ分析用の資料として利用すること##Configルール
AWSアカウント内の各設定がルールに準拠しているかどうかチェックするために定義するもの。
以下のようなルールが設定できる。– EBSが暗号化されているか
– CloudTrailが有効化されているか
– S3バケットのポリシーが”パブリック読み書き可能”になっていないか
– セキュリティグループで22番ポート(SSH)がパブリック公開されていないか
– 指定したタグがリソースに設定されているか
– 指定されたAMIが使用されているかなど(上記は一例)
###マネージドルールとカスタムルール
Co
【AWSセキュリティ基礎】AWS Artifact
#AWS Artifactとは
AWSのコンプライアンスドキュメントとAWS契約へのオンデマンドのアクセスを提供するサービス。
以下の2つの機能から成っている。– AWS Artifact Reports
– AWS Artifact Agreements##AWS Artifact Reports
サードパーティーの監査人によるAWSの監査レポートのダウンロードサービスで、様々な認証についてのレポートが提供されている。
レポートを利用するためにはAWSとの事業提携契約(BAA)や秘密保持契約(NDA)を受諾する必要があるため、顧客や監査人に提供する際は適切な範囲の文書にアクセス権限を設定して利用することが望ましい。
公開されているレポートの大まかな分類としては、以下のようなものがある。– ISO認定
– Payment Card Industry(PCI)レポート
– System and Organization Control(SOC)レポート###何ができるのか
– Artifact Reportの内容を共有することで、顧客にAWS自体の安全性を説明できる
【AWSセキュリティ基礎】AWS Key Management Service(KMS)
#KMSとは
データ暗号化に使用される暗号化キーの作成と管理を行う、AWSのマネージドサービス。
AWSのサービスで暗号化処理が行われる場合、ほとんどはこのKMSのキーが使用される。##KMSを使用するメリット
– マネージドサービスのため、以下の管理がAWS側の責任となる
– キーの可用性
– 物理的セキュリティ
– ハードウェア管理
– 暗号化キーの操作履歴がすべてCloudTrailに保存されるため、監査やコンプライアンスの要件にも応えることができる##KMSの暗号化の仕組み
KMSでは、Envelope Encryption(エンベロープ暗号化)という仕組みが採用されている。
具体的には、CMKとCDKという2種類のキーを使用し、データを暗号化するキー(CDK)をさらに別のキー(CMK)で暗号化するという仕組み。###データ暗号化の流れ
![キャプチャ_1115.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494752/014cfb11-8d90-cc22-
【TransitVIF】TGW+DxGWの構成案【未対応でも大丈夫】
#はじめに
本記事では、契約したDirectConnectのデリバリーパートナーがTransitGatewayの仮想プライベートインターフェイス(TransitVIF)に対応していなかったとき、TransitGatewayをどう導入したかをご紹介します。
初心者向けというよりはある程度AWSに知見がある方向けの内容になりますので、基本的な用語説明などは割愛させて頂きます。ご了承ください。※DirectConnect→以下Dx
※TransitGateway→以下TGW
※仮想プライベートインターフェイス→以下VIF#環境説明
わたしがTGWの導入を行なったときの環境はざっくりこんな感じでした。
![移行前.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494752/10657841-8ce9-27c9-7604-2b9d1adcb25e.png)– 1つのDxを複数のアカウントで共有
– Direct Connect Gateway(以下DxGW)は使用せず、各アカウント毎にPrivateV
IAM – MFA を有効化しないと、自身の認証設定以外は何もできなくなる IAM ポリシーサンプル
いつもよく使うのでまとめです。
IAM ユーザーに、MFA (Multifactor Authentification 多要素認証) 設定を強制させてしまおうという IAM ポリシーサンプルです。
以下のポリシーは、MFA を設定していないと、 **以下の操作以外一切できない (Deny)** するようにしています。
– 自身のパスワードの変更
– 自身の MFA デバイスの登録
– 自身のプロフィールパスワードの変更を許可しているのは、新規ユーザー作成時に強制的にパスワード変更を必須としている場合に、パスワード変更ができずにログインすらできなくなってしまうためです。
この IAM ポリシーに加えて、各々の IAM 権限を追加して下さい。
## ハマりポイント
MFA を設定してから **一度、ログアウトして・再ログイン (MFA を使ってログイン)** しないと、他に付与している IAM 権限を使うことができません。
(1時間ぐらいどハマりしてしまった?)
## IAM ポリシーサンプル
“`
{
“Version”: “2012-10-17
インスタンスユーザーデータ とは
## 勉強前イメージ
OSの初回起動時に実行されるやつくらいしか知らん
## 調査
### インスタンスユーザーデータ とは
EC2インスタンスが初回に実行するスクリプトのことを指します。
ただし、 `初回起動時` だけ実行されるので毎回起動する事に実行するものではないです。
実行権限はrootになり、記述形式は以下2つから選べます。– シェルスクリプト形式 : `#!/bin/bash` から始める
– cloud-init形式 : `#cloud-config` から始めるユースケースとしては、 「yum update」 や webサービスのインストール・起動など記載しておいて
EC2を初回にstartさせるだけで使える状態にすることが出来ます。EC2のサーバ内からの確認方法は
`curl http://169.254.169.254/latest/user-data` で、結果が以下になります。“`
# curl http://169.254.169.254/latest/user-data
#!/bin/bash
yum -y update
touc
AWS Session Manager ことはじめ
# はじめに
AWSのEC2インスタンスに接続する際、今まではEC2インスタンス作成時にssh鍵を作成し鍵を用いてssh接続していたが、鍵の管理が面倒であり、鍵の紛失等によるセキュリティ面の懸念があった。
このため、ssh接続を禁止し、Session Managerを用いてEC2に接続することとする。
また、Session Managerを使用することで、セキュリティグループにてssh(ポート22番)の許可設定も不要になる。前提として、EC2のOSは`Amazon Linux 2`を採用している。
# 準備
Session Managerを使用するには、EC2上に専用のアプリ`ssm-agent`をインストールし、適切なロールをアタッチする必要がある。
Systems ManagerのHost Managementの「作成」ボタンを押す(下記画面)ことで、選択したリージョンのEC2に`ssm-agent`が自動でインストールされ(プロセスとして`amazon-ssm-agent`と`ssm-agent-worker`の2つが起動する)、`ssm-user`アカウントが作成され
AWS Lambda Function URLを利用して、Amazon Timestreamにデータを書き込む
[Amazon Timestream](https://docs.aws.amazon.com/timestream/index.html) は、AWSの時系列データベースサービスで、IoTなどのデータシンクとしてよく利用されるようです。
今回、[InfluxDB](https://www.influxdata.com/) で運用しているデータシンクをAmazon Timestream に置き換えるため、HTTPのAPIを経由して Amazon Timestream に最も簡単に書き込む方法を検討しました。その結果、もっとも簡単そうな構成について情報を共有します。## 構成の概要
外部サービス ⇒ [Function URL](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) ⇒ [AWS Lambda](https://docs.aws.amazon.com/lambda/index.html) ⇒ [Timestream](https://docs.aws.amazon.