2023-01-01ãã1å¹´éã®è¨äºä¸è¦§
S3ã®éçWebãã¹ãã£ã³ã°ã使ãæ©ä¼ããã£ãã®ã§æ¤è¨¼ãã¦ã¿ãã S3 éçWebãã¹ãã£ã³ã°ã¨ã¯ S3ã«HTMLãã¡ã¤ã«ãã¢ãããã¼ããããããªãã¯ã¢ã¯ã»ã¹ã許å¯ããç¶æ ã§ãã©ã¦ã¶ããHTMLãã¡ã¤ã«ã«ã¢ã¯ã»ã¹ãããã°Webãµã¤ãã¨ãã¦åä½ããããã¨ã å¯è½ã S3 â¦
CloudFrontï¼APIGatewayã®æ§æã§éä¿¡å ãCloudFrontã®ã¿ã«å¶éããå ´åã«ãAPIGatewayã«WAFãè¨å®ããã«ã¹ã¿ã ãããã¼ã§å¶éããã®ãä¸è¬çãããã®ã§ãã£ã¦ã¿ãã ããã㨠terraformã§ä¸è¨ãå®æ½ã CloudFront+APIGatewayãä½ããAPIGatewayã«WAFãã¢ã¿ãâ¦
åã«RDS(MySQL)ããã£ãã®ã§Auroraããã£ã¦ã¿ãã éãã¯DBã®Clusterãããããªããã§ããã«ããRDSProxyã®è¨å®é ç®ãå°ãå¤ããç¨åº¦ã amegaeru.hatenablog.jp æ§æ å®è·µï¼ ï¼ï¼ç°å¢æ§ç¯ ï¼ï¼ï¼ï¼terraformã³ã¼ããä½æ # vi main.tf provider "aws" { regiâ¦
RDSProxyã使ã£ãæ§æãä½æãã¦ã¿ãã RDSProxyã¨ã¯ ã»æ¥ç¶ãã¼ãªã³ã°ãã§ããï¼å¤æ°ã®åææ¥ç¶ããã¦ãããã¨ã«ä¼´ããªã¼ãã¼ããããåæ¸ã§ããã ã»RDS Proxy ã®èªè¨¼ï¼ãã¹ã¯ã¼ãèªè¨¼ãIAMèªè¨¼ãªã©ã使ããã ã»TLS/SSL ã使ããï¼RDS Proxyã¨ã¢ããªã±ã¼â¦
terraformã§SecretManagerã®æ¤è¨¼ãã¦ããéã«ä¸è¨ã¨ã©ã¼ãçºçãã¦ã·ã¼ã¯ã¬ãããåä½æã§ããªãäºè±¡ãçºçããã®ã§èª¿ã¹ã¦ã¿ãã â Error: creating Secrets Manager Secret: InvalidRequestException: You can't create this secret because a secret with â¦
Route53ã§ALBã¨ç´ã¥ãAliasã¬ã³ã¼ããä½æãããã¨ããã¨ALBåã®åã«dualstackã®è¨è¼ãããã®ã§èª¿ã¹ã¦ã¿ãã â»ãããªæã ChatGPTæ§ãã AWS Application Load Balancer (ALB) ã® Dualstack æ©è½ã¯ãIPv4 㨠IPv6 ã®ä¸¡æ¹ã®ãã©ãã£ãã¯ããµãã¼ãããããã®â¦
ãã¹ã¦ãçµããããããªã£ãã®ã§Linuxã®ç¦æã®ã³ãã³ã(rm -rf /)ãå®è¡ãã¦ã¿ãã â»rmï¼ãã£ã¬ã¯ããªã»ãã¡ã¤ã«ãåé¤ â»-rï¼å帰å®è¡ â»ãã£ããè¨ãã¨ãµããã£ã¬ã¯ããªãã¹ã¦ã«å¯¾ãã¦å®è¡ â»-fï¼å¼·å¶ â»/ï¼ã«ã¼ããã£ã¬ã¯ããªæå® â»Linuxã®ãã£ã¬ã¯ããªã¯/(ã«â¦
ã¿ã°ãããªã½ã¼ã¹ãæ¤ç´¢ããå¿ è¦ããã£ãã®ã§æ¹æ³ã調ã¹ã¦ã¿ãã ããã㨠WebConsoleã¨ã³ãã³ãããç¹å®ã®ã¿ã°ãæã¤ãªã½ã¼ã¹ãæ¤ç´¢ããã â»ä»åã¯ap-northeast-1ã§ãã¼ãServiceTagKeyãå¤ãServiceTagValueãæã¤ãªã½ã¼ã¹ãæ¤ç´¢ããã å®è·µï¼ ï¼ï¼WebConsâ¦
ECSã®ãµã¼ãã¹ã®è©³ç´°ãåå¾ããå ´åãClusteråã¨Serviceåãæå®ããå¿ è¦ãããããã¹ã¦åå¾ããã¨ãªãã¨Clusterã§ã«ã¼ããããã«Serviceã§ãã«ã¼ãããã¦åå¾ããå¿ è¦ããããããããå®è¡ãã¦ããæ¥ãæ®ããã®ã§ï¼è¡ã§ãµã¯ãã¨åããæ¹æ³ã調ã¹ã¦ã¿ãã Câ¦
ã¿ã¹ã¯ã®ã³ã¹ã管çãªã©ã«ã¿ã°ãã¤ãããå ´åãããããããã©ã«ãã§ã¯ã¿ã°ãä»ããªãã®ã§è¨å®ãå ¥ããå¿ è¦ãããã â»ãããªæã ããã㨠Terraformã§ECS(Fargate)ç°å¢ãä½æãããµã¼ãã¹ã¨ã¿ã¹ã¯å®ç¾©ã«ã¿ã°ãã¤ããããããä¼æ¬ããã¦ã¿ã¹ã¯ã«ã¿ã°ãä¼æ¬ãâ¦
ããã㨠terraformã§API Gatewayï¼Lambdaã®æ§æãä½æããã æ§æ ãã©ã¦ã¶ â APIGateway â Lambda(Python) å®è·µ ï¼ï¼Pythonã³ã¼ãä½æ # vi lambda_function.py import json def lambda_handler(event, context): # TODO implement return { 'statusCode':â¦
WAFã使ã£ãç°å¢æ§ç¯æ¡ä»¶ãå¢ããããªã®ã§ãåå¼·ãã¦ã¿ãã ããã㨠terraformã§WAFï¼ALBï¼EC2ã®ç°å¢ãä½æãããã®å¾æ¥ç¶å ã®IPãå¶éããè¨å®ãå ¥ãæåã確èªããã ç°å¢ æ¥ç¶å â AWS WAF â ALB â EC2(Nginx) å®è·µï¼ ï¼ï¼ç°å¢ä½æ # vi main.tf provideâ¦
ä¸è¨ã§ä½æããã«ã¹ã¿ã ãããã¼è¨å®ããCloudFrontï¼ALBï¼EC2(Nginx)ã®æ§æãterraformã®importã使ç¨ãã¦ã³ã¼ãã«èµ·ããã¦ã¿ãã CloudFront+ALBã§ã«ã¹ã¿ã ãããã¼ãå©ç¨ãã¦ãALBã§CloudFrontããã®æ¥ç¶ã®ã¿è¨±å¯ãã - ãããããã®ITããã° terraform iâ¦
ã«ã¹ã¿ã ãããã¼ãå©ç¨ãã¦ãCloudFrontããã®æ¥ç¶ã®ã¿ALBã§è¨±å¯ããè¨å®ãå ¥ãã¦ã¿ãã ããã㨠Terraformã§CloudFrontï¼ALBï¼EC2(Nginx)ã®ç°å¢ãæ§ç¯ããCloudFrontããã®æ¥ç¶ã®ã¿ãALBã§è¨±å¯ããããã«ã¹ã¿ã ãããã¼ã«è¨å®ãå ¥ãã¦ãCloudFrontãALBãâ¦
AWS CLIã§è¨¼ææ¸ã®ä¸è¦§ãåå¾ãããã¨ãããä¸é¨ãåå¾ãããªãç¶æ³ã確èªããã®ã§èª¿ã¹ã¦ã¿ã åå¾ã§ããªã証ææ¸ ã©ãããã¼ã¢ã«ã´ãªãºã ã®ãEC_prime256v1ããåå¾ã§ããªã模æ§ã åå ãªãã¡ã¬ã³ã¹ãèªãã¨ãã¼ã¢ã«ã´ãªãºã ãRSA_2048ãã§ãã£ã«ã¿ãããâ¦
AWS WAFã®WebACLã«è¨å®ãããã¿ã°ã¯GUIã§ã¯ç¢ºèªã§ããªãã®ã§CLI確èªããæ¹æ³ã調ã¹ã¦ã¿ã å®è·µï¼ ï¼ï¼ç°å¢ä½æ â»ä¸è¨ã使ç¨ãã¦ç°å¢ãä½æããã amegaeru.hatenablog.jp ï¼ï¼WebACLã®ARNãç¢ºèª â»CloudShellã§å®è¡ # aws wafv2 list-web-acls --scope REGIONâ¦
terraformã§æ¤è¨¼ãã¦ããã¨S3ãã±ããã«ãªãã¸ã§ã¯ããããã¨åé¤ã§ããã«ã¨ã©ã¼ã«ãªãã®ã§é½åº¦GUIã§åé¤ããã®ã大å¤é¢åã§ã調ã¹ã¦ã¿ããæ¹æ³ããã£ãã®ã§ãã£ã¦ã¿ãã çç¶ S3ãã±ããå ã«ãªãã¸ã§ã¯ããããã¨ä¸è¨ã¨ã©ã¼ãã§ãã 対ç S3ãã±ããã®ã³ã¼â¦
Amazon CloudFrontï¼S3ã®æ§æã§ç´æ¥S3ã«ã¢ã¯ã»ã¹ãããããªãã®ã§ãOAI(ãªãªã¸ã³ã¢ã¯ã»ã¹ã¢ã¤ãã³ãã£ãã£)ãè¨å®ãã¦CloudFrontããã®æ¥ç¶ä»¥å¤ã¯åãä»ããªãããã«ããã Amazon CloudFrontã¨ã¯ é«ãããã©ã¼ãã³ã¹ãã»ãã¥ãªãã£ããããããã¼ã®å©ä¾¿æ§ã®â¦
AWS WAFã使ãæ©ä¼ããã£ãã®ã§ã¡ããã¨èª¿ã¹ã¦ã¿ãã AWS WAFã¨ã¯ Web ã¢ããªã±ã¼ã·ã§ã³ã®éä¿¡ããã£ã«ã¿ã¼ãç£è¦ããããã¯ããããã®ã½ããã¦ã§ã¢ã¾ãã¯ããã¼ãã¦ã§ã¢ã®ã»ãã¥ãªãã£å¯¾çã ä¸è¬ã®ãã¡ã¤ã¢ã¦ã©ã¼ã«ã IDS/IPS ã¨ã®éãã¯ãã¢ããªã±ã¼ã·ã§â¦
S3ãè¦ã¦ããã¨ãã±ããåä½ã®ãããªãã¯ã¢ã¯ã»ã¹ãããã¯ã®ã»ãã«ã¢ã«ã¦ã³ãã¬ãã«ã§ã®ãããªãã¯ã¢ã¯ã»ã¹ãããã¯ã®è¨å®ããã£ãã®ã§èª¿ã¹ã¦ã¿ãã ã¢ã«ã¦ã³ãã¬ãã«ã®ã¢ã¯ã»ã¹ãããã¯ã¨ã¯ Amazon S3 ã®ãããªãã¯ã¢ã¯ã»ã¹ãããã¯ã¯ãAmazon S3 ã®ãªã½ã¼â¦
AWS SAPæ´æ°ãç¡äºçµãã£ãã®ã§GCPã§ãããã¾ãã GCPã¨ã¯ Google Cloud Platformã®ç¥ãGoogleãæä¾ããã¯ã©ã¦ããµã¼ãã¹ã®ãã©ãããã©ã¼ã ã ã³ã³ãã¥ã¼ãã£ã³ã°ããã¼ã¿ã¹ãã¬ã¼ã¸ããã¼ã¿åæãæ©æ¢°å¦ç¿ããããã¯ã¼ã¯ãIOTãªã©å¤å²ã«ããããµã¼ãã¹ãâ¦
AWS SAPã®åå¼· Amazon Rekognitionã¨ã¯ ã¤ã¡ã¼ã¸åæã¨ãããªåæãã¢ããªã±ã¼ã·ã§ã³ã«ç°¡åã«è¿½å ã§ãããRekognition APIã«ç»åã¾ãã¯åç»ãæä¾ããã ãã§ããµã¼ãã¹ã¯æ§ã ãªãã¨ãå¯è½ãªã«ãªãã docs.aws.amazon.com Rekognitionã§ã§ããã㨠ã»ã©ãã«(â¦
AWS SAPã«ã¾ãã¾ãæ°ãããµã¼ãã¹ãåºãã®ã§èª¿ã¹ã¦ã¿ãããã®åå¼·ãå½¹ã«ç«ã¤æ¥ãããã¨ãããªããã AWS Transfer Familyã¨ã¯ AWSã¹ãã¬ã¼ã¸ãµã¼ãã¹ã¨ã®éã§ãã¡ã¤ã«ãéåä¿¡ã§ããå®å ¨ãªè»¢éãµã¼ãã¹ã å ¬å¼ã¦ã¼ã¶ã¼ã¬ã¤ãï¼ docs.aws.amazon.com AWS Tranâ¦
EventBridgeã¨ã¯éããããã®ã§èª¿ã¹ã¦ã¿ããã¤ã¼ãéããããããã£ã¦ãªãã£ãã S3ã¤ãã³ãéç¥ã¨ã¯ S3ãã±ããã§ç¹å®ã®ã¤ãã³ããçºçããã¨ãã«éç¥ãåãåããã¨ãã§ããã docs.aws.amazon.com éç¥å¯è½ãªS3ã¤ãã³ã ã»New object created eventsï¼ãªâ¦
AWS SAPã§åºã¦ããAWS Global Acceleratorã«ã¤ãã¦èª¿ã¹ã¦ã¿ãã AWS Global Acceleratorã¨ã¯ ãããªãã¯ã¢ããªã±ã¼ã·ã§ã³ã®å¯ç¨æ§ãããã©ã¼ãã³ã¹ãããã³ã»ãã¥ãªãã£ã®åä¸ã«å½¹ç«ã¤ãããã¯ã¼ã¯ãµã¼ãã¹ãAWSã®ã¢ããªã±ã¼ã·ã§ã³ã¨ã³ããã¤ã³ãã¸ã®åºå®ã¨â¦
EC2ãä½ãã®ãªãã·ã§ã³ã¿ãããªååã§ãããããªååã®ãµã¼ãã¹ããããããã®ã§èª¿ã¹ã¦ã¿ãã AWS Compute Optimizerã¨ã¯ AWS Compute Optimizerã¯ãAWSãªã½ã¼ã¹ã®è¨å®ã¨ä½¿ç¨çã®ã¡ããªã¯ã¹ãåæãããµã¼ãã¹ããªã½ã¼ã¹ãæé©ãã©ãããå ±åããæé©åã«é¢â¦
AWS SAPã«S3 Glacier Deep Archiveãªãæ°ããè¨èãåºã¦ããã®ã§èª¿ã¹ã¦ã¿ã(;´âï½) S3 Glacierã§é¸æã§ããã¹ãã¬ã¼ã¸ã¯ã©ã¹ ã»Instant Retrievalï¼ ååæã«1åã¢ã¯ã»ã¹ãããããªç§åä½ã®åãåºããå¿ è¦ãªé·å¯¿å½ã®ãã¼ã¿ã«å¯¾ãæ大68ï¼ ä½ãã³ã¹ãã®ã¹ãã¬â¦
AWS SAPã®è©¦é¨åå¼·ãããªããã°ãããªããå¤ã®æãã«ãããã¦ããæ°ãèµ·ããªãããããªä¸ã¾ãããããããåèªãåºã¦ããã®ã§ããããªã調ã¹ã¦ã¿ãããã MQTTãããã³ã«ã¨ã¯ MQTT(Message Queuing Telemetry Transpot)ã¯ããªã½ã¼ã¹ã«å¶ç´ã®ããããã¤ã¹ãä½â¦
AWS SAPã®è©¦é¨ã«åºã¦ãã®ã§èª¿ã¹ã¦ã¿ãã Resource Access Managerã¨ã¯ çµç¹å ã®AWSã¢ã«ã¦ã³ãéã¾ãã¯AWS Organizationså ã®çµç¹åä½(OU)éã§ããµãã¼ãããã¦ãããªã½ã¼ã¹ã¿ã¤ãã®ãªã½ã¼ã¹ãå®å ¨ã«å ±æãããããã«ãããã¹ã¦ã®ã¢ã«ã¦ã³ãã§ãªã½ã¼ã¹ãããâ¦
Terraformã§AWSã®ãªã½ã¼ã¹ãä¸éãä½ã£ã¦ã¿ããã®ã§ä»åã¯ECRãä½æããã å®è·µ! ï¼ï¼tfãã¡ã¤ã«ä½æ provider "aws" { region = "ap-northeast-1" profile = "testvault" } variable "env" { default = { env_name = "test" vpc_cidr = "10.0.0.0/16" sb_azâ¦